On Fri, Oct 05, 2018 at 12:25:09PM -0700, Nathan Chancellor wrote: > Clang warns when one enumerated type is implicitly converted to another. > > drivers/spi/spi-ep93xx.c:342:62: warning: implicit conversion from > enumeration type 'enum dma_transfer_direction' to different enumeration > type 'enum dma_data_direction' [-Wenum-conversion] > nents = dma_map_sg(chan->device->dev, sgt->sgl, sgt->nents, dir); > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ > ./include/linux/dma-mapping.h:428:58: note: expanded from macro > 'dma_map_sg' > #define dma_map_sg(d, s, n, r) dma_map_sg_attrs(d, s, n, r, 0) > ~~~~~~~~~~~~~~~~ ^ > drivers/spi/spi-ep93xx.c:348:57: warning: implicit conversion from > enumeration type 'enum dma_transfer_direction' to different enumeration > type 'enum dma_data_direction' [-Wenum-conversion] > dma_unmap_sg(chan->device->dev, sgt->sgl, sgt->nents, dir); > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ > ./include/linux/dma-mapping.h:429:62: note: expanded from macro > 'dma_unmap_sg' > #define dma_unmap_sg(d, s, n, r) dma_unmap_sg_attrs(d, s, n, r, 0) > ~~~~~~~~~~~~~~~~~~ ^ > drivers/spi/spi-ep93xx.c:377:56: warning: implicit conversion from > enumeration type 'enum dma_transfer_direction' to different enumeration > type 'enum dma_data_direction' [-Wenum-conversion] > dma_unmap_sg(chan->device->dev, sgt->sgl, sgt->nents, dir); > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ > ./include/linux/dma-mapping.h:429:62: note: expanded from macro > 'dma_unmap_sg' > #define dma_unmap_sg(d, s, n, r) dma_unmap_sg_attrs(d, s, n, r, 0) > ~~~~~~~~~~~~~~~~~~ ^ > 3 warnings generated. > > dma_{,un}map_sg expect an enum of type dma_data_direction but this > driver uses dma_transfer_direction for everything. Convert the driver to > use dma_data_direction for these two functions. > > There are two places that strictly require an enum of type > dma_transfer_direction: the direction member in struct dma_slave_config > and the direction parameter in dmaengine_prep_slave_sg. To avoid using > an explicit cast, add a simple function, ep93xx_dma_data_to_trans_dir, > to safely map between the two types because they are not 1 to 1 in > meaning. > > Signed-off-by: Nathan Chancellor <natechancellor@xxxxxxxxx> Looks good to me, Reviewed-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>