From: Vincent Cheng <vincent.cheng...@renesas.com> This series fixes a race condition that may result in the output clock not aligned to internal 1 PPS clock.
Part of device initialization is to align the rising edge of output clocks to the internal rising edge of the 1 PPS clock. If the system APLL and DPLL are not locked when this alignment occurs, the alignment fails and a fixed offset between the internal 1 PPS clock and the output clock occurs. If a clock is dynamically enabled after power-up, the output clock also needs to be aligned to the internal 1 PPS clock. v3: Suggested by: Jakub Kicinski <k...@kernel.org> - Remove unnecessary 'err' variable - Increase msleep()/loop accuracy by using jiffies in while() - No empty lines between variables - No empty lines between call and the if - parenthesis around a == b are unnecessary - Inconsistent \n usage in dev_() - Remove unnecessary empty line - Leave string format in place so static code checkers can validate arguments v2: Suggested by: Richard Cochran <richardcoch...@gmail.com> - Added const to "char * fmt" - Break unrelated header change into separate patch Vincent Cheng (7): ptp: ptp_clockmatrix: Add wait_for_sys_apll_dpll_lock. ptp: ptp_clockmatrix: Add alignment of 1 PPS to idtcm_perout_enable. ptp: ptp_clockmatrix: Remove unused header declarations. ptp: ptp_clockmatrix: Clean-up dev_*() messages. ptp: ptp_clockmatrix: Coding style - tighten vertical spacing. ptp: ptp_clockmatrix: Simplify code - remove unnecessary `err` variable. ptp: ptp_clockmatrix: clean-up - parenthesis around a == b are unnecessary drivers/ptp/idt8a340_reg.h | 10 ++ drivers/ptp/ptp_clockmatrix.c | 313 ++++++++++++++++++------------------------ drivers/ptp/ptp_clockmatrix.h | 17 ++- 3 files changed, 162 insertions(+), 178 deletions(-) -- 2.7.4