[PATCH] dma: imx: correct sdmac->status for cyclic dma tx
Fabio Estevam
festevam at gmail.com
Wed May 14 14:42:24 PDT 2014
Jiada,
On Fri, Dec 13, 2013 at 3:52 AM, <jiada_wang at mentor.com> wrote:
> From: Jiada Wang <jiada_wang at mentor.com>
>
> In cyclic dma tx's handler sdma_handle_channel_loop(),
> SDMA channel statue is set to either DMA_ERROR or DMA_IN_PROGRESS
> based on each period's status. This has the following issues:
>
> 1) If one period's status is BD_RROR, then channel status
> will be set to DMA_ERROR, but it will be overwritten to DMA_IN_PROGRESS
> if the following periods are OK.
> 2) DMA client may call sdma_control(DMA_TERMINATE_ALL) to stop the cyclic dma
> operation, sdma channel status will be set to DMA_ERROR,
> but if after this handler is called, then again the channel status will be overwritten
> to DMA_IN_PROGRESS. Then the following dmaengine_prep_dma_cyclic() will always fail,
> as channel status is DMA_IN_PROGRESS.
>
> As in cyclic dma tx, channel status will be initially set to DMA_IN_PROGRESS,
> driver only needs to change it to DMA_ERROR, when something wrong happens
> (one period status is wrong, or stoped by client explicitly).
>
> Signed-off-by: Jiada Wang <jiada_wang at mentor.com>
It seems this one got lost as you did not put the dma maintainer on Cc.
Please run ./scripts/get_maintainer.pl and re-submit it.
More information about the linux-arm-kernel
mailing list