]> git.karo-electronics.de Git - karo-tx-linux.git/commit
dmaengine: at_hdmac: remove clear-on-read in atc_dostart()
authorNicolas Ferre <nicolas.ferre@atmel.com>
Mon, 16 Apr 2012 12:46:30 +0000 (14:46 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 7 May 2012 15:53:20 +0000 (08:53 -0700)
commitf2a395ea7f39652cbadb4a519c7d5cdaf2f5866e
treef602d368c2a529b461caff576b065bda418e318d
parent126b6268f61da4dc12c95022ebc57c5f2d34fcee
dmaengine: at_hdmac: remove clear-on-read in atc_dostart()

commit ed8b0d67f33518a16c6b2450fe5ebebf180c2d04 upstream.

This loop on EBCISR register was designed to clear IRQ sources before enabling
a DMA channel. This register is clear-on-read so a race condition can appear if
another channel is already active and has just finished its transfer.
Removing this read on EBCISR is fixing the issue as there is no case where an IRQ
could be pending: we already make sure that this register is drained at probe()
time and during resume.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/dma/at_hdmac.c