• J
    staging:iio:mxs-lradc Fix large integer implicitly truncated to unsigned warning · f89c2b39
    Jonathan Cameron 提交于
    The change to using BIT(20) for one of the bit shifts resulted
    in a constant becoming unsigned. When combined with the existing
    signed constants in a couple of places, this caused possible trouble,
    hence the warnings:
    
    drivers/staging/iio/adc/mxs-lradc.c: In function ‘mxs_lradc_complete_touch_event’:
    drivers/staging/iio/adc/mxs-lradc.c:325:5: warning: large integer implicitly truncated to unsigned type [-Woverflow]
         (((x) << LRADC_DELAY_TRIGGER_LRADCS_OFFSET) & \
         ^
    drivers/staging/iio/adc/mxs-lradc.c:734:7: note: in expansion of macro ‘LRADC_DELAY_TRIGGER’
           LRADC_DELAY_TRIGGER(1 << TOUCHSCREEN_VCHANNEL1) |
           ^
      LD [M]  drivers/staging/iio/accel/adis16201.o
    drivers/staging/iio/adc/mxs-lradc.c: In function ‘mxs_lradc_buffer_preenable’:
    drivers/staging/iio/adc/mxs-lradc.c:322:42: warning: large integer implicitly truncated to unsigned type [-Woverflow]
     #define LRADC_DELAY_TRIGGER_LRADCS_MASK  (0xff << 24)
                                              ^
    drivers/staging/iio/adc/mxs-lradc.c:1308:29: note: in expansion of macro ‘LRADC_DELAY_TRIGGER_LRADCS_MASK’
      mxs_lradc_reg_clear(lradc, LRADC_DELAY_TRIGGER_LRADCS_MASK |
                                 ^
    drivers/staging/iio/adc/mxs-lradc.c: In function ‘mxs_lradc_buffer_postdisable’:
    drivers/staging/iio/adc/mxs-lradc.c:322:42: warning: large integer implicitly truncated to unsigned type [-Woverflow]
     #define LRADC_DELAY_TRIGGER_LRADCS_MASK  (0xff << 24)
                                              ^
    drivers/staging/iio/adc/mxs-lradc.c:1327:29: note: in expansion of macro ‘LRADC_DELAY_TRIGGER_LRADCS_MASK’
      mxs_lradc_reg_clear(lradc, LRADC_DELAY_TRIGGER_LRADCS_MASK |
    
    The simplest fix is to force LRADC_DELAY_TRIGGER_LRADCS_MASK to be
    a shift of an unsigned 0xff rather than a signed one.
    
    This is ugly considering it is the only constant in the driver which
    is so forced, but it does deal with the issue.
    
    Fixes: e0c961bd (iio: adc: mxs-lradc: Prefer using the BIT macro)
    Signed-off-by: NJonathan Cameron <jic23@kernel.org>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    f89c2b39
mxs-lradc.c 48.2 KB