On Mon Aug 24 2020, Vinicius Costa Gomes wrote: > Hi, > > Kurt Kanzenbach writes: > [snip] >> + /* Setup timer for schedule switch: The IP core only allows to set a >> + * cycle start timer 8 seconds in the future. This is why we setup the >> + * hritmer to base_time - 5 seconds. Then, we have enough time to >> + * activate IP core's EST timer. >> + */ >> + start = ktime_sub_ns(schedule->base_time, (u64)5 * NSEC_PER_SEC); >> + hrtimer_start_range_ns(&hellcreek_port->cycle_start_timer, start, >> + NSEC_PER_SEC, HRTIMER_MODE_ABS); > > If we are talking about seconds here, I don't think you need to use a > hrtimer, you could use a workqueue/delayed_work. Should make things a > bit simpler. I've used hrtimers for one reason: The hrtimer provides a way to fire at an absolute base time based on CLOCK_TAI. All the other facilities such as workqueues, timer list timers, etc do not. In the typical setup, we run ptp4l as boundary clock (or as TAB which is work in progress) and phc2sys to synchronize the ptp clock to the Linux system. Let's assume we setup a TAPRIO schedule with a base time X. Now, the grand master time changes meaning the timer has to go off earlier or later. Thanks, Kurt