misc: bcm2835_smi: Use proper enum types for dma_{,un}map_single()
authorNathan Chancellor <nathan@kernel.org>
Tue, 1 Feb 2022 00:12:10 +0000 (17:12 -0700)
committerDom Cobley <popcornmix@gmail.com>
Mon, 21 Mar 2022 16:04:39 +0000 (16:04 +0000)
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

index f1a7f6a..831b703 100644 (file)
@@ -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_smi_instance *inst,
        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_smi_instance *inst,
                        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);
        }