• Arnd Bergmann's avatar
    remoteproc: mtk_scp: use dma_addr_t for DMA API · c2781e4d
    Arnd Bergmann authored
    dma_addr_t and phys_addr_t are distinct types and must not be
    mixed, as both the values and the size of the type may be
    different depending on what the remote device uses.
    
    In this driver the compiler warns when the two types are different:
    
    drivers/remoteproc/mtk_scp.c: In function 'scp_map_memory_region':
    drivers/remoteproc/mtk_scp.c:454:9: error: passing argument 3 of 'dma_alloc_coherent' from incompatible pointer type [-Werror=incompatible-pointer-types]
      454 |         &scp->phys_addr, GFP_KERNEL);
          |         ^~~~~~~~~~~~~~~
          |         |
          |         phys_addr_t * {aka unsigned int *}
    In file included from drivers/remoteproc/mtk_scp.c:7:
    include/linux/dma-mapping.h:642:15: note: expected 'dma_addr_t *' {aka 'long long unsigned int *'} but argument is of type 'phys_addr_t *' {aka 'unsigned int *'}
      642 |   dma_addr_t *dma_handle, gfp_t gfp)
    
    Change the phys_addr member to be typed and named according
    to how it is allocated.
    
    Fixes: 63c13d61 ("remoteproc/mediatek: add SCP support for mt8183")
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Link: https://lore.kernel.org/r/20200408155450.2186471-1-arnd@arndb.deSigned-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
    c2781e4d
mtk_scp.c 15.5 KB