On 04/12/2020 10:34:13+0100, Thomas Gleixner wrote: > On Thu, Dec 03 2020 at 23:00, Alexandre Belloni wrote: > > On 03/12/2020 22:05:09+0100, Thomas Gleixner wrote: > >> 2) I2C/SPI ... > >> > >> tsched t0 t1 t2 > >> transfer(newsec) RTC update (newsec) RTC increments seconds > >> > >> Lets assume that ttransfer = t1 - t0 is known. > > > > Note that ttransfer is one of the reason why setting set_offset_nsec > > from the RTC driver is not a good idea. The same RTC may be on busses > > with different rates and there is no way to know that. I think that was > > one of my objections at the time. > > > > ttransfer is not a function of the RTC model but rather of how it is > > integrated in the system. > > Yes, but it's the right place to store that information. > > It's a fundamental problem of the RTC driver because that's the one > which has to be able to tell the caller about it. The caller has > absolutely no way to figure it out because it does not even know what > type of RTC is there. > > So either the RTC knows the requirements for tsched, e.g. the MC14xxx > datasheet, or it can retrieve that information from DT or by querying > the underlying bus mechanics for the xfer time estimate or just by > timing an xfer for reference. > What I do from userspace is that the caller is the one estimating the transfer time and this works very well. I really think that the ntp code could do just the same. -- Alexandre Belloni, Bootlin Embedded Linux and Kernel engineering https://bootlin.com