On Mon, Nov 28, 2016 at 05:04:26PM -0600, Grygorii Strashko wrote: > +static cycle_t cpts_cc_ns2cyc(struct cpts *cpts, u64 nsecs) > +{ > + cycle_t cyc = (nsecs << cpts->cc.shift) + nsecs; > + > + do_div(cyc, cpts->cc.mult); > + > + return cyc; > +} So you set the comparison value once per second, based on cc.mult. But when the clock is being actively synchronized, user space calls to clock_adjtimex() will change cc.mult. This can happen several times per second, depending on the PTP Sync rate. In order to produce the PPS edge correctly, you would have to adjust the comparison value whenever cc.mult changes, but of course this is unworkable. So I'll have to say NAK for this patch. Thanks, Richard -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html