Hello. On 11/30/2016 08:20 PM, Matthew Whitehead wrote:
If there is no PCI bus detected in drivers/ata/pata_legacy.c, it registers all the common legacy PATA devices. This includes I/O ports (0x1f0, 0x170, 0x1e8, 0x168, 0x1e0, 0x160) and also their associated interrupts (14,15,11,10,8,12). Unfortunately, on such systems those interrupt lines are at a premium because there is no PCI alternative. This patch allows you to disable individual port/interrupt pairs by providing a list of ports to skip allocating. modprobe pata_legacy ignore_ports=0x1e8,0x168,0x1e0,0x160 Signed-off-by: Matthew Whitehead <tedheadster@xxxxxxxxx> --- drivers/ata/pata_legacy.c | 30 ++++++++++++++++++++++++------ 1 files changed, 24 insertions(+), 6 deletions(-) diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c index 4fe9d21..65a33b4 100644 --- a/drivers/ata/pata_legacy.c +++ b/drivers/ata/pata_legacy.c @@ -130,6 +130,8 @@ static struct legacy_data legacy_data[NR_HOST]; static struct ata_host *legacy_host[NR_HOST]; static int nr_legacy_host; +static int ignore_ports[NR_HOST]; +static int ignore_ports_count;
It's ignore_port_count if my grammar serves still. :-)
static int probe_all; /* Set to check all ISA port ranges */ static int ht6560a; /* HT 6560A on primary 1, second 2, both 3 */ @@ -1168,6 +1170,16 @@ static __init void probe_qdi_vlb(void) } } +static bool port_ignored(int port) +{ + int i;
Need empty line here.
+ for (i = 0; i < ignore_ports_count; i++) { + if (port == ignore_ports[i]) + return 1;
s/1/true/.
+ } + return 0;
s/0/false/. [...] MBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html