OpenCloudOS-Kernel/drivers/pnp
Bjorn Helgaas eb31aae8cb PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that breaks USB
Some Dell BIOSes have MCFG tables that don't report the entire
MMCONFIG area claimed by the chipset.  If we move PCI devices into
that claimed-but-unreported area, they don't work.

This quirk reads the AMD MMCONFIG MSRs and adds PNP0C01 resources as
needed to cover the entire area.

Example problem scenario:

  BIOS-e820: 00000000cfec5400 - 00000000d4000000 (reserved)
  Fam 10h mmconf [d0000000, dfffffff]
  PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xd0000000-0xd3ffffff] (base 0xd0000000)
  pnp 00:0c: [mem 0xd0000000-0xd3ffffff]
  pci 0000:00:12.0: reg 10: [mem 0xffb00000-0xffb00fff]
  pci 0000:00:12.0: no compatible bridge window for [mem 0xffb00000-0xffb00fff]
  pci 0000:00:12.0: BAR 0: assigned [mem 0xd4000000-0xd40000ff]

Reported-by: Lisa Salimbas <lisa.salimbas@canonical.com>
Reported-by: <thuban@singularity.fr>
Tested-by: dann frazier <dann.frazier@canonical.com>
References: https://bugzilla.kernel.org/show_bug.cgi?id=31602
References: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/647043
References: https://bugzilla.redhat.com/show_bug.cgi?id=770308
Cc: stable@kernel.org	# 2.6.34+
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2012-01-06 12:11:20 -08:00
..
isapnp Merge branch 'pnp' into release 2011-01-12 04:59:44 -05:00
pnpacpi Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2011-11-07 10:13:52 -08:00
pnpbios treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
Kconfig PNP: remove old CONFIG_PNP_DEBUG option 2008-10-10 23:35:33 -04:00
Makefile PNP: Compile all pnp built-in stuff in one module namespace 2010-10-27 02:23:44 -04:00
base.h pnp: only assign IORESOURCE_DMA if CONFIG_ISA_DMA_API is enabled 2011-03-22 17:44:16 -07:00
card.c Fix common misspellings 2011-03-31 11:26:23 -03:00
core.c Merge branch 'pnp' into release 2011-01-12 04:59:44 -05:00
driver.c PNP / ACPI: Use DEVICE_ACPI_HANDLE() for device ACPI handle access 2011-01-11 15:20:40 -05:00
interface.c PNPACPI: add bus number support 2010-03-14 20:08:38 -04:00
manager.c pnp: only assign IORESOURCE_DMA if CONFIG_ISA_DMA_API is enabled 2011-03-22 17:44:16 -07:00
quirks.c PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that breaks USB 2012-01-06 12:11:20 -08:00
resource.c pnp: only assign IORESOURCE_DMA if CONFIG_ISA_DMA_API is enabled 2011-03-22 17:44:16 -07:00
support.c PNPACPI: add bus number support 2010-03-14 20:08:38 -04:00
system.c vsprintf: use %pR, %pr instead of %pRt, %pRf 2009-11-04 13:06:41 -08:00