Tejun Heo wrote:
I didn't add DMA engine stopping to ata_bmdma_freeze() in this series.
When BMDMA engine is turned off, all status bits go too. However, the
status is used by BMDMA EH to report and to recognize host bus error
reprsented as timeout.
To make all of them work, the BMDMA status needs to be stored in
ata_bmdma_freeze() and used in EH, which is currently a bit difficult
to implement for generic BMDMA. I think we can resolve this later.
Agree re storing BMDMA status. The very next operation needs to be
DMA-stop, though. Otherwise shadow register block isn't accessible.
And you must still check BMDMA status -after- stopping DMA, too (that
doesn't invalidate your logic quoted above, of course).
The series can be browsed at the following URL.
http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=for-jeff
If you're satisfied with the updates, please pull from.
git://htj.dyndns.org/libata-tj for-jeff
Pulled into #upstream and other branches, and pushed to kernel.org.
Please check and make sure everything looks OK, after kernel.org
finishes mirroring to the outside world.
Thanks.
BTW, it would be nice if you would start with branch #sii-irq when you
are updating the sata_sil interrupt handling path. And eventually we
want to push #sii-lbt too.
Jeff
-
: 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