diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2014-06-18 04:59:35 -0400 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2014-07-08 05:12:28 -0400 |
commit | 75bfa5f60a368b1ccacaf71bfc0376b8d9eb2e9f (patch) | |
tree | 9c1f272521502b7acee3d19761442ba398cd7d20 /drivers/dma/sh | |
parent | 016b10f4ea76ba2189d476b4a5f7168e57a8d7ad (diff) |
dma: rcar-audmapp: don't keep audmapp_slave_config for each channeles
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>
Diffstat (limited to 'drivers/dma/sh')
-rw-r--r-- | drivers/dma/sh/rcar-audmapp.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/dma/sh/rcar-audmapp.c b/drivers/dma/sh/rcar-audmapp.c index 858483bce719..dd0077519e3e 100644 --- a/drivers/dma/sh/rcar-audmapp.c +++ b/drivers/dma/sh/rcar-audmapp.c | |||
@@ -45,9 +45,9 @@ | |||
45 | 45 | ||
46 | struct audmapp_chan { | 46 | struct audmapp_chan { |
47 | struct shdma_chan shdma_chan; | 47 | struct shdma_chan shdma_chan; |
48 | struct audmapp_slave_config *config; | ||
49 | void __iomem *base; | 48 | void __iomem *base; |
50 | dma_addr_t slave_addr; | 49 | dma_addr_t slave_addr; |
50 | u32 chcr; | ||
51 | }; | 51 | }; |
52 | 52 | ||
53 | struct audmapp_device { | 53 | struct audmapp_device { |
@@ -103,9 +103,8 @@ static void audmapp_start_xfer(struct shdma_chan *schan, | |||
103 | struct audmapp_chan *auchan = to_chan(schan); | 103 | struct audmapp_chan *auchan = to_chan(schan); |
104 | struct audmapp_device *audev = to_dev(auchan); | 104 | struct audmapp_device *audev = to_dev(auchan); |
105 | struct audmapp_desc *desc = to_desc(sdesc); | 105 | struct audmapp_desc *desc = to_desc(sdesc); |
106 | struct audmapp_slave_config *cfg = auchan->config; | ||
107 | struct device *dev = audev->dev; | 106 | struct device *dev = audev->dev; |
108 | u32 chcr = cfg->chcr | PDMACHCR_DE; | 107 | u32 chcr = auchan->chcr | PDMACHCR_DE; |
109 | 108 | ||
110 | dev_dbg(dev, "src/dst/chcr = %pad/%pad/%08x\n", | 109 | dev_dbg(dev, "src/dst/chcr = %pad/%pad/%08x\n", |
111 | &desc->src, &desc->dst, chcr); | 110 | &desc->src, &desc->dst, chcr); |
@@ -145,7 +144,7 @@ static int audmapp_set_slave(struct shdma_chan *schan, int slave_id, | |||
145 | if (try) | 144 | if (try) |
146 | return 0; | 145 | return 0; |
147 | 146 | ||
148 | auchan->config = cfg; | 147 | auchan->chcr = cfg->chcr; |
149 | auchan->slave_addr = slave_addr ? : cfg->dst; | 148 | auchan->slave_addr = slave_addr ? : cfg->dst; |
150 | 149 | ||
151 | return 0; | 150 | return 0; |
@@ -156,11 +155,6 @@ static int audmapp_desc_setup(struct shdma_chan *schan, | |||
156 | dma_addr_t src, dma_addr_t dst, size_t *len) | 155 | dma_addr_t src, dma_addr_t dst, size_t *len) |
157 | { | 156 | { |
158 | struct audmapp_desc *desc = to_desc(sdesc); | 157 | struct audmapp_desc *desc = to_desc(sdesc); |
159 | struct audmapp_chan *auchan = to_chan(schan); | ||
160 | struct audmapp_slave_config *cfg = auchan->config; | ||
161 | |||
162 | if (!cfg) | ||
163 | return -ENODEV; | ||
164 | 158 | ||
165 | if (*len > (size_t)AUDMAPP_LEN_MAX) | 159 | if (*len > (size_t)AUDMAPP_LEN_MAX) |
166 | *len = (size_t)AUDMAPP_LEN_MAX; | 160 | *len = (size_t)AUDMAPP_LEN_MAX; |