aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/sata_sil24.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/sata_sil24.c')
-rw-r--r--drivers/ata/sata_sil24.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c
index 363fb90e1047..67df1d753305 100644
--- a/drivers/ata/sata_sil24.c
+++ b/drivers/ata/sata_sil24.c
@@ -352,6 +352,14 @@ static void sil24_pmp_attach(struct ata_port *ap);
352static void sil24_pmp_detach(struct ata_port *ap); 352static void sil24_pmp_detach(struct ata_port *ap);
353static void sil24_freeze(struct ata_port *ap); 353static void sil24_freeze(struct ata_port *ap);
354static void sil24_thaw(struct ata_port *ap); 354static void sil24_thaw(struct ata_port *ap);
355static int sil24_softreset(struct ata_link *link, unsigned int *class,
356 unsigned long deadline);
357static int sil24_hardreset(struct ata_link *link, unsigned int *class,
358 unsigned long deadline);
359static int sil24_pmp_softreset(struct ata_link *link, unsigned int *class,
360 unsigned long deadline);
361static int sil24_pmp_hardreset(struct ata_link *link, unsigned int *class,
362 unsigned long deadline);
355static void sil24_error_handler(struct ata_port *ap); 363static void sil24_error_handler(struct ata_port *ap);
356static void sil24_post_internal_cmd(struct ata_queued_cmd *qc); 364static void sil24_post_internal_cmd(struct ata_queued_cmd *qc);
357static int sil24_port_start(struct ata_port *ap); 365static int sil24_port_start(struct ata_port *ap);
@@ -402,6 +410,10 @@ static struct ata_port_operations sil24_ops = {
402 410
403 .freeze = sil24_freeze, 411 .freeze = sil24_freeze,
404 .thaw = sil24_thaw, 412 .thaw = sil24_thaw,
413 .softreset = sil24_softreset,
414 .hardreset = sil24_hardreset,
415 .pmp_softreset = sil24_pmp_softreset,
416 .pmp_hardreset = sil24_pmp_hardreset,
405 .error_handler = sil24_error_handler, 417 .error_handler = sil24_error_handler,
406 .post_internal_cmd = sil24_post_internal_cmd, 418 .post_internal_cmd = sil24_post_internal_cmd,
407 .dev_config = sil24_dev_config, 419 .dev_config = sil24_dev_config,
@@ -1181,11 +1193,7 @@ static void sil24_error_handler(struct ata_port *ap)
1181 if (sil24_init_port(ap)) 1193 if (sil24_init_port(ap))
1182 ata_eh_freeze_port(ap); 1194 ata_eh_freeze_port(ap);
1183 1195
1184 /* perform recovery */ 1196 sata_pmp_error_handler(ap);
1185 sata_pmp_do_eh(ap, ata_std_prereset, sil24_softreset, sil24_hardreset,
1186 ata_std_postreset, sata_pmp_std_prereset,
1187 sil24_pmp_softreset, sil24_pmp_hardreset,
1188 sata_pmp_std_postreset);
1189 1197
1190 pp->do_port_rst = 0; 1198 pp->do_port_rst = 0;
1191} 1199}