• H Hartley Sweeten's avatar
    spi: spi-dw: fix all sparse warnings · 7eb187b3
    H Hartley Sweeten authored
    The dw_{read,write}[lw] macros produce sparse warnings everytime they
    are used.  The "read" ones cause:
    
    warning: cast removes address space of expression
    warning: incorrect type in argument 1 (different address spaces)
       expected void const volatile [noderef] <asn:2>*addr
       got unsigned int *<noident>
    
    And the "write" ones:
    
    warning: cast removes address space of expression
    warning: incorrect type in argument 2 (different address spaces)
       expected void volatile [noderef] <asn:2>*addr
       got unsigned int *<noident>
    
    Fix this by removing struct dw_spi_reg and converting all the register
    offsets to #defines. Then convert the macros into inlined functions so
    that proper type checking can occur.
    
    While here, also fix the three sparse warnings in spi-dw-mid.c due to
    the return value of ioremap_nocache being stored in a u32 * not a
    void __iomem *.
    
    With these changes the spi-dw* files all build with no sparse warnings.
    Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
    Acked-by: default avatarFeng Tang <feng.tang@intel.com>
    Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
    7eb187b3
spi-dw.h 5.8 KB