[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <02874ECE860811409154E81DA85FBB58968D3696@ORSMSX121.amr.corp.intel.com>
Date: Tue, 24 Sep 2019 21:16:05 +0000
From: "Keller, Jacob E" <jacob.e.keller@...el.com>
To: "Hall, Christopher S" <christopher.s.hall@...el.com>,
Felipe Balbi <felipe.balbi@...ux.intel.com>,
Richard Cochran <richardcochran@...il.com>
CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH v4 2/2] PTP: add support for one-shot output
> -----Original Message-----
> From: Hall, Christopher S
> Sent: Tuesday, September 24, 2019 1:24 PM
> To: Keller, Jacob E <jacob.e.keller@...el.com>; Felipe Balbi
> <felipe.balbi@...ux.intel.com>; Richard Cochran <richardcochran@...il.com>
> Cc: netdev@...r.kernel.org; linux-kernel@...r.kernel.org
> Subject: RE: [PATCH v4 2/2] PTP: add support for one-shot output
>
> Good catch on the terminology. This is an API that produces edges not pulses.
> This flag causes the PEROUT ioctl to ignore the period argument and produce a
> single edge. Currently, the igb driver implements the same function, but uses
> a "magic" invalid period specification to signal that the period argument
> should be ignored (use_freq == 0):
>
> if (on && ((ns <= 70000000LL) || (ns == 125000000LL) ||
> (ns == 250000000LL) || (ns == 500000000LL))) {
> if (ns < 8LL)
> return -EINVAL;
> use_freq = 1;
> }
>From my understanding, the use_freq = 0 is intended to perform a clock using the target time registers with an interrupt to re-trigger the next toggle.
If you use a frequency not supported by freqout, it will result in an interrupt that re-toggles the target time, not a single edge.
>
> The proposal is to support this function without magic period specifications
> using an explicit flag instead. An example use case is pulse-per-second
> output. While PPS is periodic, time-aware GPIO is driven by (an
> unadjustable) Always Running Timer (ART). It's necessary to schedule each
> edge in software to produce PPS synced with system time.
>
> Chris
Oh, so "one shot" will simply toggle the clock output once. I see.
So this won't really work for generating a pulse per second, and we would possibly still want an API for that?
Thanks,
Jake
Powered by blists - more mailing lists