ltq-vdsl/ltq-adsl: fix elapsed time calculation
authorJan Hoffmann <jan@3e8.eu>
Mon, 25 Apr 2022 19:52:39 +0000 (21:52 +0200)
committerDaniel Golle <daniel@makrotopia.org>
Wed, 4 May 2022 00:38:04 +0000 (01:38 +0100)
commitdb4bf4b968c0da035d98e7771fc993af9d6f742b
tree65351f19e1437b701d673290f962f39bbb475db7
parent2f484aeff5fe5ba3a832f98ca409adde3257e832
ltq-vdsl/ltq-adsl: fix elapsed time calculation

The driver maintains elapsed times by repeatedly accumulating the time
since the previous update in a loop. For the elapsed showtime time, the
time difference is truncated to seconds before adding it, leading to a
sizable error over time.

Move the truncation to before calculation of the time difference in
order to remove this error. Also maintain the total elapsed time in the
same way in full seconds, to prevent the unsigned 32-bit counter from
wrapping around after about 50 days.

Testing on a VR9 device shows that the reported line uptime now matches
the actual elapsed wall time. The ADSL variant is only compile-tested,
but it should also work as the relevant code is identical.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
package/kernel/lantiq/ltq-adsl/Makefile
package/kernel/lantiq/ltq-adsl/patches/200-fix-elapsed-time.patch [new file with mode: 0644]
package/kernel/lantiq/ltq-vdsl/Makefile
package/kernel/lantiq/ltq-vdsl/patches/200-fix-elapsed-time.patch [new file with mode: 0644]