android_kernel_samsung_msm8976/arch/x86/pci
Bjorn Helgaas dc86cafe9a 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-07-10 10:40:22 -07:00
..
Makefile x86/PCI: Add NumaChip remote PCI support 2012-12-07 14:24:32 -07:00
acpi.c x86/PCI: Use host bridge _CRS info on Foxconn K8M890-8237A 2015-07-10 10:40:22 -07:00
amd_bus.c x86/PCI: put busn resource in pci_root_info for native host bridge drivers 2012-06-13 15:42:24 -06:00
broadcom_bus.c x86/PCI: dynamically allocate pci_root_info for native host bridge drivers 2012-04-30 14:52:43 -06:00
bus_numa.c X86: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
bus_numa.h x86/PCI: put busn resource in pci_root_info for native host bridge drivers 2012-06-13 15:42:24 -06:00
ce4100.c x86/ce4100: Fix PCI configuration register access for devices without interrupts 2012-10-30 10:16:47 +01:00
common.c PCI: Add NEC variants to Stratus ftServer PCIe DMI check 2015-02-11 14:48:16 +08:00
direct.c
early.c
fixup.c X86: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
i386.c x86: don't exclude low BIOS area when allocating address space for non-PCI cards 2014-09-05 16:28:36 -07:00
init.c
irq.c
legacy.c PCI changes for the v3.9 merge window: 2013-02-25 21:18:18 -08:00
mmconfig-shared.c x86, uv, uv3: Update ACPI Check to include SGI UV3 2013-02-11 17:17:44 -08:00
mmconfig_32.c X86: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mmconfig_64.c X86: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mrst.c Revert "x86/pci/mrst: Use configuration mechanism 1 for 00:00.0, 00:02.0, 00:03.0" 2013-05-20 10:20:21 -06:00
numachip.c x86/PCI: Add NumaChip remote PCI support 2012-12-07 14:24:32 -07:00
numaq_32.c PCI changes for the v3.9 merge window: 2013-02-25 21:18:18 -08:00
olpc.c
pcbios.c X86: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
sta2x11-fixup.c x86, platform: Initial support for sta2x11 I/O hub 2012-04-12 11:10:30 -07:00
visws.c PCI: Provide a default pcibios_update_irq() 2012-09-18 17:28:21 -06:00
xen.c xen/pci: Used cached MSI-X capability offset 2013-05-10 09:10:38 -04:00