diff options
Diffstat (limited to 'drivers/ata/ata_piix.c')
-rw-r--r-- | drivers/ata/ata_piix.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c index bb46b61a7c6b..eafb984313f6 100644 --- a/drivers/ata/ata_piix.c +++ b/drivers/ata/ata_piix.c | |||
@@ -162,15 +162,16 @@ struct piix_host_priv { | |||
162 | 162 | ||
163 | static int piix_init_one(struct pci_dev *pdev, | 163 | static int piix_init_one(struct pci_dev *pdev, |
164 | const struct pci_device_id *ent); | 164 | const struct pci_device_id *ent); |
165 | static void piix_pata_error_handler(struct ata_port *ap); | 165 | static int piix_pata_prereset(struct ata_link *link, unsigned long deadline); |
166 | static void piix_set_piomode(struct ata_port *ap, struct ata_device *adev); | 166 | static void piix_set_piomode(struct ata_port *ap, struct ata_device *adev); |
167 | static void piix_set_dmamode(struct ata_port *ap, struct ata_device *adev); | 167 | static void piix_set_dmamode(struct ata_port *ap, struct ata_device *adev); |
168 | static void ich_set_dmamode(struct ata_port *ap, struct ata_device *adev); | 168 | static void ich_set_dmamode(struct ata_port *ap, struct ata_device *adev); |
169 | static int ich_pata_cable_detect(struct ata_port *ap); | 169 | static int ich_pata_cable_detect(struct ata_port *ap); |
170 | static u8 piix_vmw_bmdma_status(struct ata_port *ap); | 170 | static u8 piix_vmw_bmdma_status(struct ata_port *ap); |
171 | static int piix_sidpr_hardreset(struct ata_link *link, unsigned int *class, | ||
172 | unsigned long deadline); | ||
171 | static int piix_sidpr_scr_read(struct ata_port *ap, unsigned int reg, u32 *val); | 173 | static int piix_sidpr_scr_read(struct ata_port *ap, unsigned int reg, u32 *val); |
172 | static int piix_sidpr_scr_write(struct ata_port *ap, unsigned int reg, u32 val); | 174 | static int piix_sidpr_scr_write(struct ata_port *ap, unsigned int reg, u32 val); |
173 | static void piix_sidpr_error_handler(struct ata_port *ap); | ||
174 | #ifdef CONFIG_PM | 175 | #ifdef CONFIG_PM |
175 | static int piix_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg); | 176 | static int piix_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg); |
176 | static int piix_pci_device_resume(struct pci_dev *pdev); | 177 | static int piix_pci_device_resume(struct pci_dev *pdev); |
@@ -299,7 +300,7 @@ static struct ata_port_operations piix_pata_ops = { | |||
299 | .cable_detect = ata_cable_40wire, | 300 | .cable_detect = ata_cable_40wire, |
300 | .set_piomode = piix_set_piomode, | 301 | .set_piomode = piix_set_piomode, |
301 | .set_dmamode = piix_set_dmamode, | 302 | .set_dmamode = piix_set_dmamode, |
302 | .error_handler = piix_pata_error_handler, | 303 | .prereset = piix_pata_prereset, |
303 | }; | 304 | }; |
304 | 305 | ||
305 | static struct ata_port_operations piix_vmw_ops = { | 306 | static struct ata_port_operations piix_vmw_ops = { |
@@ -319,9 +320,9 @@ static struct ata_port_operations piix_sata_ops = { | |||
319 | 320 | ||
320 | static struct ata_port_operations piix_sidpr_sata_ops = { | 321 | static struct ata_port_operations piix_sidpr_sata_ops = { |
321 | .inherits = &piix_sata_ops, | 322 | .inherits = &piix_sata_ops, |
323 | .hardreset = piix_sidpr_hardreset, | ||
322 | .scr_read = piix_sidpr_scr_read, | 324 | .scr_read = piix_sidpr_scr_read, |
323 | .scr_write = piix_sidpr_scr_write, | 325 | .scr_write = piix_sidpr_scr_write, |
324 | .error_handler = piix_sidpr_error_handler, | ||
325 | }; | 326 | }; |
326 | 327 | ||
327 | static const struct piix_map_db ich5_map_db = { | 328 | static const struct piix_map_db ich5_map_db = { |
@@ -645,12 +646,6 @@ static int piix_pata_prereset(struct ata_link *link, unsigned long deadline) | |||
645 | return ata_std_prereset(link, deadline); | 646 | return ata_std_prereset(link, deadline); |
646 | } | 647 | } |
647 | 648 | ||
648 | static void piix_pata_error_handler(struct ata_port *ap) | ||
649 | { | ||
650 | ata_bmdma_drive_eh(ap, piix_pata_prereset, ata_std_softreset, NULL, | ||
651 | ata_std_postreset); | ||
652 | } | ||
653 | |||
654 | /** | 649 | /** |
655 | * piix_set_piomode - Initialize host controller PATA PIO timings | 650 | * piix_set_piomode - Initialize host controller PATA PIO timings |
656 | * @ap: Port whose timings we are configuring | 651 | * @ap: Port whose timings we are configuring |
@@ -1057,12 +1052,6 @@ static int piix_sidpr_hardreset(struct ata_link *link, unsigned int *class, | |||
1057 | return -EAGAIN; | 1052 | return -EAGAIN; |
1058 | } | 1053 | } |
1059 | 1054 | ||
1060 | static void piix_sidpr_error_handler(struct ata_port *ap) | ||
1061 | { | ||
1062 | ata_bmdma_drive_eh(ap, ata_std_prereset, ata_std_softreset, | ||
1063 | piix_sidpr_hardreset, ata_std_postreset); | ||
1064 | } | ||
1065 | |||
1066 | #ifdef CONFIG_PM | 1055 | #ifdef CONFIG_PM |
1067 | static int piix_broken_suspend(void) | 1056 | static int piix_broken_suspend(void) |
1068 | { | 1057 | { |