[Letux-kernel] Timers (was Re: [PATCH 00/20] A bunch of JZ4730 fixups for letux-kernel)

H. Nikolaus Schaller hns at goldelico.com
Tue Jan 19 10:45:10 CET 2021

> Am 19.01.2021 um 10:15 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
> So we have learned that sleep 10 indeed calls hrtimer_nanosleep() resp.
> do_nanosleep() and there we somehow get the factor 2 compared to what
> user-space assumes.
> We are getting closer...

ok, starting a hrtimer goes down to clockevents_program_event()
This uses a struct clock_event_device which controls the real

Do we have an idea which one we use on the jz4730?

Seems to be


So we are back at the TCU and OST driver!

After studying the code I think I got it:


There, we are simply writing the next value to TCU_JZ4730_REG_TRDRc
without taking into account that it is counting backwards. IMHO it must
be the reverse operation to ingenic_tcu_timer_read() so that

ingenic_tcu_cevt_set_next(value, ...);

should return almost the same value!

ingenic_tcu_cevt_set_next() is only called for the hrtimers but
not for the sched_clock() (which is freely running and overflowing).

What do you think?


More information about the Letux-kernel mailing list