diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.15/950-0671-misc-bcm2835_smi-Use-proper-enum-types-for-dma_-un-m.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.15/950-0671-misc-bcm2835_smi-Use-proper-enum-types-for-dma_-un-m.patch | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.15/950-0671-misc-bcm2835_smi-Use-proper-enum-types-for-dma_-un-m.patch b/target/linux/bcm27xx/patches-5.15/950-0671-misc-bcm2835_smi-Use-proper-enum-types-for-dma_-un-m.patch new file mode 100644 index 0000000000..ff669aab38 --- /dev/null +++ b/target/linux/bcm27xx/patches-5.15/950-0671-misc-bcm2835_smi-Use-proper-enum-types-for-dma_-un-m.patch @@ -0,0 +1,85 @@ +From db1007fae024ae65b6f8a28988ce9d87c7d92995 Mon Sep 17 00:00:00 2001 +From: Nathan Chancellor <nathan@kernel.org> +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 <nathan@kernel.org> +--- + 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); + } |