|
@@ -636,7 +636,10 @@ static void handle_cont_sngl_cycle_dma_done(struct tegra_dma_channel *tdc,
|
|
|
|
|
|
|
|
sgreq = list_first_entry(&tdc->pending_sg_req, typeof(*sgreq), node);
|
|
sgreq = list_first_entry(&tdc->pending_sg_req, typeof(*sgreq), node);
|
|
|
dma_desc = sgreq->dma_desc;
|
|
dma_desc = sgreq->dma_desc;
|
|
|
- dma_desc->bytes_transferred += sgreq->req_len;
|
|
|
|
|
|
|
+ /* if we dma for long enough the transfer count will wrap */
|
|
|
|
|
+ dma_desc->bytes_transferred =
|
|
|
|
|
+ (dma_desc->bytes_transferred + sgreq->req_len) %
|
|
|
|
|
+ dma_desc->bytes_requested;
|
|
|
|
|
|
|
|
/* Callback need to be call */
|
|
/* Callback need to be call */
|
|
|
if (!dma_desc->cb_count)
|
|
if (!dma_desc->cb_count)
|