diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2015-06-09 19:54:07 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-07-10 12:49:35 -0400 |
commit | b6f2faffa0a189c28a2f2242c0b23fb031ba3075 (patch) | |
tree | 528fa1547709d2741e17d7728cc89865bc4f37c3 /arch | |
parent | 9dc6d43528e147f9d243df8da6ccf54c7ee244de (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>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/pci/acpi.c | 11 |
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 | ||