mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
pcmcia: fix io_probe due to parent (PCI) resources
Similar to commit 7a96e87d, we need to be aware of any parent PCI device when requesting IO regions, even only for testing ("probing"). Reported-by: Komuro <komurojun-mbn@nifty.com> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
This commit is contained in:
parent
d3e03f4ea8
commit
509b0865fb
@ -214,7 +214,7 @@ static void do_io_probe(struct pcmcia_socket *s, unsigned int base,
|
||||
return;
|
||||
}
|
||||
for (i = base, most = 0; i < base+num; i += 8) {
|
||||
res = claim_region(NULL, i, 8, IORESOURCE_IO, "PCMCIA ioprobe");
|
||||
res = claim_region(s, i, 8, IORESOURCE_IO, "PCMCIA ioprobe");
|
||||
if (!res)
|
||||
continue;
|
||||
hole = inb(i);
|
||||
@ -231,9 +231,14 @@ static void do_io_probe(struct pcmcia_socket *s, unsigned int base,
|
||||
|
||||
bad = any = 0;
|
||||
for (i = base; i < base+num; i += 8) {
|
||||
res = claim_region(NULL, i, 8, IORESOURCE_IO, "PCMCIA ioprobe");
|
||||
if (!res)
|
||||
res = claim_region(s, i, 8, IORESOURCE_IO, "PCMCIA ioprobe");
|
||||
if (!res) {
|
||||
if (!any)
|
||||
printk(" excluding");
|
||||
if (!bad)
|
||||
bad = any = i;
|
||||
continue;
|
||||
}
|
||||
for (j = 0; j < 8; j++)
|
||||
if (inb(i+j) != most)
|
||||
break;
|
||||
@ -253,6 +258,7 @@ static void do_io_probe(struct pcmcia_socket *s, unsigned int base,
|
||||
}
|
||||
if (bad) {
|
||||
if ((num > 16) && (bad == base) && (i == base+num)) {
|
||||
sub_interval(&s_data->io_db, bad, i-bad);
|
||||
printk(" nothing: probe failed.\n");
|
||||
return;
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user