Re: [PATCH] thermal: generic-adc: Fix linear temperature approximation

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

 





W dniu 20.10.2016 o 17:49, Laxman Dewangan pisze:

On Thursday 20 October 2016 08:26 PM, Paweł Jarosz wrote:


W dniu 20.10.2016 o 14:40, Laxman Dewangan pisze:

On Wednesday 19 October 2016 01:01 AM, Paweł Jarosz wrote:
In current version of the driver there is error in temperature
calculation.

So lets fix it using proper linear function.

Signed-off-by: Paweł Jarosz <paweljarosz3691@xxxxxxxxx>

Per my calculation, existing and your equation is same as both are doing linear interpolation.

Only think I have seen is that I have used 1000 for two consecutive temp difference and you used (t2 - t1), so your is better in this case but still the equation is same.

The equation from you is

    t1 + (hi -val) * factor.

and existing one is
     t2 - (val -lo) * factor


factor is abs((t2-t1)/(hi-lo))

If my analysis is not correct then can you please provide the example with calculation for better understansing?

Hi

For example if we try to calculate temp for val = 8, i = 1 and table:

<0 9
 2 7>

    adc_hi = gti->lookup_table[2 * i - 1];
    adc_lo = gti->lookup_table[2 * i + 1];
    temp = gti->lookup_table[2 * i];
    temp -= ((val - adc_lo) * 1000) / (adc_hi - adc_lo);

Your method gives temp =  -498




The temp should be in the milli-centigrade in the table so it should be
<0 9
  2000 7>;

and if you relplace 1000 with the t2 -t1 where

t1  = gti->lookup_table[2*i -2]
t2 = gti->lookup_table[2 *i]

then it will work perfectly.

So your change for replacing 1000 is correct as what I said but need not to change whole equation altogether.

Sorry for that ... when i was writing this i wasn't using your equation, but writing from scratch.
I can send new patch with corrections or leave it as it is. Your call.


Paweł
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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