[RFC 2/4] dma: add dmaengine driver for Samsung s3c24xx SoCs
Linus Walleij
linus.walleij at linaro.org
Fri May 17 08:20:49 EDT 2013
On Wed, May 15, 2013 at 10:31 PM, Heiko Stübner <heiko at sntech.de> wrote:
> If I understand the writel semantics and the thread from you from 2011 [0]
> correctly, only the writel to DMASKTRIG mustn't be relaxed to make sure the
> settings registers are written to before, so like:
>
> writel_relaxed(txd->src_addr, phy->base + DISRC);
> writel_relaxed(txd->disrcc, phy->base + DISRCC);
> writel_relaxed(txd->dst_addr, phy->base + DIDST);
> writel_relaxed(txd->didstc, phy->base + DIDSTC);
> writel_relaxed(dcon, phy->base + DCON);
>
> val = readl_relaxed(phy->base + DMASKTRIG);
> val &= ~DMASKTRIG_STOP;
> val |= DMASKTRIG_ON;
> writel(val, phy->base + DMASKTRIG);
Yep. That will drain write buffers etc and make sure all outstanding writes hit
the hardware.
Yours,
Linus Walleij
More information about the linux-arm-kernel
mailing list