]> git.karo-electronics.de Git - karo-tx-linux.git/commit
DMA: AT91: Get residual bytes in dma buffer
authorElen Song <elen.song@atmel.com>
Fri, 10 May 2013 03:01:46 +0000 (11:01 +0800)
committerVinod Koul <vinod.koul@intel.com>
Tue, 14 May 2013 05:30:34 +0000 (11:00 +0530)
commit9562f83831035d34f27e6c825e3cacc3082a2627
tree01fbe05823786567f995f7a55b40fa26886a0e9f
parent6ca16f899e50f3a5ab4e6438b72a04a1a1b8f4a9
DMA: AT91: Get residual bytes in dma buffer

Add support for returning the residue for current transfer cookie by
reading the transfered buffer size(BTSIZE) in CTRLA register.

For a single buffer cookie, the descriptor length minus BTSIZE
can get the residue.

For a lli cookie, remain_desc will record remain descriptor length
when last descriptor finish, the remain_desc minus BTSIZE can get the
current residue.

If the cookie has completed successfully, the residue will be zero.
If the cookie is in progress, it will be the number of bytes yet to be transferred.
If get residue error, the cookie will be turn into error status.

Check dma fifo to see if data remain, let issue pending finish remain work if there is.
Signed-off-by: Elen Song <elen.song@atmel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/at_hdmac.c
drivers/dma/at_hdmac_regs.h