[PATCH 3/3] ARM: S3C64XX: Stop and flush requests on freeing

Jassi Brar jassisinghbrar at gmail.com
Sun Aug 15 09:36:39 EDT 2010


On Sun, Aug 15, 2010 at 10:28 PM, Jassi Brar <jassisinghbrar at gmail.com> wrote:
> On Mon, May 31, 2010 at 8:34 PM, Maurus Cuelenaere
> <mcuelenaere at gmail.com> wrote:
>> When a DMA channel is freed, its pending requests should be flushed and the
>> channel should be halted. This patch ensures that happens.
>>
>> Signed-off-by: Maurus Cuelenaere <mcuelenaere at gmail.com>
>> ---
>>  arch/arm/mach-s3c64xx/dma.c |    3 ++-
>>  1 files changed, 2 insertions(+), 1 deletions(-)
>>
>> diff --git a/arch/arm/mach-s3c64xx/dma.c b/arch/arm/mach-s3c64xx/dma.c
>> index 1fd9d0c..e1f22af 100644
>> --- a/arch/arm/mach-s3c64xx/dma.c
>> +++ b/arch/arm/mach-s3c64xx/dma.c
>> @@ -560,7 +560,8 @@ int s3c2410_dma_free(unsigned int channel, struct s3c2410_dma_client *client)
>>                       channel, chan->client, client);
>>        }
>>
>> -       /* sort out stopping and freeing the channel */
>> +       s3c64xx_dma_flush(chan);
>> +       s3c64xx_dma_stop(chan);
>
> I think, the order should be reverted.

Though it's a matter of S3C DMA API spec.
Shouldn't the client be made to explicitly do S3C2410_DMAOP_FLUSH
a pending req before freeing the channel? If so, the patch may not be needed.



More information about the linux-arm-kernel mailing list