|
|
Re: [PATCH] dmaengine: at_hdmac: remove clear-on-read in atc_dostart() |
On 04/16/2012 02:46 PM, Nicolas Ferre : > 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@xxxxxxxxx> > Cc: stable <stable@xxxxxxxxxxxxxxx> Vinod, Could you please take this patch as a fix for 3.4-rc? Thanks, best regards, > --- > drivers/dma/at_hdmac.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c > index 7aa58d2..445fdf8 100644 > --- a/drivers/dma/at_hdmac.c > +++ b/drivers/dma/at_hdmac.c > @@ -221,10 +221,6 @@ static void atc_dostart(struct at_dma_chan *atchan, struct at_desc *first) > > vdbg_dump_regs(atchan); > > - /* clear any pending interrupt */ > - while (dma_readl(atdma, EBCISR)) > - cpu_relax(); > - > channel_writel(atchan, SADDR, 0); > channel_writel(atchan, DADDR, 0); > channel_writel(atchan, CTRLA, 0); -- Nicolas Ferre _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
[Linux ARM (vger)] [Linux ARM MSM] [Linux Omap] [Linux Arm] [Linux Tegra] [Fedora ARM] [eCos] [Linux Fastboot] [Gcc Help] [Git] [DCCP] [IETF Announce] [Security] [PDAs] [Linux] [Linux MIPS] [Yosemite Campsites] [Photos]
![]() |
![]() |