aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/sata_promise.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/sata_promise.c')
-rw-r--r--drivers/ata/sata_promise.c22
1 files changed, 4 insertions, 18 deletions
diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c
index e09b975c973d..91659dc15caf 100644
--- a/drivers/ata/sata_promise.c
+++ b/drivers/ata/sata_promise.c
@@ -148,8 +148,7 @@ static void pdc_freeze(struct ata_port *ap);
148static void pdc_sata_freeze(struct ata_port *ap); 148static void pdc_sata_freeze(struct ata_port *ap);
149static void pdc_thaw(struct ata_port *ap); 149static void pdc_thaw(struct ata_port *ap);
150static void pdc_sata_thaw(struct ata_port *ap); 150static void pdc_sata_thaw(struct ata_port *ap);
151static void pdc_pata_error_handler(struct ata_port *ap); 151static void pdc_error_handler(struct ata_port *ap);
152static void pdc_sata_error_handler(struct ata_port *ap);
153static void pdc_post_internal_cmd(struct ata_queued_cmd *qc); 152static void pdc_post_internal_cmd(struct ata_queued_cmd *qc);
154static int pdc_pata_cable_detect(struct ata_port *ap); 153static int pdc_pata_cable_detect(struct ata_port *ap);
155static int pdc_sata_cable_detect(struct ata_port *ap); 154static int pdc_sata_cable_detect(struct ata_port *ap);
@@ -171,6 +170,7 @@ static const struct ata_port_operations pdc_common_ops = {
171 .irq_clear = pdc_irq_clear, 170 .irq_clear = pdc_irq_clear,
172 171
173 .post_internal_cmd = pdc_post_internal_cmd, 172 .post_internal_cmd = pdc_post_internal_cmd,
173 .error_handler = pdc_error_handler,
174}; 174};
175 175
176static struct ata_port_operations pdc_sata_ops = { 176static struct ata_port_operations pdc_sata_ops = {
@@ -178,7 +178,6 @@ static struct ata_port_operations pdc_sata_ops = {
178 .cable_detect = pdc_sata_cable_detect, 178 .cable_detect = pdc_sata_cable_detect,
179 .freeze = pdc_sata_freeze, 179 .freeze = pdc_sata_freeze,
180 .thaw = pdc_sata_thaw, 180 .thaw = pdc_sata_thaw,
181 .error_handler = pdc_sata_error_handler,
182 .scr_read = pdc_sata_scr_read, 181 .scr_read = pdc_sata_scr_read,
183 .scr_write = pdc_sata_scr_write, 182 .scr_write = pdc_sata_scr_write,
184 .port_start = pdc_sata_port_start, 183 .port_start = pdc_sata_port_start,
@@ -195,7 +194,6 @@ static struct ata_port_operations pdc_pata_ops = {
195 .cable_detect = pdc_pata_cable_detect, 194 .cable_detect = pdc_pata_cable_detect,
196 .freeze = pdc_freeze, 195 .freeze = pdc_freeze,
197 .thaw = pdc_thaw, 196 .thaw = pdc_thaw,
198 .error_handler = pdc_pata_error_handler,
199 .port_start = pdc_common_port_start, 197 .port_start = pdc_common_port_start,
200}; 198};
201 199
@@ -694,24 +692,12 @@ static void pdc_sata_thaw(struct ata_port *ap)
694 readl(host_mmio + hotplug_offset); /* flush */ 692 readl(host_mmio + hotplug_offset); /* flush */
695} 693}
696 694
697static void pdc_common_error_handler(struct ata_port *ap, ata_reset_fn_t hardreset) 695static void pdc_error_handler(struct ata_port *ap)
698{ 696{
699 if (!(ap->pflags & ATA_PFLAG_FROZEN)) 697 if (!(ap->pflags & ATA_PFLAG_FROZEN))
700 pdc_reset_port(ap); 698 pdc_reset_port(ap);
701 699
702 /* perform recovery */ 700 ata_std_error_handler(ap);
703 ata_do_eh(ap, ata_std_prereset, ata_std_softreset, hardreset,
704 ata_std_postreset);
705}
706
707static void pdc_pata_error_handler(struct ata_port *ap)
708{
709 pdc_common_error_handler(ap, NULL);
710}
711
712static void pdc_sata_error_handler(struct ata_port *ap)
713{
714 pdc_common_error_handler(ap, sata_std_hardreset);
715} 701}
716 702
717static void pdc_post_internal_cmd(struct ata_queued_cmd *qc) 703static void pdc_post_internal_cmd(struct ata_queued_cmd *qc)