android_kernel_xiaomi_sm8350/arch/x86/pci
Bjorn Helgaas 03db42adfe x86/PCI: fix bogus host bridge window start/end alignment from _CRS
PCI device BARs are guaranteed to start and end on at least a four-byte
(I/O) or a sixteen-byte (MMIO) boundary because they're aligned on their
size and the low BAR bits are reserved.  PCI-to-PCI bridge apertures
have even larger alignment restrictions.

However, some BIOSes (e.g., HP DL360 BIOS P31) report host bridge windows
like "[io  0x0000-0x2cfe]".  This is wrong because it excludes the last
port at 0x2cff: it's impossible for a downstream device to claim 0x2cfe
without also claiming 0x2cff.  In fact, this BIOS configures a device
behind the bridge to "[io  0x2c00-0x2cff]", so we know the window actually
does include 0x2cff.

This patch rounds the start and end of apertures to the appropriate
boundary.  I experimentally determined that Windows contains a similar
workaround; details here:

    http://bugzilla.kernel.org/show_bug.cgi?id=14337

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2009-11-04 13:06:46 -08:00
..
acpi.c x86/PCI: fix bogus host bridge window start/end alignment from _CRS 2009-11-04 13:06:46 -08:00
amd_bus.c x86/PCI: read root resources from IOH on Intel 2009-11-04 08:47:09 -08:00
bus_numa.h x86/PCI: read root resources from IOH on Intel 2009-11-04 08:47:09 -08:00
common.c x86/PCI: Use generic cacheline sizing instead of per-vendor tests. 2009-11-04 08:47:12 -08:00
direct.c dmi: extend dmi_get_year() to dmi_get_date() 2009-09-08 21:17:48 -04:00
early.c PCI/x86: format early dump like other PCI output 2009-03-19 19:29:18 -07:00
fixup.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-04-01 09:47:12 -07:00
i386.c PCI: improve discovery/configuration messages 2009-11-04 13:06:44 -08:00
init.c PCI: avoid early PCI mmconfig init if pci=noearly is given in cmdline 2009-01-07 11:12:46 -08:00
intel_bus.c x86/PCI: read root resources from IOH on Intel 2009-11-04 08:47:09 -08:00
irq.c x86, apic: introduce io_apic_irq_attr 2009-05-18 08:38:55 +02:00
legacy.c x86/PCI: make pci=lastbus=255 work when acpi is on 2009-03-26 16:07:49 -07:00
Makefile x86/PCI: use -DDEBUG when CONFIG_PCI_DEBUG set 2009-11-04 08:47:27 -08:00
mmconfig_32.c SFI: Hook PCI MMCONFIG 2009-08-28 19:57:34 -04:00
mmconfig_64.c x86/PCI: host mmconfig detect clean up 2009-03-20 11:40:22 -07:00
mmconfig-shared.c x86/PCI: allow MMCONFIG above 4GB 2009-11-04 08:47:22 -08:00
numaq_32.c x86, apic: remove genapic.h 2009-02-17 17:52:44 +01:00
olpc.c x86, pci: move arch/x86/pci/pci.h to arch/x86/include/asm/pci_x86.h 2008-12-29 18:17:36 +01:00
pcbios.c x86: move mach-default/*.h files to asm/ 2009-01-29 14:16:51 +01:00
visws.c PCI: x86/visws: use generic INTx swizzle from PCI core 2009-01-07 11:13:16 -08:00