Commit a05d070a authored by Rahul Rameshbabu's avatar Rahul Rameshbabu Committed by David S. Miller
Browse files

ptp: Clarify ptp_clock_info .adjphase expects an internal servo to be used



.adjphase expects a PHC to use an internal servo algorithm to correct the
provided phase offset target in the callback. Implementation of the
internal servo algorithm are defined by the individual devices.

Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: default avatarRahul Rameshbabu <rrameshbabu@nvidia.com>
Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 49310624
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -73,6 +73,22 @@ Writing clock drivers
   class driver, since the lock may also be needed by the clock
   driver's interrupt service routine.

PTP hardware clock requirements for '.adjphase'
-----------------------------------------------

   The 'struct ptp_clock_info' interface has a '.adjphase' function.
   This function has a set of requirements from the PHC in order to be
   implemented.

     * The PHC implements a servo algorithm internally that is used to
       correct the offset passed in the '.adjphase' call.
     * When other PTP adjustment functions are called, the PHC servo
       algorithm is disabled.

   **NOTE:** '.adjphase' is not a simple time adjustment functionality
   that 'jumps' the PHC clock time based on the provided offset. It
   should correct the offset provided using an internal algorithm.

Supported hardware
==================

+4 −2
Original line number Diff line number Diff line
@@ -77,8 +77,10 @@ struct ptp_system_timestamp {
 *            nominal frequency in parts per million, but with a
 *            16 bit binary fractional field.
 *
 * @adjphase:  Adjusts the phase offset of the hardware clock.
 *             parameter delta: Desired change in nanoseconds.
 * @adjphase:  Indicates that the PHC should use an internal servo
 *             algorithm to correct the provided phase offset.
 *             parameter delta: PHC servo phase adjustment target
 *                              in nanoseconds.
 *
 * @adjtime:  Shifts the time of the hardware clock.
 *            parameter delta: Desired change in nanoseconds.