[PATCH] libata: rework legacy handling to remove much of the cruft
Kill host_set->next Fix simplex support Allow per platform setting of IDE legacy bases Some of this can be tidied further later on, in particular all the legacy port gunge belongs as a PCI quirk/PCI header decode to understand the special legacy IDE rules in the PCI spec. Longer term Jeff also wants to move the request_irq/free_irq out of core which will make this even cleaner. tj: folded in three followup patches - ata_piix-fix, broken-arch-fix and fix-new-legacy-handling, and separated per-dev xfermask into separate patch preceding this one. Folded in fixes are... * ata_piix-fix: fix build failure due to host_set->next removal * broken-arch-fix: add missing include/asm-*/libata-portmap.h * fix-new-legacy-handling: * In ata_pci_init_legacy_port(), probe_num was incorrectly incremented during initialization of the secondary port and probe_ent->n_ports was incorrectly fixed to 1. * Both legacy ports ended up having the same hard_port_no. * When printing port information, both legacy ports printed the first irq. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Tejun Heo <htejun@gmail.com>
This commit is contained in:
@@ -36,6 +36,8 @@
|
||||
#include <linux/workqueue.h>
|
||||
#include <scsi/scsi_host.h>
|
||||
|
||||
#include <asm/libata-portmap.h>
|
||||
|
||||
/*
|
||||
* compile-time options: to be removed as soon as all the drivers are
|
||||
* converted to the new debugging mechanism
|
||||
@@ -356,6 +358,7 @@ struct ata_probe_ent {
|
||||
unsigned int udma_mask;
|
||||
unsigned int legacy_mode;
|
||||
unsigned long irq;
|
||||
unsigned long irq2;
|
||||
unsigned int irq_flags;
|
||||
unsigned long host_flags;
|
||||
unsigned long host_set_flags;
|
||||
@@ -367,6 +370,7 @@ struct ata_host_set {
|
||||
spinlock_t lock;
|
||||
struct device *dev;
|
||||
unsigned long irq;
|
||||
unsigned long irq2;
|
||||
void __iomem *mmio_base;
|
||||
unsigned int n_ports;
|
||||
void *private_data;
|
||||
@@ -374,7 +378,6 @@ struct ata_host_set {
|
||||
unsigned long flags;
|
||||
int simplex_claimed; /* Keep seperate in case we
|
||||
ever need to do this locked */
|
||||
struct ata_host_set *next; /* for legacy mode */
|
||||
struct ata_port *ports[0];
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user