Re: [PATCH] dma: imx: correct sdmac->status for cyclic dma tx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 14, 2014 at 06:22:13PM -0700, jiada_wang@xxxxxxxxxx wrote:
> From: Jiada Wang <jiada_wang@xxxxxxxxxx>
> 
> 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).

Applied, thanks

-- 
~Vinod
--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux