dmaengine: mmp_pdma: remove dma_slave_config direction usage
Vinod Koul
maintainerPATCH 1/5 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 Vinod Koul <[email protected]>
--- drivers/dma/mmp_pdma.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-)
drivers/dma/mmp_pdma.c +23 -5
@@ -96,6 +96,7 @@ struct mmp_pdma_chan {struct dma_async_tx_descriptor desc;struct mmp_pdma_phy *phy;enum dma_transfer_direction dir; +struct dma_slave_config slave_config;struct mmp_pdma_desc_sw *cyclic_first;/* first desc_sw if channel * is in cyclic mode */
@@ -140,6 +141,10 @@ struct mmp_pdma_device {#define to_mmp_pdma_dev (dmadev) \ 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) {u32 reg = (phy->idx <<4 ) +DDADR ;
@@ -537,6 +542,8 @@ mmp_pdma_prep_slave_sg(struct dma_chan *dchan, struct scatterlist *sgl, chan->byte_align = false; +mmp_pdma_config_write (dchan, &chan->slave_config, dir); +for_each_sg (sgl, sg, sg_len, i) { addr =sg_dma_address (sg); avail =sg_dma_len (sgl);
@@ -619,6 +626,7 @@ mmp_pdma_prep_dma_cyclic(struct dma_chan *dchan,return NULL ; chan =to_mmp_pdma_chan (dchan); +mmp_pdma_config_write (dchan, &chan->slave_config, direction);switch (direction) {case DMA_MEM_TO_DEV :
@@ -684,8 +692,9 @@ mmp_pdma_prep_dma_cyclic(struct dma_chan *dchan,return NULL ; } -static int mmp_pdma_config (struct dma_chan *dchan, -struct dma_slave_config *cfg) +static int mmp_pdma_config_write (struct dma_chan *dchan, +struct dma_slave_config *cfg, +enum dma_transfer_direction direction) {struct mmp_pdma_chan *chan =to_mmp_pdma_chan (dchan);u32 maxburst =0 , addr =0 ;
@@ -694,12 +703,12 @@ static int mmp_pdma_config(struct dma_chan *dchan,if (!dchan)return -EINVAL ; -if (cfg->direction ==DMA_DEV_TO_MEM ) { +if (direction ==DMA_DEV_TO_MEM ) { chan->dcmd =DCMD_INCTRGADDR |DCMD_FLOWSRC ; maxburst = cfg->src_maxburst; width = cfg->src_addr_width; 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 ; maxburst = cfg->dst_maxburst; width = cfg->dst_addr_width;
@@ -720,7 +729,7 @@ static int mmp_pdma_config(struct dma_chan *dchan,else if (maxburst ==32 ) chan->dcmd |=DCMD_BURST32 ; - chan->dir = cfg->direction; + chan->dir = direction; chan->dev_addr = addr;/* FIXME: drivers should be ported over to use the filter * function. Once that's done, the following two lines can
@@ -732,6 +741,15 @@ static int mmp_pdma_config(struct dma_chan *dchan,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) {struct mmp_pdma_chan *chan =to_mmp_pdma_chan (dchan);