linux/drivers/pci
Alan Cox 368c73d4f6 PCI: quirks: fix the festering mess that claims to handle IDE quirks
The number of permutations of crap we do is amazing and almost all of it
has the wrong effect in 2.6.

At the heart of this is the PCI SFF magic which says that compatibility
mode PCI IDE controllers use ISA IRQ routing and hard coded addresses
not the BAR values. The old quirks variously clears them, sets them,
adjusts them and then IDE ignores the result.

In order to drive all this garbage out and to do it portably we need to
handle the SFF rules directly and properly. Because we know the device
BAR 0-3 are not used in compatibility mode we load them with the values
that are implied (and indeed which many controllers actually
thoughtfully put there in this mode anyway).

This removes special cases in the IDE layer and libata which now knows
that bar 0/1/2/3 always contain the correct address. It means our
resource allocation map is accurate from boot, not "mostly accurate"
after ide is loaded, and it shoots lots of code. There is also lots more
code and magic constant knowledge to shoot once this is in and settled.

Been in my test tree for a while both with drivers/ide and with libata.
Wants some -mm shakedown in case I've missed something dumb or there are
corner cases lurking.

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-12-01 14:36:56 -08:00
..
hotplug acpiphp: fix latch status 2006-10-27 11:20:32 -07:00
pcie PCI: fix pcie_portdrv_restore_config undefined without CONFIG_PM error 2006-10-18 11:36:11 -07:00
.gitignore Add some basic .gitignore files 2005-10-18 08:26:15 -07:00
access.c [PATCH] PCI: drivers/pci/: small cleanups 2005-11-10 16:09:18 -08:00
bus.c PCI: fix __must_check warnings 2006-09-26 17:43:53 -07:00
hotplug.c [PATCH] driver core: replace "hotplug" by "uevent" 2006-01-04 16:18:08 -08:00
htirq.c [PATCH] htirq: allow buggy drivers of buggy hardware to write the registers 2006-11-08 18:29:25 -08:00
Kconfig PCI: Let PCI_MULTITHREAD_PROBE not be broken 2006-12-01 14:36:55 -08:00
Makefile [PATCH] htirq: tidy up the htirq code 2006-10-04 07:55:30 -07:00
msi.c PCI: Improve pci_msi_supported() comments 2006-10-18 11:36:11 -07:00
msi.h PCI: Make some MSI-X #defines generic 2006-12-01 14:36:56 -08:00
pci-acpi.c [PATCH] PCI ACPI: Rename the functions to avoid multiple instances. 2006-06-21 11:59:59 -07:00
pci-driver.c PCI: reset pci device state to unknown state for resume 2006-10-27 11:20:33 -07:00
pci-sysfs.c [PATCH] pci: don't try to remove sysfs files before they are setup. 2006-11-13 07:40:42 -08:00
pci.c PCI: save/restore PCI-X state 2006-12-01 14:36:56 -08:00
pci.h MSI: Cleanup existing MSI quirks 2006-09-26 17:43:52 -07:00
probe.c PCI: quirks: fix the festering mess that claims to handle IDE quirks 2006-12-01 14:36:56 -08:00
proc.c [PATCH] 64bit resource: change pci core and arch code to use resource_size_t 2006-06-27 09:24:00 -07:00
quirks.c PCI: quirks: fix the festering mess that claims to handle IDE quirks 2006-12-01 14:36:56 -08:00
remove.c PCI: add pci_stop_bus_device 2006-09-26 17:43:54 -07:00
rom.c PCI: fix pci_fixup_video as it blows up on sparc64 2006-10-27 11:20:33 -07:00
search.c pci: Additional search functions 2006-10-18 11:36:12 -07:00
setup-bus.c [PATCH] fix "PCI: assign ioapic resource at hotplug" 2006-10-04 07:55:14 -07:00
setup-irq.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
setup-res.c [PATCH] 64bit resource: change pci core and arch code to use resource_size_t 2006-06-27 09:24:00 -07:00
syscall.c [PATCH] PCI: Block config access during BIST 2005-10-28 15:36:58 -07:00