linux/arch/x86/pci
Bjorn Helgaas 1f09b09b4d x86/PCI: Ignore _SEG on HP xw9300
The xw9300 BIOS supplies _SEG methods that are incorrect, which results
in some LSI SCSI devices not being discovered.  This adds a quirk to
ignore _SEG on this machine and default to zero.

The xw9300 has three host bridges:

    ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-3f])
    ACPI: PCI Root Bridge [PCI1] (domain 0001 [bus 40-7f])
    ACPI: PCI Root Bridge [PCI2] (domain 0002 [bus 80-ff])

When the BIOS "ACPI Bus Segmentation" option is enabled (as it is by
default), the _SEG methods of the PCI1 and PCI2 bridges return 1 and 2,
respectively.  However, the BIOS implementation appears to be incomplete,
and we can't enumerate devices in those domains.

But if we assume PCI1 and PCI2 really lead to buses in domain 0,
everything works fine.  Windows XP and Vista also seem to ignore
these _SEG methods.

Reference: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=543308
Reference: https://bugzilla.kernel.org/show_bug.cgi?id=15362
Reported-and-Tested-by: Sean M. Pappalardo <pegasus@renegadetech.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2012-11-07 15:24:18 -07:00
..
acpi.c x86/PCI: Ignore _SEG on HP xw9300 2012-11-07 15:24:18 -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/PCI: put busn resource in pci_root_info for native host bridge drivers 2012-06-13 15:42:24 -06: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: constify PCI raw ops structures 2011-10-14 09:05:28 -07:00
common.c x86/PCI: adjust section annotations for pcibios_setup() 2012-07-05 15:09:14 -06:00
direct.c x86: constify PCI raw ops structures 2011-10-14 09:05:28 -07:00
early.c
fixup.c Merge branch 'drm-core-next' of git://people.freedesktop.org/~airlied/linux 2012-05-24 12:42:54 -07:00
i386.c x86/PCI: only check for spinlock being held in SMP kernels 2012-05-15 17:01:09 -06:00
init.c
irq.c x86/PCI: irq and pci_ids patch for Intel Panther Point DeviceIDs 2011-05-10 15:43:36 -07:00
legacy.c x86/PCI: use pci_scan_bus() instead of pci_scan_bus_parented() 2012-01-06 12:11:13 -08:00
Makefile x86, platform: Initial support for sta2x11 I/O hub 2012-04-12 11:10:30 -07:00
mmconfig_32.c x86/PCI: update MMCONFIG information when hot-plugging PCI host bridges 2012-06-22 15:17:00 -06:00
mmconfig_64.c x86/PCI: use pr_level() to replace printk(KERN_LEVEL) 2012-06-22 15:18:05 -06:00
mmconfig-shared.c arch/x86: Remove unecessary semicolons 2012-09-19 17:32:48 +02:00
mrst.c PCI: do not call pci_set_power_state with PCI_D3cold 2012-06-23 10:50:44 -06: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
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: do not map the same GSI twice in PVHVM guests. 2012-05-21 14:11:36 -04:00