Subject: RE: [PATCH net-next v2 3/4] net: wangxun: Implement do_aux_work of ptp_clock_info

From: Jiawen Wu <[email-masked]>
Date: Wed, 8 Jan 2025 10:52:23 +0800

> > > > > +static int wx_ptp_feature_enable(struct ptp_clock_info *ptp,
> > > > > +				 struct ptp_clock_request *rq, int on)
> > > > > +{
> > > > > +	struct wx *wx = container_of(ptp, struct wx, ptp_caps);
> > > > > +
> > > > > +	/**
> > > > > +	 * When PPS is enabled, unmask the interrupt for the ClockOut
> > > > > +	 * feature, so that the interrupt handler can send the PPS
> > > > > +	 * event when the clock SDP triggers. Clear mask when PPS is
> > > > > +	 * disabled
> > > > > +	 */
> > > > > +	if (rq->type != PTP_CLK_REQ_PPS || !wx->ptp_setup_sdp)
> > > > > +		return -EOPNOTSUPP;
> > > >
> > > > NAK.
> > > >
> > > > The logic that you added in patch #4 is a periodic output signal, so
> > > > your driver will support PTP_CLK_REQ_PEROUT and not PTP_CLK_REQ_PPS.
> > > >
> > > > Please change the driver to use that instead.
> > > >
> > > > Thanks,
> > > > Richard
> > >
> > > This is a common misconception because the industry lingo uses PPS to mean
> > > periodic output. I wonder if there's a place we can put an obvious warning
> > > about checking if you meant PEROUT... I've had this issue pop up with
> > > colleagues many times.
> >
> > Does a periodic output signal mean that a signal is output every second,
> > whenever the start time is? But I want to implement that a signal is
> > output when an integer number of seconds for the clock time.
> >
> 
> The periodic output can be configured in a bunch of ways, including periods that
> are not a full second, when the signal should start, as well as in "one shot" mode
> where it will only trigger once. You should check the possible flags in
> <uapi/linux/ptp_clock.h> for the various options.

Looks like I need to configure perout.phase {0, 0} to output signal at the closest next
second. And configure perout.period {0, 120 * 1000000} to keep the signal 120ms.

But where should I put these configuration? It used to be:

echo 1 > /sys/class/ptp/ptp0/pps_enable