PNP: disable PNP motherboard resources that overlap PCI BARs
authorBjorn Helgaas <bjorn.helgaas@hp.com>
Tue, 11 Mar 2008 21:24:41 +0000 (15:24 -0600)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 12 Mar 2008 19:39:36 +0000 (12:39 -0700)
commit0509ad5e1a7d9220f09edd5be114bf3bd51a7023
tree41c02d01032da129ae82137591d48ecd7369662f
parente0aca2330b59752193877da49c6e6b07df78690a
PNP: disable PNP motherboard resources that overlap PCI BARs

Some BIOSes have PNP motherboard devices with resources that
partially overlap PCI BARs.  The PNP system driver claims these
motherboard resources, which prevents the normal PCI driver from
requesting them later.

This patch disables the PNP resources that conflict with PCI BARs
so they won't be claimed by the PNP system driver.

Of course, this only works if PCI devices have already been enumerated.
Currently this is the case because PCI devices are discovered before
any PNP init via this path:

    acpi_pci_root_init() -> acpi_pci_root_add() -> pci_acpi_scan_root() ->
pci_scan_bus_parented() -> pci_scan_child_bus() -> ...

Avuton Olrich tested this and confirmed that it fixes his ALSA sound
card (see http://lkml.org/lkml/2008/1/27/168).

References:
    https://bugzilla.redhat.com/show_bug.cgi?id=280641
    https://bugzilla.redhat.com/show_bug.cgi?id=313491
    http://lkml.org/lkml/2008/1/9/449
    http://thread.gmane.org/gmane.linux.acpi.devel/27312
    http://lkml.org/lkml/2008/1/27/168

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/pnp/quirks.c