• Arnd Bergmann's avatar
    usb: musb/ux500: remove duplicate check for dma_is_compatible · 62a6abdd
    Arnd Bergmann authored
    When dma_addr_t is 64-bit, we get a warning about an invalid cast
    in the call to ux500_dma_is_compatible() from ux500_dma_channel_program():
    
    drivers/usb/musb/ux500_dma.c: In function 'ux500_dma_channel_program':
    drivers/usb/musb/ux500_dma.c:210:51: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
      if (!ux500_dma_is_compatible(channel, packet_sz, (void *)dma_addr, len))
    
    The problem is that ux500_dma_is_compatible() is called from the
    main musb driver on the virtual address, but here we pass in a
    DMA address, so the types are fundamentally different but it works
    because the function only checks the alignment of the buffer and
    that is the same.
    
    We could work around this by adding another cast, but I have checked
    that the buffer we get passed here is already checked before it
    gets mapped, so the second check seems completely unnecessary
    and removing it must be the cleanest solution.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarFelipe Balbi <balbi@kernel.org>
    62a6abdd
ux500_dma.c 11.7 KB