[PATCH v0 2/2] ata: Fix the dma state machine lockup for the PIO mode commands.
Tejun Heo
tj at kernel.org
Fri Jun 6 15:30:57 PDT 2014
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
More information about the linux-arm-kernel
mailing list