linux/drivers/pci
Jiri Slaby 87e3dc3855 PCI: do not create quirk I/O regions below PCIBIOS_MIN_IO for ICH
Some broken BIOSes on ICH4 chipset report an ACPI region which is in
conflict with legacy IDE ports when ACPI is disabled. Even though the
regions overlap, IDE ports are working correctly (we cannot find out
the decoding rules on chipsets).

So the only problem is the reported region itself, if we don't reserve
the region in the quirk everything works as expected.

This patch avoids reserving any quirk regions below PCIBIOS_MIN_IO
which is 0x1000. Some regions might be (and are by a fast google
query) below this border, but the only difference is that they won't
be reserved anymore. They should still work though the same as before.

The conflicts look like (1f.0 is bridge, 1f.1 is IDE ctrl):
pci 0000:00:1f.1: address space collision: [io 0x0170-0x0177] conflicts with 0000:00:1f.0 [io  0x0100-0x017f]

At 0x0100 a 128 bytes long ACPI region is reported in the quirk for
ICH4. ata_piix then fails to find disks because the IDE legacy ports
are zeroed:
ata_piix 0000:00:1f.1: device not available (can't reserve [io 0x0000-0x0007])

References: https://bugzilla.novell.com/show_bug.cgi?id=558740
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Thomas Renninger <trenn@suse.de>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2011-03-04 10:42:32 -08:00
..
hotplug PCI hotplug: acpiphp: set current_state to D0 in register_slot 2011-03-04 10:42:22 -08:00
pcie PCI: aer-inject: Override PCIe AER Mask Registers 2011-03-04 10:41:02 -08:00
.gitignore
access.c PCI: output FW warning in pci_read/write_vpd 2010-05-18 15:00:25 -07:00
bus.c Revert "PCI: allocate bus resources from the top down" 2010-12-17 10:00:54 -08:00
dmar.c x86, vt-d: Handle previous faults after enabling fault handling 2010-12-13 16:53:57 -08:00
hotplug-pci.c
hotplug.c
htirq.c
intel-iommu.c
intr_remapping.c
intr_remapping.h
ioapic.c
iov.c
iova.c
irq.c
Kconfig PCI: Export ACPI _DSM provided firmware instance number and string name to sysfs 2011-03-04 10:41:56 -08:00
Makefile PCI: Export ACPI _DSM provided firmware instance number and string name to sysfs 2011-03-04 10:41:56 -08:00
msi.c PCI: Add mask bit definition for MSI-X table 2010-12-23 12:53:08 -08:00
msi.h PCI: MSI: Move MSI-X entry definition to pci_regs.h 2010-12-23 12:53:07 -08:00
pci-acpi.c PCI/PM: Report wakeup events before resuming devices 2011-01-14 08:55:43 -08:00
pci-driver.c PCI: fix __pci_device_probe kernel-doc warning 2010-12-23 12:53:09 -08:00
pci-label.c PCI: Export ACPI _DSM provided firmware instance number and string name to sysfs 2011-03-04 10:41:56 -08:00
pci-stub.c PCI: pci-stub: ignore zero-length id parameters 2010-12-23 12:53:52 -08:00
pci-sysfs.c PCI: sysfs: Fix failure path for addition of "vpd" attribute 2011-02-08 10:02:46 -08:00
pci.c PCI/PM: Report wakeup events before resuming devices 2011-01-14 08:55:43 -08:00
pci.h PCI: Export ACPI _DSM provided firmware instance number and string name to sysfs 2011-03-04 10:41:56 -08:00
probe.c PCI: Avoid potential NULL pointer dereference in pci_scan_bridge 2011-02-08 13:08:05 -08:00
proc.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
quirks.c PCI: do not create quirk I/O regions below PCIBIOS_MIN_IO for ICH 2011-03-04 10:42:32 -08:00
remove.c
rom.c
search.c
setup-bus.c
setup-irq.c
setup-res.c
slot.c
syscall.c
vpd.c
xen-pcifront.c xen-pcifront: fix PCI reference leak 2010-11-08 11:41:15 -05:00