diff options
Diffstat (limited to 'drivers/ata/sata_promise.c')
-rw-r--r-- | drivers/ata/sata_promise.c | 22 |
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); | |||
148 | static void pdc_sata_freeze(struct ata_port *ap); | 148 | static void pdc_sata_freeze(struct ata_port *ap); |
149 | static void pdc_thaw(struct ata_port *ap); | 149 | static void pdc_thaw(struct ata_port *ap); |
150 | static void pdc_sata_thaw(struct ata_port *ap); | 150 | static void pdc_sata_thaw(struct ata_port *ap); |
151 | static void pdc_pata_error_handler(struct ata_port *ap); | 151 | static void pdc_error_handler(struct ata_port *ap); |
152 | static void pdc_sata_error_handler(struct ata_port *ap); | ||
153 | static void pdc_post_internal_cmd(struct ata_queued_cmd *qc); | 152 | static void pdc_post_internal_cmd(struct ata_queued_cmd *qc); |
154 | static int pdc_pata_cable_detect(struct ata_port *ap); | 153 | static int pdc_pata_cable_detect(struct ata_port *ap); |
155 | static int pdc_sata_cable_detect(struct ata_port *ap); | 154 | static 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 | ||
176 | static struct ata_port_operations pdc_sata_ops = { | 176 | static 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 | ||
697 | static void pdc_common_error_handler(struct ata_port *ap, ata_reset_fn_t hardreset) | 695 | static 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 | |||
707 | static void pdc_pata_error_handler(struct ata_port *ap) | ||
708 | { | ||
709 | pdc_common_error_handler(ap, NULL); | ||
710 | } | ||
711 | |||
712 | static void pdc_sata_error_handler(struct ata_port *ap) | ||
713 | { | ||
714 | pdc_common_error_handler(ap, sata_std_hardreset); | ||
715 | } | 701 | } |
716 | 702 | ||
717 | static void pdc_post_internal_cmd(struct ata_queued_cmd *qc) | 703 | static void pdc_post_internal_cmd(struct ata_queued_cmd *qc) |