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

Rene Herman
2008-09-30T19:37:34Z

[-- Attachment #1: Type: text/plain, Size: 2273 bytes --]

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.

[-- Attachment #2: debug-quirk_system_pci_resources.diff --]
[-- Type: text/plain, Size: 855 bytes --]

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");
}
}