Skip to content

Commit

Permalink
ide: skip probing port if "hdx=noprobe" was used for both devices on it
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
Bartlomiej Zolnierkiewicz committed Feb 26, 2008
1 parent cbd34d0 commit c53ea18
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 5 deletions.
2 changes: 0 additions & 2 deletions Documentation/ide.txt
Original file line number Diff line number Diff line change
Expand Up @@ -258,8 +258,6 @@ Summary of ide driver parameters for kernel command line
As for VLB, it is safest to not specify it.
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,
where "base" is usually 0x1f0 or 0x170
and "ctl" is assumed to be "base"+0x206
Expand Down
3 changes: 2 additions & 1 deletion drivers/ide/ide-probe.c
Original file line number Diff line number Diff line change
Expand Up @@ -756,7 +756,8 @@ static int ide_probe_port(ide_hwif_t *hwif)

BUG_ON(hwif->present);

if (hwif->noprobe)
if (hwif->noprobe ||
(hwif->drives[0].noprobe && hwif->drives[1].noprobe))
return -EACCES;

/*
Expand Down
2 changes: 1 addition & 1 deletion drivers/ide/ide.c
Original file line number Diff line number Diff line change
Expand Up @@ -1444,7 +1444,7 @@ static int __init ide_setup(char *s)

case -1: /* "noprobe" */
hwif->noprobe = 1;
goto done;
goto obsolete_option;

case 1: /* base */
vals[1] = vals[0] + 0x206; /* default ctl */
Expand Down
3 changes: 2 additions & 1 deletion drivers/ide/pci/cmd640.c
Original file line number Diff line number Diff line change
Expand Up @@ -787,7 +787,8 @@ static int __init cmd640x_init(void)
/*
* 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";
} else {
b = get_cmd640_reg(CNTRL);
Expand Down

0 comments on commit c53ea18

Please sign in to comment.