dmaengine: ste_dma40: Don't configure runtime configurable setup during allocate
authorLee Jones <lee.jones@linaro.org>
Wed, 15 May 2013 09:51:26 +0000 (10:51 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 23 May 2013 19:13:22 +0000 (21:13 +0200)
Using the dmaengine API for slave transfers, allocating and configuring
a channel are two separate actions. Here we're removing logical channel
configuration from the channel allocation routine for slave transfers,
as the same config is already done in the runtime config function, and
put the corresponding call into d40_config_memcpy() for the memcpy
code path.

Cc: Dan Williams <djbw@fb.com>
Cc: Per Forlin <per.forlin@stericsson.com>
Cc: Rabin Vincent <rabin@rab.in>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
[Edited the commit message]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/dma/ste_dma40.c

index b7fe46bd6a8e735e64d027dc0a0d6b31f62e0c21..ba84df8fc9d8b0365255bae01a2faf71a1fb2e56 100644 (file)
@@ -2040,6 +2040,9 @@ static int d40_config_memcpy(struct d40_chan *d40c)
                d40c->dma_cfg = dma40_memcpy_conf_log;
                d40c->dma_cfg.dev_type = dma40_memcpy_channels[d40c->chan.chan_id];
 
+               d40_log_cfg(&d40c->dma_cfg,
+                           &d40c->log_def.lcsp1, &d40c->log_def.lcsp3);
+
        } else if (dma_has_cap(DMA_MEMCPY, cap) &&
                   dma_has_cap(DMA_SLAVE, cap)) {
                d40c->dma_cfg = dma40_memcpy_conf_phy;
@@ -2508,9 +2511,6 @@ static int d40_alloc_chan_resources(struct dma_chan *chan)
        d40_set_prio_realtime(d40c);
 
        if (chan_is_logical(d40c)) {
-               d40_log_cfg(&d40c->dma_cfg,
-                           &d40c->log_def.lcsp1, &d40c->log_def.lcsp3);
-
                if (d40c->dma_cfg.dir == STEDMA40_PERIPH_TO_MEM)
                        d40c->lcpa = d40c->base->lcpa_base +
                                d40c->dma_cfg.dev_type * D40_LCPA_CHAN_SIZE;