|
@@ -772,8 +772,9 @@ static void rcar_dmac_sync_tcr(struct rcar_dmac_chan *chan)
|
|
|
/* make sure all remaining data was flushed */
|
|
|
rcar_dmac_chcr_de_barrier(chan);
|
|
|
|
|
|
- /* back DE */
|
|
|
- rcar_dmac_chan_write(chan, RCAR_DMACHCR, chcr);
|
|
|
+ /* back DE if remain data exists */
|
|
|
+ if (rcar_dmac_chan_read(chan, RCAR_DMATCR))
|
|
|
+ rcar_dmac_chan_write(chan, RCAR_DMACHCR, chcr);
|
|
|
}
|
|
|
|
|
|
static void rcar_dmac_chan_halt(struct rcar_dmac_chan *chan)
|