diff options
-rw-r--r-- | Documentation/admin-guide/kernel-parameters.txt | 11 | ||||
-rw-r--r-- | drivers/ata/pata_legacy.c | 6 |
2 files changed, 17 insertions, 0 deletions
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index 011129133b7a..fcd0fc8fd977 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -3651,6 +3651,17 @@ Set to non-zero to probe tertiary and further ISA port ranges on PCI systems. Disabled by default. + pata_legacy.probe_mask= [HW,LIBATA] + Format: <int> + Probe mask for legacy ISA PATA ports. Depending on + platform configuration and the use of other driver + options up to 6 legacy ports are supported: 0x1f0, + 0x170, 0x1e8, 0x168, 0x1e0, 0x160, however probing + of individual ports can be disabled by setting the + corresponding bits in the mask to 1. Bit 0 is for + the first port in the list above (0x1f0), and so on. + By default all supported ports are probed. + pata_legacy.qdi= [HW,LIBATA] Format: <int> Set to non-zero to probe QDI controllers. By default diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c index 7d59ffbe6f0a..c3e6592712c4 100644 --- a/drivers/ata/pata_legacy.c +++ b/drivers/ata/pata_legacy.c @@ -71,6 +71,10 @@ module_param(probe_all, int, 0); MODULE_PARM_DESC(probe_all, "Set to probe tertiary+ ISA port ranges even if PCI"); +static int probe_mask = ~0; +module_param(probe_mask, int, 0); +MODULE_PARM_DESC(probe_mask, "Probe mask for legacy ISA PATA ports"); + static int autospeed; module_param(autospeed, int, 0); MODULE_PARM_DESC(autospeed, "Chip present that snoops speed changes"); @@ -199,6 +203,8 @@ static int legacy_probe_add(unsigned long port, unsigned int irq, free = lp; /* Matching port, or the correct slot for ordering */ if (lp->port == port || legacy_port[i] == port) { + if (!(probe_mask & 1 << i)) + return -1; free = lp; break; } |