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: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent cbd34d00
...@@ -258,8 +258,6 @@ Summary of ide driver parameters for kernel command line ...@@ -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
......
...@@ -756,7 +756,8 @@ static int ide_probe_port(ide_hwif_t *hwif) ...@@ -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;
/* /*
......
...@@ -1444,7 +1444,7 @@ static int __init ide_setup(char *s) ...@@ -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 */
......
...@@ -787,7 +787,8 @@ static int __init cmd640x_init(void) ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment