android_kernel_google_msm/arch/x86/pci
Bjorn Helgaas 61473c581d x86/PCI: Use host bridge _CRS info on Foxconn K8M890-8237A
commit 1dace0116d0b05c967d94644fc4dfe96be2ecd3d upstream.

The Foxconn K8M890-8237A has two PCI host bridges, and we can't assign
resources correctly without the information from _CRS that tells us which
address ranges are claimed by which bridge.  In the bugs mentioned below,
we incorrectly assign a sound card address (this example is from 1033299):

  bus: 00 index 2 [mem 0x80000000-0xfcffffffff]
  ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-7f])
  pci_root PNP0A08:00: host bridge window [mem 0x80000000-0xbfefffff] (ignored)
  pci_root PNP0A08:00: host bridge window [mem 0xc0000000-0xdfffffff] (ignored)
  pci_root PNP0A08:00: host bridge window [mem 0xf0000000-0xfebfffff] (ignored)
  ACPI: PCI Root Bridge [PCI1] (domain 0000 [bus 80-ff])
  pci_root PNP0A08:01: host bridge window [mem 0xbff00000-0xbfffffff] (ignored)
  pci 0000:80:01.0: [1106:3288] type 0 class 0x000403
  pci 0000:80:01.0: reg 10: [mem 0xbfffc000-0xbfffffff 64bit]
  pci 0000:80:01.0: address space collision: [mem 0xbfffc000-0xbfffffff 64bit] conflicts with PCI Bus #00 [mem 0x80000000-0xfcffffffff]
  pci 0000:80:01.0: BAR 0: assigned [mem 0xfd00000000-0xfd00003fff 64bit]
  BUG: unable to handle kernel paging request at ffffc90000378000
  IP: [<ffffffffa0345f63>] azx_create+0x37c/0x822 [snd_hda_intel]

We assigned 0xfd_0000_0000, but that is not in any of the host bridge
windows, and the sound card doesn't work.

Turn on pci=use_crs automatically for this system.

Link: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/931368
Link: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1033299
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Zefan Li <lizefan@huawei.com>
2015-10-22 09:20:03 +08:00
..
acpi.c x86/PCI: Use host bridge _CRS info on Foxconn K8M890-8237A 2015-10-22 09:20:03 +08:00
amd_bus.c x86/PCI: amd: factor out MMCONFIG discovery 2012-01-06 12:11:19 -08:00
broadcom_bus.c x86/PCI: read Broadcom CNB20LE host bridge info before PCI scan 2012-01-06 12:11:12 -08:00
bus_numa.c x86/PCI: convert to pci_create_root_bus() and pci_scan_root_bus() 2012-01-06 12:11:14 -08:00
bus_numa.h
ce4100.c x86: constify PCI raw ops structures 2011-10-14 09:05:28 -07:00
common.c x86/PCI: convert to pci_create_root_bus() and pci_scan_root_bus() 2012-01-06 12:11:14 -08:00
direct.c x86: constify PCI raw ops structures 2011-10-14 09:05:28 -07:00
early.c
fixup.c x86: Fix boot on Twinhead H12Y 2012-10-02 10:30:33 -07:00
i386.c x86/PCI: add spinlock held check to 'pcibios_fwaddrmap_lookup()' 2012-03-02 12:03:58 -08:00
init.c
irq.c
legacy.c x86/PCI: use pci_scan_bus() instead of pci_scan_bus_parented() 2012-01-06 12:11:13 -08:00
Makefile x86/PCI: build amd_bus.o only when CONFIG_AMD_NB=y 2012-01-12 07:54:18 -08:00
mmconfig-shared.c
mmconfig_32.c x86: constify PCI raw ops structures 2011-10-14 09:05:28 -07:00
mmconfig_64.c x86: constify PCI raw ops structures 2011-10-14 09:05:28 -07:00
mrst.c x86/mrst/pci: avoid SoC fixups on non-SoC platforms 2012-02-23 12:33:27 -08:00
numaq_32.c x86/PCI: use pci_scan_bus() instead of pci_scan_bus_parented() 2012-01-06 12:11:13 -08:00
olpc.c x86: constify PCI raw ops structures 2011-10-14 09:05:28 -07:00
pcbios.c typo fixes: aera -> area, exntension -> extension 2011-12-09 15:22:07 +01:00
visws.c
xen.c xen/pci: We don't do multiple MSI's. 2013-03-14 11:29:41 -07:00