• Jonathan Cameron's avatar
    iio:common:ssp_sensors fix warnings due to 32 bit instead of 64 bit passed to do_div · 67460e8c
    Jonathan Cameron authored
    Also change to div64_u64 in one place to avoid loss of precision
    (was dividing a 32 bit number by a 64 bit number, but casting this
    to 64 bit divided by 32 bit)  Those divide functions certainly have
    esoteric naming!
    
    Fixes warnings with asm-generic/div64.h do_div such as:
       In file included from drivers/iio/common/ssp_sensors/ssp_iio.c:20:0:
       drivers/iio/common/ssp_sensors/ssp_iio_sensor.h: In function 'ssp_convert_to_freq':
    >> drivers/iio/common/ssp_sensors/ssp_iio_sensor.h:56:16: warning: comparison of distinct pointer types lacks a cast [enabled by default]
       drivers/iio/common/ssp_sensors/ssp_iio_sensor.h:56:2: warning: right shift count >= width of type [enabled by default]
    >> drivers/iio/common/ssp_sensors/ssp_iio_sensor.h:56:2: warning: passing argument 1 of '__div64_32' from incompatible pointer type [enabled by default]
       include/asm-generic/div64.h:35:17: note: expected 'uint64_t *' but argument is of type 'int *'
       drivers/iio/common/ssp_sensors/ssp_iio.c: In function 'ssp_common_process_data':
       include/linux/iio/buffer.h:142:32: warning: 'calculated_time' may be used uninitialized in this function [-Wuninitialized]
       drivers/iio/common/ssp_sensors/ssp_iio.c:83:10: note: 'calculated_time' was declared here
    
    Fixed by using straight coded version as per the description in the
    div64.h header, thus ensuring no issue with 32 bit integers.
    Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
    Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
    67460e8c
ssp_iio_sensor.h 1.71 KB