dmaengine: pl330: Use dma_transfer_direction instead of custom pl330_reqtype

This change “dmaengine: pl330: Use dma_transfer_direction instead of custom pl330_reqtype” (commit 585a9d0) in Linux kernel is authored by Lars-Peter Clausen <lars [at] metafoo.de> on Sun Jul 6 20:32:18 2014 +0200.

Description of "dmaengine: pl330: Use dma_transfer_direction instead of custom pl330_reqtype"

The change “dmaengine: pl330: Use dma_transfer_direction instead of custom pl330_reqtype” introduces changes as follows.

dmaengine: pl330: Use dma_transfer_direction instead of custom pl330_reqtype

The pl330 driver has the custom pl330_reqtype enum which has the same possible
settings as the generic dma_transfer_direction enum. Switching over to the
generic enum internally makes it possible to directly initialize it from the
transfer request direction.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>

Linux kernel releases containing commit 585a9d0

The Linux kernel releases containing this commit are as follows.

Linux kernel code changes from "dmaengine: pl330: Use dma_transfer_direction instead of custom pl330_reqtype"

There are 25 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 drivers/dma/pl330.c | 25 ++++++++-----------------
 1 file changed, 8 insertions(+), 17 deletions(-)
 
diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c
index 73fa9b7a10ab..3aff676af853 100644
--- a/drivers/dma/pl330.c
+++ b/drivers/dma/pl330.c
@@ -63,13 +63,6 @@ enum pl330_byteswap {
 	SWAP_16,
 };
 
-enum pl330_reqtype {
-	MEMTOMEM,
-	MEMTODEV,
-	DEVTOMEM,
-	DEVTODEV,
-};
-
 /* Register and Bit field Definitions */
 #define DS			0x0
 #define DS_ST_STOP		0x0
@@ -378,7 +371,7 @@ enum pl330_op_err {
 
 /* A request defining Scatter-Gather List ending with NULL xfer. */
 struct pl330_req {
-	enum pl330_reqtype rqtype;
+	enum dma_transfer_direction rqtype;
 	/* Index of peripheral for the xfer. */
 	unsigned peri:5;
 	/* Unique token for this xfer, set by the client. */
@@ -1296,13 +1289,13 @@ static int _bursts(unsigned dry_run, u8 buf[],
 	int off = 0;
 
 	switch (pxs->r->rqtype) {
-	case MEMTODEV:
+	case DMA_MEM_TO_DEV:
 		off += _ldst_memtodev(dry_run, &buf[off], pxs, cyc);
 		break;
-	case DEVTOMEM:
+	case DMA_DEV_TO_MEM:
 		off += _ldst_devtomem(dry_run, &buf[off], pxs, cyc);
 		break;
-	case MEMTOMEM:
+	case DMA_MEM_TO_MEM:
 		off += _ldst_memtomem(dry_run, &buf[off], pxs, cyc);
 		break;
 	default:
@@ -1543,7 +1536,7 @@ static int pl330_submit_req(void *ch_id, struct pl330_req *r)
 	}
 
 	/* If request for non-existing peripheral */
-	if (r->rqtype != MEMTOMEM && r->peri >= pi->pcfg.num_peri) {
+	if (r->rqtype != DMA_MEM_TO_MEM && r->peri >= pi->pcfg.num_peri) {
 		dev_info(thrd->dmac->pinfo->dev,
 				"%s:%d Invalid peripheral(%u)!\n",
 				__func__, __LINE__, r->peri);
@@ -2698,14 +2691,12 @@ static struct dma_async_tx_descriptor *pl330_prep_dma_cyclic(
 		case DMA_MEM_TO_DEV:
 			desc->rqcfg.src_inc = 1;
 			desc->rqcfg.dst_inc = 0;
-			desc->req.rqtype = MEMTODEV;
 			src = dma_addr;
 			dst = pch->fifo_addr;
 			break;
 		case DMA_DEV_TO_MEM:
 			desc->rqcfg.src_inc = 0;
 			desc->rqcfg.dst_inc = 1;
-			desc->req.rqtype = DEVTOMEM;
 			src = pch->fifo_addr;
 			dst = dma_addr;
 			break;
@@ -2713,6 +2704,7 @@ static struct dma_async_tx_descriptor *pl330_prep_dma_cyclic(
 			break;
 		}
 
+		desc->req.rqtype = direction;
 		desc->rqcfg.brst_size = pch->burst_sz;
 		desc->rqcfg.brst_len = 1;
 		fill_px(&desc->px, dst, src, period_len);
@@ -2754,7 +2746,7 @@ pl330_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dst,
 
 	desc->rqcfg.src_inc = 1;
 	desc->rqcfg.dst_inc = 1;
-	desc->req.rqtype = MEMTOMEM;
+	desc->req.rqtype = DMA_MEM_TO_MEM;
 
 	/* Select max possible burst size */
 	burst = pi->pcfg.data_bus_width / 8;
@@ -2838,19 +2830,18 @@ pl330_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
 		if (direction == DMA_MEM_TO_DEV) {
 			desc->rqcfg.src_inc = 1;
 			desc->rqcfg.dst_inc = 0;
-			desc->req.rqtype = MEMTODEV;
 			fill_px(&desc->px,
 				addr, sg_dma_address(sg), sg_dma_len(sg));
 		} else {
 			desc->rqcfg.src_inc = 0;
 			desc->rqcfg.dst_inc = 1;
-			desc->req.rqtype = DEVTOMEM;
 			fill_px(&desc->px,
 				sg_dma_address(sg), addr, sg_dma_len(sg));
 		}
 
 		desc->rqcfg.brst_size = pch->burst_sz;
 		desc->rqcfg.brst_len = 1;
+		desc->req.rqtype = direction;
 	}
 
 	/* Return the last desc in the chain */

The commit for this change in Linux stable tree is 585a9d0 (patch).

Last modified: 2020/02/10