On Sat, Jun 07, 2014 at 02:58:54AM +0530, Suman Tripathi wrote: > @@ -5072,6 +5072,16 @@ int ata_qc_complete_multiple(struct ata_port *ap, u32 qc_active) > if (qc) { > ata_qc_complete(qc); > nr_done++; > + /* > + * Some controller unable to clear the BSY bit after > + * receiving the PIO Setup FIS from device resulting > + * the DMA state to go into CMFatalErrorUpdate state. > + * So need to restart the dma engine to get the > + * controller out of this state. > + */ > + if ((ap->flags & ATA_HORKAGE_BROKEN_PIO_CMD) && > + (qc->tf.protocol == ATA_PROT_PIO)) > + ap->ops->restart_engine(ap); Why aren't you doing this by wrapping irq handler? Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html