Current implementation of the function ad7192_get_available_filter_freq repeats calculation of output data rate a few times. We can simplify these steps by refactoring out the calculation of fADC. This would also addresses the checkpatch warning of line exceeding 80 character. Signed-off-by: Deepak R Varma <mh12gx2825@xxxxxxxxx> --- Changes since v2: 1. Improved function implementation. No need to use a ew variable. Changes suggested by Stefano. Changes since v1: 1. Corrected variable names to follow datasheet terminology. drivers/iio/adc/ad7192.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/drivers/iio/adc/ad7192.c b/drivers/iio/adc/ad7192.c index d9a220d4217f..5dafcf8754dd 100644 --- a/drivers/iio/adc/ad7192.c +++ b/drivers/iio/adc/ad7192.c @@ -482,18 +482,13 @@ static void ad7192_get_available_filter_freq(struct ad7192_state *st, { unsigned int fadc; - /* Formulas for filter at page 25 of the datasheet */ - fadc = DIV_ROUND_CLOSEST(st->fclk, - AD7192_SINC4_FILTER * AD7192_MODE_RATE(st->mode)); - freq[0] = DIV_ROUND_CLOSEST(fadc * 240, 1024); + fadc = DIV_ROUND_CLOSEST(st->fclk, AD7192_MODE_RATE(st->mode) * 1024); - fadc = DIV_ROUND_CLOSEST(st->fclk, - AD7192_SINC3_FILTER * AD7192_MODE_RATE(st->mode)); - freq[1] = DIV_ROUND_CLOSEST(fadc * 240, 1024); - - fadc = DIV_ROUND_CLOSEST(st->fclk, AD7192_MODE_RATE(st->mode)); - freq[2] = DIV_ROUND_CLOSEST(fadc * 230, 1024); - freq[3] = DIV_ROUND_CLOSEST(fadc * 272, 1024); + /* Formulas for filter at page 25 of the datasheet */ + freq[0] = DIV_ROUND_CLOSEST(fadc * 240, AD7192_SINC4_FILTER); + freq[1] = DIV_ROUND_CLOSEST(fadc * 240, AD7192_SINC3_FILTER); + freq[2] = fadc * 230; + freq[3] = fadc * 272; } static ssize_t ad7192_show_filter_avail(struct device *dev, -- 2.17.1