aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2015-06-09 19:54:07 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-07-10 12:49:35 -0400
commitb6f2faffa0a189c28a2f2242c0b23fb031ba3075 (patch)
tree528fa1547709d2741e17d7728cc89865bc4f37c3
parent9dc6d43528e147f9d243df8da6ccf54c7ee244de (diff)
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>
-rw-r--r--arch/x86/pci/acpi.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
index 546f18ad09f0..ff9911707160 100644
--- a/arch/x86/pci/acpi.c
+++ b/arch/x86/pci/acpi.c
@@ -81,6 +81,17 @@ static const struct dmi_system_id pci_crs_quirks[] __initconst = {
81 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies, LTD"), 81 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies, LTD"),
82 }, 82 },
83 }, 83 },
84 /* https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/931368 */
85 /* https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1033299 */
86 {
87 .callback = set_use_crs,
88 .ident = "Foxconn K8M890-8237A",
89 .matches = {
90 DMI_MATCH(DMI_BOARD_VENDOR, "Foxconn"),
91 DMI_MATCH(DMI_BOARD_NAME, "K8M890-8237A"),
92 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies, LTD"),
93 },
94 },
84 95
85 /* Now for the blacklist.. */ 96 /* Now for the blacklist.. */
86 97