dma: rcar-audmapp: don't keep audmapp_slave_config for each channeles
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Wed, 18 Jun 2014 08:59:35 +0000 (01:59 -0700)
committerSimon Horman <horms+renesas@verge.net.au>
Tue, 8 Jul 2014 09:12:28 +0000 (11:12 +0200)
Current audmapp driver is keeping audmapp_slave_config
for each channeles, but, nessasary information is only "chcr".
Current style (= keeping audmapp_slave_config) is
not good match for DT support.
Keep "chcr" instead of audmapp_slave_config

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
drivers/dma/sh/rcar-audmapp.c

index 858483b..dd00775 100644 (file)
@@ -45,9 +45,9 @@
 
 struct audmapp_chan {
        struct shdma_chan shdma_chan;
-       struct audmapp_slave_config *config;
        void __iomem *base;
        dma_addr_t slave_addr;
+       u32 chcr;
 };
 
 struct audmapp_device {
@@ -103,9 +103,8 @@ static void audmapp_start_xfer(struct shdma_chan *schan,
        struct audmapp_chan *auchan = to_chan(schan);
        struct audmapp_device *audev = to_dev(auchan);
        struct audmapp_desc *desc = to_desc(sdesc);
-       struct audmapp_slave_config *cfg = auchan->config;
        struct device *dev = audev->dev;
-       u32 chcr = cfg->chcr | PDMACHCR_DE;
+       u32 chcr = auchan->chcr | PDMACHCR_DE;
 
        dev_dbg(dev, "src/dst/chcr = %pad/%pad/%08x\n",
                &desc->src, &desc->dst, chcr);
@@ -145,7 +144,7 @@ static int audmapp_set_slave(struct shdma_chan *schan, int slave_id,
        if (try)
                return 0;
 
-       auchan->config  = cfg;
+       auchan->chcr    = cfg->chcr;
        auchan->slave_addr = slave_addr ? : cfg->dst;
 
        return 0;
@@ -156,11 +155,6 @@ static int audmapp_desc_setup(struct shdma_chan *schan,
                              dma_addr_t src, dma_addr_t dst, size_t *len)
 {
        struct audmapp_desc *desc = to_desc(sdesc);
-       struct audmapp_chan *auchan = to_chan(schan);
-       struct audmapp_slave_config *cfg = auchan->config;
-
-       if (!cfg)
-               return -ENODEV;
 
        if (*len > (size_t)AUDMAPP_LEN_MAX)
                *len = (size_t)AUDMAPP_LEN_MAX;