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.
Showing the changes to include/uapi (1 of 5 files). Show all
Unified · Split
| @@ -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) |