linux-iio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andy Shevchenko <andy.shevchenko@gmail.com>
To: Crt Mori <cmo@melexis.com>
Cc: Jonathan Cameron <jic23@kernel.org>,
	linux-iio <linux-iio@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v4 1/4] iio:temperature:mlx90632: Reduce number of equal calulcations
Date: Sat, 8 Aug 2020 22:58:04 +0300	[thread overview]
Message-ID: <CAHp75VcEAeVpD+n=TpQWr56XPhBYMUs6JUOXKAUiUBejVLBceg@mail.gmail.com> (raw)
In-Reply-To: <20200808121026.1300375-2-cmo@melexis.com>

On Sat, Aug 8, 2020 at 3:10 PM Crt Mori <cmo@melexis.com> wrote:
>
> TAdut4 was calculated each iteration although it did not change. In light
> of near future additions of the Extended range DSP calculations, this
> function refactoring will help reduce unrelated changes in that series as
> well as reduce the number of new functions needed.

Okay, unifying these two changes (helper function and move the place
where it's called) perhaps good.
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

> Signed-off-by: Crt Mori <cmo@melexis.com>
> ---
>  drivers/iio/temperature/mlx90632.c | 21 +++++++++++++--------
>  1 file changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/iio/temperature/mlx90632.c b/drivers/iio/temperature/mlx90632.c
> index 51b812bcff2e..c3de10ba5b1e 100644
> --- a/drivers/iio/temperature/mlx90632.c
> +++ b/drivers/iio/temperature/mlx90632.c
> @@ -374,11 +374,11 @@ static s32 mlx90632_calc_temp_ambient(s16 ambient_new_raw, s16 ambient_old_raw,
>  }
>
>  static s32 mlx90632_calc_temp_object_iteration(s32 prev_object_temp, s64 object,
> -                                              s64 TAdut, s32 Fa, s32 Fb,
> +                                              s64 TAdut, s64 TAdut4, s32 Fa, s32 Fb,
>                                                s32 Ga, s16 Ha, s16 Hb,
>                                                u16 emissivity)
>  {
> -       s64 calcedKsTO, calcedKsTA, ir_Alpha, TAdut4, Alpha_corr;
> +       s64 calcedKsTO, calcedKsTA, ir_Alpha, Alpha_corr;
>         s64 Ha_customer, Hb_customer;
>
>         Ha_customer = ((s64)Ha * 1000000LL) >> 14ULL;
> @@ -393,30 +393,35 @@ static s32 mlx90632_calc_temp_object_iteration(s32 prev_object_temp, s64 object,
>         Alpha_corr = emissivity * div64_s64(Alpha_corr, 100000LL);
>         Alpha_corr = div64_s64(Alpha_corr, 1000LL);
>         ir_Alpha = div64_s64((s64)object * 10000000LL, Alpha_corr);
> -       TAdut4 = (div64_s64(TAdut, 10000LL) + 27315) *
> -               (div64_s64(TAdut, 10000LL) + 27315) *
> -               (div64_s64(TAdut, 10000LL)  + 27315) *
> -               (div64_s64(TAdut, 10000LL) + 27315);
>
>         return (int_sqrt64(int_sqrt64(ir_Alpha * 1000000000000LL + TAdut4))
>                 - 27315 - Hb_customer) * 10;
>  }
>
> +static s64 mlx90632_calc_ta4(s64 TAdut, s64 scale)
> +{
> +       return (div64_s64(TAdut, scale) + 27315) *
> +               (div64_s64(TAdut, scale) + 27315) *
> +               (div64_s64(TAdut, scale) + 27315) *
> +               (div64_s64(TAdut, scale) + 27315);
> +}
> +
>  static s32 mlx90632_calc_temp_object(s64 object, s64 ambient, s32 Ea, s32 Eb,
>                                      s32 Fa, s32 Fb, s32 Ga, s16 Ha, s16 Hb,
>                                      u16 tmp_emi)
>  {
> -       s64 kTA, kTA0, TAdut;
> +       s64 kTA, kTA0, TAdut, TAdut4;
>         s64 temp = 25000;
>         s8 i;
>
>         kTA = (Ea * 1000LL) >> 16LL;
>         kTA0 = (Eb * 1000LL) >> 8LL;
>         TAdut = div64_s64(((ambient - kTA0) * 1000000LL), kTA) + 25 * 1000000LL;
> +       TAdut4 = mlx90632_calc_ta4(TAdut, 10000LL);
>
>         /* Iterations of calculation as described in datasheet */
>         for (i = 0; i < 5; ++i) {
> -               temp = mlx90632_calc_temp_object_iteration(temp, object, TAdut,
> +               temp = mlx90632_calc_temp_object_iteration(temp, object, TAdut, TAdut4,
>                                                            Fa, Fb, Ga, Ha, Hb,
>                                                            tmp_emi);
>         }
> --
> 2.25.1
>


-- 
With Best Regards,
Andy Shevchenko

  reply	other threads:[~2020-08-08 19:58 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-08 12:10 [PATCH v4 0/4] iio: temperature: mlx90632: Add extended calibration calculations Crt Mori
2020-08-08 12:10 ` [PATCH v4 1/4] iio:temperature:mlx90632: Reduce number of equal calulcations Crt Mori
2020-08-08 19:58   ` Andy Shevchenko [this message]
2020-08-08 12:10 ` [PATCH v4 2/4] iio:temperature:mlx90632: Adding extended calibration option Crt Mori
2020-08-08 20:03   ` Andy Shevchenko
2020-08-08 21:57     ` Crt Mori
2020-08-09 13:32       ` Jonathan Cameron
2020-08-09 21:05         ` Crt Mori
2020-08-11  7:53           ` Crt Mori
2020-08-16  9:09             ` Jonathan Cameron
2020-08-08 12:10 ` [PATCH v4 3/4] iio:temperature:mlx90632: Add kerneldoc to the internal struct Crt Mori
2020-08-08 19:54   ` Andy Shevchenko
2020-08-08 12:10 ` [PATCH v4 4/4] iio:temperature:mlx90632: Convert polling while loops to do-while Crt Mori
2020-08-08 19:56 ` [PATCH v4 0/4] iio: temperature: mlx90632: Add extended calibration calculations Andy Shevchenko
2020-08-08 20:04 ` Andy Shevchenko
2020-08-08 20:06 ` Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAHp75VcEAeVpD+n=TpQWr56XPhBYMUs6JUOXKAUiUBejVLBceg@mail.gmail.com' \
    --to=andy.shevchenko@gmail.com \
    --cc=cmo@melexis.com \
    --cc=jic23@kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).