History

dpll: expose fractional frequency offset in ppt

Currently, the dpll subsystem exports the fractional frequency offset (FFO) in parts per million (ppm). This granularity is insufficient for high-precision synchronization scenarios which often require parts per trillion (ppt) resolution. Add a new netlink attribute DPLL_A_PIN_FRACTIONAL_FREQUENCY_OFFSET_PPT to expose the FFO in ppt. Update the dpll netlink core to expect the driver-provided FFO value to be in ppt. To maintain backward compatibility with existing userspace tools, populate the legacy DPLL_A_PIN_FRACTIONAL_FREQUENCY_OFFSET attribute by dividing the new ppt value by 1,000,000. Update the zl3073x and mlx5 drivers to provide the FFO value in ppt: - zl3073x: adjust the fixed-point calculation to produce ppt (10^12) instead of ppm (10^6). - mlx5: scale the existing ppm value by 1,000,000.

Ivan Vecera committed 9 months ago

Commit bc443c21 parent b3827c95 files · +27 −4Browse files

Showing the changes to include/uapi (1 of 5 files). Show all

Unified · Split

include/uapi/linux/dpll.h+1−0
@@ -253,6 +253,7 @@ enum dpll_a_pin { · 252 unmodified lines
253 DPLL_A_PIN_ESYNC_PULSE,253 DPLL_A_PIN_ESYNC_PULSE,
254 DPLL_A_PIN_REFERENCE_SYNC,254 DPLL_A_PIN_REFERENCE_SYNC,
255 DPLL_A_PIN_PHASE_ADJUST_GRAN,255 DPLL_A_PIN_PHASE_ADJUST_GRAN,
256 DPLL_A_PIN_FRACTIONAL_FREQUENCY_OFFSET_PPT,
256 257
257 __DPLL_A_PIN_MAX,258 __DPLL_A_PIN_MAX,
258 DPLL_A_PIN_MAX = (__DPLL_A_PIN_MAX - 1)259 DPLL_A_PIN_MAX = (__DPLL_A_PIN_MAX - 1)