Re: [patch 2/2] PNP: don't check disabled PCI BARs for conflictsin quirk_system_pci_resources()

From: Rene Herman
Date: Tue Sep 30 2008 - 15:34:42 EST


On 30-09-08 21:29, Rene Herman wrote:

Yes, I also get that oops but other than that, both link order versions you sent out work -- ie, booting with acpi=noirq gets me to a functional system with the quirk having run for PNP0c02 (acpi=off disables all of PNP0c02) and doing its job.

For some reason only some of your messages seem to be making it into my inbox (in order, at least) but either of these that is:

http://lkml.org/lkml/2008/9/30/242
http://lkml.org/lkml/2008/9/30/261

With the attached on top, all's working fine for me.

It does, but that said... placing the attached small debug printk's on top gets me:

[ 0.070170] pnp 00:01: parse allocated resources
[ 0.070397] pnp 00:01: add io 0xde00-0xde03 flags 0x1
[ 0.070405] pnp 00:01: PNP0c02: calling quirk_system_pci_resources+0x0/0x199
[ 0.070428] pci 0000:00:00.0: skipping resource 3 4 5 6 7 8 9 10 11
[ 0.070832] pci 0000:00:01.0: skipping resource 0 1 2 3 4 5 6 10 11
[ 0.071241] pci 0000:00:07.0: skipping resource 0 1 2 3 4 5 6 7 8 9 10 11
[ 0.071734] pci 0000:00:07.1: skipping resource 5 6 7 8 9 10 11
[ 0.072077] pci 0000:00:07.3: skipping resource 0 1 2 3 4 5 6 7 8 9 10 11
[ 0.072570] pci 0000:00:07.4: skipping resource 1 2 3 4 5 6 7 8 9 10 11
[ 0.073033] pci 0000:00:08.0: skipping resource 2 3 4 5 6 7 8 9 10 11
[ 0.073458] pci 0000:00:09.0: skipping resource 1 2 3 4 5 6 7 8 9 10 11
[ 0.073918] pci 0000:00:09.1: skipping resource 1 2 3 4 5 6 7 8 9 10 11
[ 0.074406] pci 0000:00:09.2: skipping resource 1 2 3 4 5 6 7 8 9 10 11
[ 0.074865] pci 0000:00:0a.0: skipping resource<4>pnp 00:01: io resource (0xde00-0xde03) overlaps 0000:00:0a.0 BAR 0 (0xde00-0xdeff), disabling
[ 0.074991] 1 2 3 4 5 6 7 8 9 10 11
[ 0.075410] pci 0000:01:05.0: skipping resource 3 4 5 6 7 8 9 10 11
[ 0.075962] pnp 00:01: Plug and Play ACPI device, IDs PNP0c02 (active)

which does still feel rather clunky (especially the missing "middle" resources 7, 8 and 9 for 01.0, my AGP bridge, look a little weird).

(0a.0 is ofcourse my soundcard that is the issue)

The resources array for pci_dev is static -- a pci_dev bitmask of enabled resources does sound somewhat nice-ish still perhaps.

Rene. diff --git a/drivers/pnp/quirks.c b/drivers/pnp/quirks.c
index 0cf4ccf..44bd869 100644
--- a/drivers/pnp/quirks.c
+++ b/drivers/pnp/quirks.c
@@ -245,14 +245,17 @@ static void quirk_system_pci_resources(struct pnp_dev *dev)
* so they won't be claimed by the PNP system driver.
*/
for_each_pci_dev(pdev) {
+ dev_info(&pdev->dev, "skipping resource");
for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
unsigned int type;

pci_res = &pdev->resource[i];

/* skip unregistered resources */
- if (!pci_res->parent)
+ if (!pci_res->parent) {
+ printk(KERN_CONT " %d", i);
continue;
+ }

type = pci_res->flags &
(IORESOURCE_IO | IORESOURCE_MEM);
@@ -305,6 +308,7 @@ static void quirk_system_pci_resources(struct pnp_dev *dev)
pnp_res->flags |= IORESOURCE_DISABLED;
}
}
+ printk(KERN_CONT "\n");
}
}