Skip to contentSkip to conversation

patch to make ide-probe mark ide-floppy devices as removable and clean up drive type override code

PATCH New Kevin P. Fleming 1 participant 1 message Jun 28, 2002

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 patch to make ide-probe mark ide-floppy devices as removable and clean up drive type override code

Patch has been in wide use for months, but has not (yet) been integrated into the kernel. Patch is against 2.4.19-pre10-ac2, which has a different version of ide-probe.c than 2.4.19-rc1.

drivers/ide/ide-probe.c +0 -0
diff -X dontdiff -urN linux/drivers/ide/ide-probe.c linux-probe/drivers/ide/ide-probe.c
@@ -130,31 +130,40 @@
 	 
	goto err_misc;
 		}
 #endif /* CONFIG_BLK_DEV_PDC4030 */
+ 
	/*
+ 
	 * Handle drive type overrides for "unusual" devices
+ 
	 */

switch (type) {
-
case ide_floppy:
-

			if (!strstr(id->model, "CD-ROM")) {
- 
				if (!strstr(id->model, "oppy") &&
- 
				    !strstr(id->model, "poyp") &&
- 
				    !strstr(id->model, "ZIP"))
- 
					printk("cdrom or floppy?, assuming ");
- 
				if (drive->media != ide_cdrom) {
- 
					printk ("FLOPPY");
- 
					break;
- 
				}
- 
			}
+ 
	case ide_floppy:
+ 
		if (strstr(id->model, "CD-ROM")) {
+ 
			type = ide_cdrom;
+ 
			break;
+ 
		}
+ 
		if (!strstr(id->model, "oppy") &&
+ 
		    !strstr(id->model, "poyp") &&
+ 
		    !strstr(id->model, "ZIP"))
+ 
			printk("cdrom or floppy?, assuming ");
+ 
		if (drive->media == ide_cdrom)
 	 
		type = ide_cdrom;	/* Early cdrom models used zero */
- 
		case ide_cdrom:
- 
			drive->removable = 1;
+ 
		break;
 #ifdef CONFIG_PPC
+ 
	case ide_cdrom:
 	 
		/* kludge for Apple PowerBook internal zip */
- 
			if (!strstr(id->model, "CD-ROM") &&
- 
			    strstr(id->model, "ZIP")) {
- 
				printk ("FLOPPY");
- 
				type = ide_floppy;
- 
				break;
- 
			}
+ 
		if (!strstr(id->model, "CD-ROM") &&
+ 
		    strstr(id->model, "ZIP")) {
+ 
			type = ide_floppy;
+ 
			break;
+ 
		}
 #endif
+ 
	}
+ 
	switch (type) {
+ 	 
	case ide_floppy:
+ 	 
		printk ("FLOPPY");
+ 	 
		drive->removable = 1;
+ 	 
		break;
+ 	 
	case ide_cdrom:
 	 
		printk ("CD/DVD-ROM");
+ 	 
		drive->removable = 1;
 	 
		break;
 	 
	case ide_tape:
 	 
		printk ("TAPE");