RE: [PATCH v4 2/2] PTP: add support for one-shot output

From: Keller, Jacob E
Date: Tue Sep 24 2019 - 15:23:29 EST




> -----Original Message-----
> From: netdev-owner@xxxxxxxxxxxxxxx [mailto:netdev-owner@xxxxxxxxxxxxxxx] On
> Behalf Of Felipe Balbi
> Sent: Tuesday, September 10, 2019 11:16 PM
> To: Richard Cochran <richardcochran@xxxxxxxxx>
> Cc: Hall, Christopher S <christopher.s.hall@xxxxxxxxx>; netdev@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx>
> Subject: [PATCH v4 2/2] PTP: add support for one-shot output
>
> Some controllers allow for a one-shot output pulse, in contrast to
> periodic output. Now that we have extensible versions of our IOCTLs, we
> can finally make use of the 'flags' field to pass a bit telling driver
> that if we want one-shot pulse output.
>
> Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx>
> ---
>
> Changes since v3:
> - Remove bogus bitwise negation
>
> Changes since v2:
> - Add _PEROUT_ to bit macro
>
> Changes since v1:
> - remove comment from .flags field
>
> include/uapi/linux/ptp_clock.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/include/uapi/linux/ptp_clock.h b/include/uapi/linux/ptp_clock.h
> index 9a0af3511b68..f16301015949 100644
> --- a/include/uapi/linux/ptp_clock.h
> +++ b/include/uapi/linux/ptp_clock.h
> @@ -38,8 +38,8 @@
> /*
> * Bits of the ptp_perout_request.flags field:
> */
> -#define PTP_PEROUT_VALID_FLAGS (0)
> -
> +#define PTP_PEROUT_ONE_SHOT (1<<0)
> +#define PTP_PEROUT_VALID_FLAGS (PTP_PEROUT_ONE_SHOT)
> /*
> * struct ptp_clock_time - represents a time value
> *
> @@ -77,7 +77,7 @@ struct ptp_perout_request {
> struct ptp_clock_time start; /* Absolute start time. */
> struct ptp_clock_time period; /* Desired period, zero means disable. */
> unsigned int index; /* Which channel to configure. */
> - unsigned int flags; /* Reserved for future use. */
> + unsigned int flags;
> unsigned int rsv[4]; /* Reserved for future use. */
> };
>
> --
> 2.23.0

Hi Felipe,

Do you have any examples for how you envision using this? I don't see any drivers or other code on the list for doing so.

Additionally, it seems weird because we do not have support for specifying the pulse width. I guess you leave that up to driver choice?

Thanks,
Jake