From db1007fae024ae65b6f8a28988ce9d87c7d92995 Mon Sep 17 00:00:00 2001 From: Nathan Chancellor Date: Mon, 31 Jan 2022 17:12:10 -0700 Subject: [PATCH] misc: bcm2835_smi: Use proper enum types for dma_{,un}map_single() Clang warns: drivers/misc/bcm2835_smi.c:692:4: warning: implicit conversion from enumeration type 'enum dma_transfer_direction' to different enumeration type 'enum dma_data_direction' [-Wenum-conversion] DMA_MEM_TO_DEV); ^~~~~~~~~~~~~~~ ./include/linux/dma-mapping.h:406:66: note: expanded from macro 'dma_map_single' #define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, 0) ~~~~~~~~~~~~~~~~~~~~ ^ drivers/misc/bcm2835_smi.c:705:35: warning: implicit conversion from enumeration type 'enum dma_transfer_direction' to different enumeration type 'enum dma_data_direction' [-Wenum-conversion] (inst->dev, phy_addr, n_bytes, DMA_MEM_TO_DEV); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ ./include/linux/dma-mapping.h:407:70: note: expanded from macro 'dma_unmap_single' #define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, 0) ~~~~~~~~~~~~~~~~~~~~~~ ^ drivers/misc/bcm2835_smi.c:751:12: warning: implicit conversion from enumeration type 'enum dma_transfer_direction' to different enumeration type 'enum dma_data_direction' [-Wenum-conversion] DMA_DEV_TO_MEM); ^~~~~~~~~~~~~~~ ./include/linux/dma-mapping.h:406:66: note: expanded from macro 'dma_map_single' #define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, 0) ~~~~~~~~~~~~~~~~~~~~ ^ drivers/misc/bcm2835_smi.c:761:50: warning: implicit conversion from enumeration type 'enum dma_transfer_direction' to different enumeration type 'enum dma_data_direction' [-Wenum-conversion] dma_unmap_single(inst->dev, phy_addr, n_bytes, DMA_DEV_TO_MEM); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ ./include/linux/dma-mapping.h:407:70: note: expanded from macro 'dma_unmap_single' #define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, 0) ~~~~~~~~~~~~~~~~~~~~~~ ^ 4 warnings generated. Use the proper enumerated type to clear up the warning. There is not actually a bug here because the enumerated types have the same integer value: DMA_MEM_TO_DEV = DMA_TO_DEVICE = 1 DMA_DEV_TO_MEM = DMA_FROM_DEVICE = 2 Fixes: 93254d0f7bc8 ("Add SMI driver") Signed-off-by: Nathan Chancellor --- drivers/misc/bcm2835_smi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) --- a/drivers/misc/bcm2835_smi.c +++ b/drivers/misc/bcm2835_smi.c @@ -689,7 +689,7 @@ void bcm2835_smi_write_buf( inst->dev, (void *)buf, n_bytes, - DMA_MEM_TO_DEV); + DMA_TO_DEVICE); struct scatterlist *sgl = smi_scatterlist_from_buffer(inst, phy_addr, n_bytes, &inst->buffer_sgl); @@ -702,7 +702,7 @@ void bcm2835_smi_write_buf( smi_dma_write_sgl(inst, sgl, 1, n_bytes); dma_unmap_single - (inst->dev, phy_addr, n_bytes, DMA_MEM_TO_DEV); + (inst->dev, phy_addr, n_bytes, DMA_TO_DEVICE); } else if (n_bytes) { smi_write_fifo(inst, (uint32_t *) buf, n_bytes); } @@ -748,7 +748,7 @@ void bcm2835_smi_read_buf(struct bcm2835 if (n_bytes > DMA_THRESHOLD_BYTES) { dma_addr_t phy_addr = dma_map_single(inst->dev, buf, n_bytes, - DMA_DEV_TO_MEM); + DMA_FROM_DEVICE); struct scatterlist *sgl = smi_scatterlist_from_buffer( inst, phy_addr, n_bytes, &inst->buffer_sgl); @@ -758,7 +758,7 @@ void bcm2835_smi_read_buf(struct bcm2835 goto out; } smi_dma_read_sgl(inst, sgl, 1, n_bytes); - dma_unmap_single(inst->dev, phy_addr, n_bytes, DMA_DEV_TO_MEM); + dma_unmap_single(inst->dev, phy_addr, n_bytes, DMA_FROM_DEVICE); } else if (n_bytes) { smi_read_fifo(inst, (uint32_t *)buf, n_bytes); }