Hello, Mark Lord wrote:
static int mv_prereset(struct ata_link *link, unsigned long deadline) { - mv_stop_edma(link->ap); + if (mv_stop_edma(link->ap)) + link->eh_context.i.action |= ATA_EH_HARDRESET; + return ata_std_prereset(link, deadline); +}
libata#upstream now defaults to hardreset. softreset is used only as followup-SRST in case hardreset can't classify or PMP is supported, so there's no reason to add reset promotion logic anymore.
+ /* FIXME: + * Except for the outer do-while construct below, this function + * is an exact clone of sata_std_hardreset() from libata-core.c. + * + * Once this driver is stable, we should re-org libata so we can share + * more of that code, rather than duplicating so much of it here + * and in other drivers. + */
After modularize patchsets, sata_link_hardreset() does all the chores needed around hardreset and sata_mv should be able to just build a loop around it.
Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html