Sashiko findings. Replies inline.
> Since there is no delay or sleep inside this loop, will it exhaust
> all 20 retries almost instantly on fast control buses?
See reply to the same finding on patch 2/3 — testing on I2C at both
100 kHz and 400 kHz shows each iteration takes 17-19 ms regardless
of bus speed (dominated by device internal processing). 20 retries
give 340-380 ms of budget, well beyond the 20 ms margin window.
> If zl3073x_chan_tod_ready_wait() fails here, the function returns rc
> directly. [...] wouldn't returning an error cause the PTP servo to
> retry and apply the seconds adjustment a second time?
If tod_ready_wait fails, we cannot be certain that WR_NEXT_1HZ was
actually applied — the semaphore timeout means we do not know whether
the hardware committed the seconds or not. Returning the error is
the safer choice, because setting sec_adjusted = true before
confirmation would mask a genuine hardware failure and silently
report success when the adjustment may not have been applied at all.
Thanks,
Ivan