[PATCH 1/5] dmaengine: dw_dmac: move to generic DMA binding

Andy Shevchenko
2013-01-29T10:54:46Z

On Tue, 2013-01-29 at 16:19 +0530, Viresh Kumar wrote:
> On 29 January 2013 16:05, Arnd Bergmann <arnd@arndb.de> wrote:
> > On Tuesday 29 January 2013, Viresh Kumar wrote:

> >> > + /* FIXME: This binding is rather clumsy. Can't we use the
> >> > + request line numbers here instead? */
> >>
> >> yes.
> >
> > Ok, Very good. What is the encoding of the registers then?
>
> You can still keep fargs as is and just fill them as:
>
> fargs.cfg_lo = 0;
>
> if (DMA_TO_DEV)
> // dest is periph
> fargs.cfg_hi = be32_to_cpup(dma_spec->args+0) << 11;
> else if (DEV_TO_DMA)
> // src is periph
> fargs.cfg_hi = be32_to_cpup(dma_spec->args+0) << 7;

We have macros for such shifts.

drivers/dma/dw_dmac.c:187: cfghi = DWC_CFGH_DST_PER(...
drivers/dma/dw_dmac.c:189: cfghi = DWC_CFGH_SRC_PER(...

--
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy