diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c index ba9a257..a06af2c 100644 --- a/drivers/ata/sata_promise.c +++ b/drivers/ata/sata_promise.c @@ -709,8 +709,13 @@ static int pdc_pata_softreset(struct ata_link *link, unsigned int *class, static int pdc_sata_hardreset(struct ata_link *link, unsigned int *class, unsigned long deadline) { + const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context); + bool online; + int rc; + pdc_reset_port(link->ap); - return sata_sff_hardreset(link, class, deadline); + rc = sata_link_hardreset(link, timing, deadline, &online, NULL); + return online ? -EAGAIN : rc; } static void pdc_error_handler(struct ata_port *ap)