Re: [PATCH][RESEND] iio: ad9523-1: Improve reported VCO frequency accuracy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 17 May 2019 16:37:11 +0300
Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> wrote:

> From: Lars-Peter Clausen <lars@xxxxxxxxxx>
> 
> To improve the accuracy of the reported VCO frequency perform all
> multiplications before divisions. This reduces rounding errors and makes
> sure the reported rates are accurate down to the last digit.
> 
> Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx>
> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx>
Not sure how I missed this one the first time around!  Thanks for the
resend and applied to the togreg branch of iio.git.

Thanks,

Jonathan

> ---
>  drivers/iio/frequency/ad9523.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/iio/frequency/ad9523.c b/drivers/iio/frequency/ad9523.c
> index 246e38d76eff..541cb5975dd9 100644
> --- a/drivers/iio/frequency/ad9523.c
> +++ b/drivers/iio/frequency/ad9523.c
> @@ -1140,9 +1140,11 @@ static int ad9523_setup(struct iio_dev *indio_dev)
>  	if (ret < 0)
>  		return ret;
>  
> -	st->vco_freq = (pdata->vcxo_freq * (pdata->pll2_freq_doubler_en ? 2 : 1)
> -			/ pdata->pll2_r2_div) * AD9523_PLL2_FB_NDIV(pdata->
> -			pll2_ndiv_a_cnt, pdata->pll2_ndiv_b_cnt);
> +	st->vco_freq = div_u64((unsigned long long)pdata->vcxo_freq *
> +			       (pdata->pll2_freq_doubler_en ? 2 : 1) *
> +			       AD9523_PLL2_FB_NDIV(pdata->pll2_ndiv_a_cnt,
> +						   pdata->pll2_ndiv_b_cnt),
> +			       pdata->pll2_r2_div);
>  
>  	ret = ad9523_write(indio_dev, AD9523_PLL2_VCO_CTRL,
>  		AD9523_PLL2_VCO_CALIBRATE);




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux