Skip to content

Commit ee2dda0

Browse files
nxpfranklivinodkoul
authored andcommitted
dmaengine: fsl-edma: simply ATTR_DSIZE and ATTR_SSIZE by using ffs()
Removes all ATTR_DSIZE_*BIT(BYTE) and ATTR_SSIZE_*BIT(BYTE) definitions in edma. Uses ffs() instead, as it gives identical results. This simplifies the code and avoids adding more similar definitions in future V3 version. Signed-off-by: Frank Li <Frank.Li@nxp.com> Link: https://lore.kernel.org/r/20230821161617.2142561-7-Frank.Li@nxp.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
1 parent 79434f9 commit ee2dda0

File tree

2 files changed

+8
-23
lines changed

2 files changed

+8
-23
lines changed

drivers/dma/fsl-edma-common.c

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -154,18 +154,13 @@ void fsl_edma_chan_mux(struct fsl_edma_chan *fsl_chan,
154154

155155
static unsigned int fsl_edma_get_tcd_attr(enum dma_slave_buswidth addr_width)
156156
{
157-
switch (addr_width) {
158-
case 1:
159-
return EDMA_TCD_ATTR_SSIZE_8BIT | EDMA_TCD_ATTR_DSIZE_8BIT;
160-
case 2:
161-
return EDMA_TCD_ATTR_SSIZE_16BIT | EDMA_TCD_ATTR_DSIZE_16BIT;
162-
case 4:
163-
return EDMA_TCD_ATTR_SSIZE_32BIT | EDMA_TCD_ATTR_DSIZE_32BIT;
164-
case 8:
165-
return EDMA_TCD_ATTR_SSIZE_64BIT | EDMA_TCD_ATTR_DSIZE_64BIT;
166-
default:
167-
return EDMA_TCD_ATTR_SSIZE_32BIT | EDMA_TCD_ATTR_DSIZE_32BIT;
168-
}
157+
u32 val;
158+
159+
if (addr_width == DMA_SLAVE_BUSWIDTH_UNDEFINED)
160+
addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
161+
162+
val = ffs(addr_width) - 1;
163+
return val | (val << 8);
169164
}
170165

171166
void fsl_edma_free_desc(struct virt_dma_desc *vdesc)
@@ -623,7 +618,7 @@ struct dma_async_tx_descriptor *fsl_edma_prep_memcpy(struct dma_chan *chan,
623618

624619
/* To match with copy_align and max_seg_size so 1 tcd is enough */
625620
fsl_edma_fill_tcd(fsl_desc->tcd[0].vtcd, dma_src, dma_dst,
626-
EDMA_TCD_ATTR_SSIZE_32BYTE | EDMA_TCD_ATTR_DSIZE_32BYTE,
621+
fsl_edma_get_tcd_attr(DMA_SLAVE_BUSWIDTH_32_BYTES),
627622
32, len, 0, 1, 1, 32, 0, true, true, false);
628623

629624
return vchan_tx_prep(&fsl_chan->vchan, &fsl_desc->vdesc, flags);

drivers/dma/fsl-edma-common.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,6 @@
2929
#define EDMA_TCD_ATTR_DMOD(x) (((x) & GENMASK(4, 0)) << 3)
3030
#define EDMA_TCD_ATTR_SSIZE(x) (((x) & GENMASK(2, 0)) << 8)
3131
#define EDMA_TCD_ATTR_SMOD(x) (((x) & GENMASK(4, 0)) << 11)
32-
#define EDMA_TCD_ATTR_DSIZE_8BIT 0
33-
#define EDMA_TCD_ATTR_DSIZE_16BIT BIT(0)
34-
#define EDMA_TCD_ATTR_DSIZE_32BIT BIT(1)
35-
#define EDMA_TCD_ATTR_DSIZE_64BIT (BIT(0) | BIT(1))
36-
#define EDMA_TCD_ATTR_DSIZE_32BYTE (BIT(2) | BIT(0))
37-
#define EDMA_TCD_ATTR_SSIZE_8BIT 0
38-
#define EDMA_TCD_ATTR_SSIZE_16BIT (EDMA_TCD_ATTR_DSIZE_16BIT << 8)
39-
#define EDMA_TCD_ATTR_SSIZE_32BIT (EDMA_TCD_ATTR_DSIZE_32BIT << 8)
40-
#define EDMA_TCD_ATTR_SSIZE_64BIT (EDMA_TCD_ATTR_DSIZE_64BIT << 8)
41-
#define EDMA_TCD_ATTR_SSIZE_32BYTE (EDMA_TCD_ATTR_DSIZE_32BYTE << 8)
4232

4333
#define EDMA_TCD_CITER_CITER(x) ((x) & GENMASK(14, 0))
4434
#define EDMA_TCD_BITER_BITER(x) ((x) & GENMASK(14, 0))

0 commit comments

Comments
 (0)