iio:common:ssp_sensors fix warnings due to 32 bit instead of 64 bit passed to do_div
authorJonathan Cameron <jic23@kernel.org>
Sat, 31 Jan 2015 09:41:14 +0000 (09:41 +0000)
committerJonathan Cameron <jic23@kernel.org>
Sat, 31 Jan 2015 09:41:14 +0000 (09:41 +0000)
commit67460e8c9a5c59f66e1d476fd9341086cd792e5a
tree9e83681f81674d3b0f967dad45399db84d664172
parent40cb761306d6c19d80fe85f9ae52615932f76b71
iio:common:ssp_sensors fix warnings due to 32 bit instead of 64 bit passed to do_div

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: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/common/ssp_sensors/ssp_iio_sensor.h