diff options
author | Mikael Pettersson <mikpe@it.uu.se> | 2006-12-06 03:55:43 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-12-07 07:21:24 -0500 |
commit | d324d4627d7442d9a74b0b93fc40f71ce194632a (patch) | |
tree | 395fb3bc578bafc3797c3d217477f758aff932e6 /drivers/ata/sata_promise.c | |
parent | 620034c84d1d939717bdfbe02c51a3fee43541c3 (diff) |
[PATCH] sata_promise: cleanups, take 2
This patch performs two simple cleanups of sata_promise.
* Remove board_20771 and map device id 0x3577 to board_2057x.
After the recent corrections for SATAII chips, board_20771 and
board_2057x were equivalent in the driver.
* Remove hp->hotplug_offset and use hp->flags & PDC_FLAG_GEN_II
to compute hotplug_offset in pdc_host_init(). hp->hotplug_offset
was used to distinguish 1st and 2nd generation chips in one
particular case, but now we have that information in a more
general form in hp->flags, so hp->hotplug_offset is redundant.
Changes since previous submission: rebased on libata-dev #upstream,
cleaned up hotplug_offset computation based on Tejun's comments,
expanded hotplug_offset removal rationale.
This patch does not depend on the pending new EH conversion patch.
Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata/sata_promise.c')
-rw-r--r-- | drivers/ata/sata_promise.c | 40 |
1 files changed, 9 insertions, 31 deletions
diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c index a2778cf016bc..6f7bc5b0ef4a 100644 --- a/drivers/ata/sata_promise.c +++ b/drivers/ata/sata_promise.c | |||
@@ -66,9 +66,8 @@ enum { | |||
66 | board_2037x = 0, /* FastTrak S150 TX2plus */ | 66 | board_2037x = 0, /* FastTrak S150 TX2plus */ |
67 | board_20319 = 1, /* FastTrak S150 TX4 */ | 67 | board_20319 = 1, /* FastTrak S150 TX4 */ |
68 | board_20619 = 2, /* FastTrak TX4000 */ | 68 | board_20619 = 2, /* FastTrak TX4000 */ |
69 | board_20771 = 3, /* FastTrak TX2300 */ | 69 | board_2057x = 3, /* SATAII150 Tx2plus */ |
70 | board_2057x = 4, /* SATAII150 Tx2plus */ | 70 | board_40518 = 4, /* SATAII150 Tx4 */ |
71 | board_40518 = 5, /* SATAII150 Tx4 */ | ||
72 | 71 | ||
73 | PDC_HAS_PATA = (1 << 1), /* PDC20375/20575 has PATA */ | 72 | PDC_HAS_PATA = (1 << 1), /* PDC20375/20575 has PATA */ |
74 | 73 | ||
@@ -90,7 +89,6 @@ struct pdc_port_priv { | |||
90 | 89 | ||
91 | struct pdc_host_priv { | 90 | struct pdc_host_priv { |
92 | unsigned long flags; | 91 | unsigned long flags; |
93 | int hotplug_offset; | ||
94 | }; | 92 | }; |
95 | 93 | ||
96 | static u32 pdc_sata_scr_read (struct ata_port *ap, unsigned int sc_reg); | 94 | static u32 pdc_sata_scr_read (struct ata_port *ap, unsigned int sc_reg); |
@@ -205,16 +203,6 @@ static const struct ata_port_info pdc_port_info[] = { | |||
205 | .port_ops = &pdc_pata_ops, | 203 | .port_ops = &pdc_pata_ops, |
206 | }, | 204 | }, |
207 | 205 | ||
208 | /* board_20771 */ | ||
209 | { | ||
210 | .sht = &pdc_ata_sht, | ||
211 | .flags = PDC_COMMON_FLAGS | ATA_FLAG_SATA, | ||
212 | .pio_mask = 0x1f, /* pio0-4 */ | ||
213 | .mwdma_mask = 0x07, /* mwdma0-2 */ | ||
214 | .udma_mask = 0x7f, /* udma0-6 ; FIXME */ | ||
215 | .port_ops = &pdc_sata_ops, | ||
216 | }, | ||
217 | |||
218 | /* board_2057x */ | 206 | /* board_2057x */ |
219 | { | 207 | { |
220 | .sht = &pdc_ata_sht, | 208 | .sht = &pdc_ata_sht, |
@@ -244,6 +232,7 @@ static const struct pci_device_id pdc_ata_pci_tbl[] = { | |||
244 | { PCI_VDEVICE(PROMISE, 0x3570), board_2057x }, | 232 | { PCI_VDEVICE(PROMISE, 0x3570), board_2057x }, |
245 | { PCI_VDEVICE(PROMISE, 0x3571), board_2057x }, | 233 | { PCI_VDEVICE(PROMISE, 0x3571), board_2057x }, |
246 | { PCI_VDEVICE(PROMISE, 0x3574), board_2057x }, | 234 | { PCI_VDEVICE(PROMISE, 0x3574), board_2057x }, |
235 | { PCI_VDEVICE(PROMISE, 0x3577), board_2057x }, | ||
247 | { PCI_VDEVICE(PROMISE, 0x3d73), board_2057x }, | 236 | { PCI_VDEVICE(PROMISE, 0x3d73), board_2057x }, |
248 | { PCI_VDEVICE(PROMISE, 0x3d75), board_2057x }, | 237 | { PCI_VDEVICE(PROMISE, 0x3d75), board_2057x }, |
249 | 238 | ||
@@ -256,15 +245,6 @@ static const struct pci_device_id pdc_ata_pci_tbl[] = { | |||
256 | 245 | ||
257 | { PCI_VDEVICE(PROMISE, 0x6629), board_20619 }, | 246 | { PCI_VDEVICE(PROMISE, 0x6629), board_20619 }, |
258 | 247 | ||
259 | /* TODO: remove all associated board_20771 code, as it completely | ||
260 | * duplicates board_2037x code, unless reason for separation can be | ||
261 | * divined. | ||
262 | */ | ||
263 | #if 0 | ||
264 | { PCI_VDEVICE(PROMISE, 0x3570), board_20771 }, | ||
265 | #endif | ||
266 | { PCI_VDEVICE(PROMISE, 0x3577), board_20771 }, | ||
267 | |||
268 | { } /* terminate list */ | 248 | { } /* terminate list */ |
269 | }; | 249 | }; |
270 | 250 | ||
@@ -645,9 +625,14 @@ static void pdc_host_init(unsigned int chip_id, struct ata_probe_ent *pe) | |||
645 | { | 625 | { |
646 | void __iomem *mmio = pe->mmio_base; | 626 | void __iomem *mmio = pe->mmio_base; |
647 | struct pdc_host_priv *hp = pe->private_data; | 627 | struct pdc_host_priv *hp = pe->private_data; |
648 | int hotplug_offset = hp->hotplug_offset; | 628 | int hotplug_offset; |
649 | u32 tmp; | 629 | u32 tmp; |
650 | 630 | ||
631 | if (hp->flags & PDC_FLAG_GEN_II) | ||
632 | hotplug_offset = PDC2_SATA_PLUG_CSR; | ||
633 | else | ||
634 | hotplug_offset = PDC_SATA_PLUG_CSR; | ||
635 | |||
651 | /* | 636 | /* |
652 | * Except for the hotplug stuff, this is voodoo from the | 637 | * Except for the hotplug stuff, this is voodoo from the |
653 | * Promise driver. Label this entire section | 638 | * Promise driver. Label this entire section |
@@ -742,8 +727,6 @@ static int pdc_ata_init_one (struct pci_dev *pdev, const struct pci_device_id *e | |||
742 | goto err_out_free_ent; | 727 | goto err_out_free_ent; |
743 | } | 728 | } |
744 | 729 | ||
745 | /* Set default hotplug offset */ | ||
746 | hp->hotplug_offset = PDC_SATA_PLUG_CSR; | ||
747 | probe_ent->private_data = hp; | 730 | probe_ent->private_data = hp; |
748 | 731 | ||
749 | probe_ent->sht = pdc_port_info[board_idx].sht; | 732 | probe_ent->sht = pdc_port_info[board_idx].sht; |
@@ -767,8 +750,6 @@ static int pdc_ata_init_one (struct pci_dev *pdev, const struct pci_device_id *e | |||
767 | switch (board_idx) { | 750 | switch (board_idx) { |
768 | case board_40518: | 751 | case board_40518: |
769 | hp->flags |= PDC_FLAG_GEN_II; | 752 | hp->flags |= PDC_FLAG_GEN_II; |
770 | /* Override hotplug offset for SATAII150 */ | ||
771 | hp->hotplug_offset = PDC2_SATA_PLUG_CSR; | ||
772 | /* Fall through */ | 753 | /* Fall through */ |
773 | case board_20319: | 754 | case board_20319: |
774 | probe_ent->n_ports = 4; | 755 | probe_ent->n_ports = 4; |
@@ -780,10 +761,7 @@ static int pdc_ata_init_one (struct pci_dev *pdev, const struct pci_device_id *e | |||
780 | probe_ent->port[3].scr_addr = base + 0x700; | 761 | probe_ent->port[3].scr_addr = base + 0x700; |
781 | break; | 762 | break; |
782 | case board_2057x: | 763 | case board_2057x: |
783 | case board_20771: | ||
784 | hp->flags |= PDC_FLAG_GEN_II; | 764 | hp->flags |= PDC_FLAG_GEN_II; |
785 | /* Override hotplug offset for SATAII150 */ | ||
786 | hp->hotplug_offset = PDC2_SATA_PLUG_CSR; | ||
787 | /* Fall through */ | 765 | /* Fall through */ |
788 | case board_2037x: | 766 | case board_2037x: |
789 | probe_ent->n_ports = 2; | 767 | probe_ent->n_ports = 2; |