Browse Source

ide: skip probing port if "hdx=noprobe" was used for both devices on it

* Skip probing port if "hdx=noprobe" parameter was used for both devices on it.

* Obsolete "idex=noprobe" parameter - it only works for ide_generic, cmd640
  and PCI hosts in Compatibility mode (on alpha/x86/ia64/m32r/mips/ppc32).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz 17 years ago
parent
commit
c53ea18dc2
4 changed files with 5 additions and 5 deletions
  1. 0 2
      Documentation/ide.txt
  2. 2 1
      drivers/ide/ide-probe.c
  3. 1 1
      drivers/ide/ide.c
  4. 2 1
      drivers/ide/pci/cmd640.c

+ 0 - 2
Documentation/ide.txt

@@ -258,8 +258,6 @@ Summary of ide driver parameters for kernel command line
 			  As for VLB, it is safest to not specify it.
 			  As for VLB, it is safest to not specify it.
 			  Bigger values are safer than smaller ones.
 			  Bigger values are safer than smaller ones.
 
 
- "idex=noprobe"		: do not attempt to access/use this interface
- 
  "idex=base"		: probe for an interface at the addr specified,
  "idex=base"		: probe for an interface at the addr specified,
 			  where "base" is usually 0x1f0 or 0x170
 			  where "base" is usually 0x1f0 or 0x170
 			  and "ctl" is assumed to be "base"+0x206
 			  and "ctl" is assumed to be "base"+0x206

+ 2 - 1
drivers/ide/ide-probe.c

@@ -756,7 +756,8 @@ static int ide_probe_port(ide_hwif_t *hwif)
 
 
 	BUG_ON(hwif->present);
 	BUG_ON(hwif->present);
 
 
-	if (hwif->noprobe)
+	if (hwif->noprobe ||
+	    (hwif->drives[0].noprobe && hwif->drives[1].noprobe))
 		return -EACCES;
 		return -EACCES;
 
 
 	/*
 	/*

+ 1 - 1
drivers/ide/ide.c

@@ -1444,7 +1444,7 @@ static int __init ide_setup(char *s)
 
 
 			case -1: /* "noprobe" */
 			case -1: /* "noprobe" */
 				hwif->noprobe = 1;
 				hwif->noprobe = 1;
-				goto done;
+				goto obsolete_option;
 
 
 			case 1:	/* base */
 			case 1:	/* base */
 				vals[1] = vals[0] + 0x206; /* default ctl */
 				vals[1] = vals[0] + 0x206; /* default ctl */

+ 2 - 1
drivers/ide/pci/cmd640.c

@@ -787,7 +787,8 @@ static int __init cmd640x_init(void)
 	/*
 	/*
 	 * Try to enable the secondary interface, if not already enabled
 	 * Try to enable the secondary interface, if not already enabled
 	 */
 	 */
-	if (cmd_hwif1->noprobe) {
+	if (cmd_hwif1->noprobe ||
+	    (cmd_hwif1->drives[0].noprobe && cmd_hwif1->drives[1].noprobe)) {
 		port2 = "not probed";
 		port2 = "not probed";
 	} else {
 	} else {
 		b = get_cmd640_reg(CNTRL);
 		b = get_cmd640_reg(CNTRL);