From: Lars-Peter Clausen Date: Wed, 16 Jan 2013 12:48:00 +0000 (+0000) Subject: staging:iio:adis16400: Don't pass 0 to ilog2 X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=06220b89f2284f910f925676d757fd3331138dc6;p=openwrt%2Fstaging%2Fblogic.git staging:iio:adis16400: Don't pass 0 to ilog2 ilog2 is not defined for 0, so we need to handle the case where the requested frequency is larger than the base sampling rate. In this case we'll round down and set the sampling rate to the base sampling rate. Signed-off-by: Lars-Peter Clausen Signed-off-by: Jonathan Cameron --- diff --git a/drivers/staging/iio/imu/adis16400_core.c b/drivers/staging/iio/imu/adis16400_core.c index 9c8f5ab7e13b..cb6622578e9b 100644 --- a/drivers/staging/iio/imu/adis16400_core.c +++ b/drivers/staging/iio/imu/adis16400_core.c @@ -178,7 +178,11 @@ static int adis16334_set_freq(struct iio_dev *indio_dev, unsigned int freq) { unsigned int t; - t = ilog2(8192 / (freq * 10)); + freq *= 10; + if (freq < 8192) + t = ilog2(8192 / freq); + else + t = 0; if (t > 0x31) t = 0x31;