Commit 56b94b02 authored by Vinod Koul's avatar Vinod Koul

dmaengine: mmp_pdma: remove dma_slave_config direction usage

dma_slave_config direction was marked as deprecated quite some
time back, remove the usage from this driver so that the field
can be removed
Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 65102238
...@@ -96,6 +96,7 @@ struct mmp_pdma_chan { ...@@ -96,6 +96,7 @@ struct mmp_pdma_chan {
struct dma_async_tx_descriptor desc; struct dma_async_tx_descriptor desc;
struct mmp_pdma_phy *phy; struct mmp_pdma_phy *phy;
enum dma_transfer_direction dir; enum dma_transfer_direction dir;
struct dma_slave_config slave_config;
struct mmp_pdma_desc_sw *cyclic_first; /* first desc_sw if channel struct mmp_pdma_desc_sw *cyclic_first; /* first desc_sw if channel
* is in cyclic mode */ * is in cyclic mode */
...@@ -140,6 +141,10 @@ struct mmp_pdma_device { ...@@ -140,6 +141,10 @@ struct mmp_pdma_device {
#define to_mmp_pdma_dev(dmadev) \ #define to_mmp_pdma_dev(dmadev) \
container_of(dmadev, struct mmp_pdma_device, device) container_of(dmadev, struct mmp_pdma_device, device)
static int mmp_pdma_config_write(struct dma_chan *dchan,
struct dma_slave_config *cfg,
enum dma_transfer_direction direction);
static void set_desc(struct mmp_pdma_phy *phy, dma_addr_t addr) static void set_desc(struct mmp_pdma_phy *phy, dma_addr_t addr)
{ {
u32 reg = (phy->idx << 4) + DDADR; u32 reg = (phy->idx << 4) + DDADR;
...@@ -537,6 +542,8 @@ mmp_pdma_prep_slave_sg(struct dma_chan *dchan, struct scatterlist *sgl, ...@@ -537,6 +542,8 @@ mmp_pdma_prep_slave_sg(struct dma_chan *dchan, struct scatterlist *sgl,
chan->byte_align = false; chan->byte_align = false;
mmp_pdma_config_write(dchan, &chan->slave_config, dir);
for_each_sg(sgl, sg, sg_len, i) { for_each_sg(sgl, sg, sg_len, i) {
addr = sg_dma_address(sg); addr = sg_dma_address(sg);
avail = sg_dma_len(sgl); avail = sg_dma_len(sgl);
...@@ -619,6 +626,7 @@ mmp_pdma_prep_dma_cyclic(struct dma_chan *dchan, ...@@ -619,6 +626,7 @@ mmp_pdma_prep_dma_cyclic(struct dma_chan *dchan,
return NULL; return NULL;
chan = to_mmp_pdma_chan(dchan); chan = to_mmp_pdma_chan(dchan);
mmp_pdma_config_write(dchan, &chan->slave_config, direction);
switch (direction) { switch (direction) {
case DMA_MEM_TO_DEV: case DMA_MEM_TO_DEV:
...@@ -684,8 +692,9 @@ mmp_pdma_prep_dma_cyclic(struct dma_chan *dchan, ...@@ -684,8 +692,9 @@ mmp_pdma_prep_dma_cyclic(struct dma_chan *dchan,
return NULL; return NULL;
} }
static int mmp_pdma_config(struct dma_chan *dchan, static int mmp_pdma_config_write(struct dma_chan *dchan,
struct dma_slave_config *cfg) struct dma_slave_config *cfg,
enum dma_transfer_direction direction)
{ {
struct mmp_pdma_chan *chan = to_mmp_pdma_chan(dchan); struct mmp_pdma_chan *chan = to_mmp_pdma_chan(dchan);
u32 maxburst = 0, addr = 0; u32 maxburst = 0, addr = 0;
...@@ -694,12 +703,12 @@ static int mmp_pdma_config(struct dma_chan *dchan, ...@@ -694,12 +703,12 @@ static int mmp_pdma_config(struct dma_chan *dchan,
if (!dchan) if (!dchan)
return -EINVAL; return -EINVAL;
if (cfg->direction == DMA_DEV_TO_MEM) { if (direction == DMA_DEV_TO_MEM) {
chan->dcmd = DCMD_INCTRGADDR | DCMD_FLOWSRC; chan->dcmd = DCMD_INCTRGADDR | DCMD_FLOWSRC;
maxburst = cfg->src_maxburst; maxburst = cfg->src_maxburst;
width = cfg->src_addr_width; width = cfg->src_addr_width;
addr = cfg->src_addr; addr = cfg->src_addr;
} else if (cfg->direction == DMA_MEM_TO_DEV) { } else if (direction == DMA_MEM_TO_DEV) {
chan->dcmd = DCMD_INCSRCADDR | DCMD_FLOWTRG; chan->dcmd = DCMD_INCSRCADDR | DCMD_FLOWTRG;
maxburst = cfg->dst_maxburst; maxburst = cfg->dst_maxburst;
width = cfg->dst_addr_width; width = cfg->dst_addr_width;
...@@ -720,7 +729,7 @@ static int mmp_pdma_config(struct dma_chan *dchan, ...@@ -720,7 +729,7 @@ static int mmp_pdma_config(struct dma_chan *dchan,
else if (maxburst == 32) else if (maxburst == 32)
chan->dcmd |= DCMD_BURST32; chan->dcmd |= DCMD_BURST32;
chan->dir = cfg->direction; chan->dir = direction;
chan->dev_addr = addr; chan->dev_addr = addr;
/* FIXME: drivers should be ported over to use the filter /* FIXME: drivers should be ported over to use the filter
* function. Once that's done, the following two lines can * function. Once that's done, the following two lines can
...@@ -732,6 +741,15 @@ static int mmp_pdma_config(struct dma_chan *dchan, ...@@ -732,6 +741,15 @@ static int mmp_pdma_config(struct dma_chan *dchan,
return 0; return 0;
} }
static int mmp_pdma_config(struct dma_chan *dchan,
struct dma_slave_config *cfg)
{
struct mmp_pdma_chan *chan = to_mmp_pdma_chan(dchan);
memcpy(&chan->slave_config, cfg, sizeof(*cfg));
return 0;
}
static int mmp_pdma_terminate_all(struct dma_chan *dchan) static int mmp_pdma_terminate_all(struct dma_chan *dchan)
{ {
struct mmp_pdma_chan *chan = to_mmp_pdma_chan(dchan); struct mmp_pdma_chan *chan = to_mmp_pdma_chan(dchan);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment