/linux-master/include/linux/ |
H A D | ptp_clock_kernel.h | 76 * parameter scaled_ppm: Desired frequency offset from 176 int (*adjfine)(struct ptp_clock_info *ptp, long scaled_ppm); 241 * ppb = scaled_ppm * 1000 / 2^16 245 * ppb = scaled_ppm * 125 / 2^13 257 * @scaled_ppm: scaled parts per million to adjust by 266 * Returns: true if scaled_ppm is negative, false otherwise 268 static inline bool diff_by_scaled_ppm(u64 base, long scaled_ppm, u64 *diff) argument 272 if (scaled_ppm < 0) { 274 scaled_ppm = -scaled_ppm; 290 adjust_by_scaled_ppm(u64 base, long scaled_ppm) argument [all...] |
/linux-master/drivers/net/ethernet/cavium/common/ |
H A D | cavium_ptp.c | 90 * @scaled_ppm: how much to adjust by, in parts per million, but with a 93 static int cavium_ptp_adjfine(struct ptp_clock_info *ptp_info, long scaled_ppm) argument 102 if (scaled_ppm < 0) { 104 scaled_ppm = -scaled_ppm; 113 * The scaled_ppm represent the ratio in "parts per bilion" by which the 117 * comp = tbase + tbase * scaled_ppm / (1M * 2^16) 123 adj = comp * scaled_ppm;
|
/linux-master/drivers/net/ethernet/engleder/ |
H A D | tsnep_ptp.c | 76 static int tsnep_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 83 if (scaled_ppm < 0) { 84 scaled_ppm = -scaled_ppm; 92 rate_offset = scaled_ppm;
|
/linux-master/drivers/net/ethernet/renesas/ |
H A D | rcar_gen4_ptp.c | 29 static int rcar_gen4_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 32 bool neg_adj = scaled_ppm < 0 ? true : false; 37 scaled_ppm = -scaled_ppm; 38 diff = div_s64(addend * scaled_ppm_to_ppb(scaled_ppm), NSEC_PER_SEC);
|
H A D | ravb_ptp.c | 91 static int ravb_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 101 scaled_ppm);
|
/linux-master/include/soc/mscc/ |
H A D | ocelot_ptp.h | 52 int ocelot_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm);
|
/linux-master/drivers/net/ethernet/marvell/mvpp2/ |
H A D | mvpp2_tai.c | 164 static int mvpp22_tai_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 173 neg_adj = scaled_ppm < 0; 175 scaled_ppm = -scaled_ppm; 177 val = mvpp22_calc_frac_ppm(tai, scaled_ppm);
|
/linux-master/drivers/net/ethernet/amd/xgbe/ |
H A D | xgbe-ptp.c | 137 static int xgbe_adjfine(struct ptp_clock_info *info, long scaled_ppm) argument 145 addend = adjust_by_scaled_ppm(pdata->tstamp_addend, scaled_ppm);
|
/linux-master/drivers/ptp/ |
H A D | ptp_mock.c | 15 /* Clamp scaled_ppm between -2,097,152,000 and 2,097,152,000, 49 static int mock_phc_adjfine(struct ptp_clock_info *info, long scaled_ppm) argument 54 adj = (s64)scaled_ppm << MOCK_PHC_FADJ_SHIFT;
|
H A D | ptp_vclock.c | 43 static int ptp_vclock_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 48 adj = (s64)scaled_ppm << PTP_VCLOCK_FADJ_SHIFT;
|
H A D | ptp_qoriq.c | 202 int ptp_qoriq_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 210 if (scaled_ppm < 0) { 212 scaled_ppm = -scaled_ppm; 221 * = adj * scaled_ppm / 65536000000 223 diff = mul_u64_u64_div_u64(adj, scaled_ppm, 32768000000);
|
H A D | ptp_dte.c | 137 static int ptp_dte_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 139 s32 ppb = scaled_ppm_to_ppb(scaled_ppm);
|
H A D | ptp_dfl_tod.c | 126 static int dfl_tod_adjust_fine(struct ptp_clock_info *ptp, long scaled_ppm) argument 138 ppb = scaled_ppm_to_ppb(scaled_ppm) + GIGA;
|
H A D | ptp_idt82p33.c | 535 static int _idt82p33_adjfine(struct idt82p33_channel *channel, long scaled_ppm) argument 551 * scaled_ppm * 5^12 * 10^5 556 fcw = scaled_ppm * 762939453125ULL; 575 /* ppb = scaled_ppm * 125 / 2^13 */ 578 s64 scaled_ppm = div_s64(((s64)ddco_ppb << 13), 125); local 581 current_ppm += scaled_ppm; 1022 static int idt82p33_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 1032 if (scaled_ppm == channel->current_freq) 1036 err = _idt82p33_adjfine(channel, scaled_ppm); 1039 channel->current_freq = scaled_ppm; [all...] |
/linux-master/drivers/net/dsa/hirschmann/ |
H A D | hellcreek_ptp.c | 127 static int hellcreek_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 134 if (scaled_ppm < 0) { 136 scaled_ppm = -scaled_ppm; 149 * accumulator_overflow_rate = 125 MHz * scaled_ppm * 2^-16 * 10^-6 * 8 151 adj = scaled_ppm;
|
/linux-master/drivers/net/dsa/mv88e6xxx/ |
H A D | ptp.c | 24 * clkadj = scaled_ppm * 10*2^28 / (10^6 * 2^16) 26 * clkadj = scaled_ppm * 2^7 / 5^5 36 * clkadj = scaled_ppm * 8*2^28 / (10^6 * 2^16) 38 * clkadj = scaled_ppm * 2^9 / 5^6 204 static int mv88e6xxx_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 212 if (scaled_ppm < 0) { 214 scaled_ppm = -scaled_ppm; 219 adj *= scaled_ppm;
|
/linux-master/drivers/net/ethernet/cadence/ |
H A D | macb_ptp.c | 122 static int gem_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 130 if (scaled_ppm < 0) { 132 scaled_ppm = -scaled_ppm; 141 adj = (u64)scaled_ppm * word;
|
/linux-master/drivers/net/ethernet/microchip/sparx5/ |
H A D | sparx5_ptp.c | 391 static int sparx5_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 400 if (!scaled_ppm) 403 if (scaled_ppm < 0) { 405 scaled_ppm = -scaled_ppm; 411 * overflow issues. If scaled_ppm with 16bit fractional part was bigger 414 ref = sparx5_ptp_get_1ppm(sparx5) * (scaled_ppm >> 16); 415 ref += (sparx5_ptp_get_1ppm(sparx5) * (0xffff & scaled_ppm)) >> 16;
|
/linux-master/drivers/net/ethernet/marvell/octeontx2/af/ |
H A D | ptp.c | 312 static int ptp_adjfine(struct ptp *ptp, long scaled_ppm) argument 319 if (scaled_ppm < 0) { 321 scaled_ppm = -scaled_ppm; 330 * The scaled_ppm represent the ratio in "parts per million" by which 334 * comp = tbase + tbase * scaled_ppm / (1M * 2^16) 338 /* convert scaled_ppm to ppb */ 339 ppb = 1 + scaled_ppm; 637 err = ptp_adjfine(rvu->ptp, req->scaled_ppm);
|
/linux-master/drivers/net/wireless/intel/iwlwifi/mvm/ |
H A D | ptp.c | 14 /* The scaled_ppm parameter is ppm (parts per million) with a 16-bit fractional 238 static int iwl_mvm_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 258 data->scaled_freq = SCALE_FACTOR + scaled_ppm; 259 IWL_DEBUG_INFO(mvm, "adjfine: scaled_ppm=%ld new=%llu\n", 260 scaled_ppm, (unsigned long long)data->scaled_freq);
|
/linux-master/drivers/net/ethernet/xscale/ |
H A D | ptp_ixp46x.c | 123 static int ptp_ixp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 129 addend = adjust_by_scaled_ppm(DEFAULT_ADDEND, scaled_ppm);
|
/linux-master/drivers/net/ethernet/mellanox/mlx4/ |
H A D | en_clock.c | 121 * @scaled_ppm: Desired frequency change in scaled parts per million 123 * Adjust the frequency of the PHC cycle counter by the indicated scaled_ppm 128 static int mlx4_en_phc_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 135 mult = (u32)adjust_by_scaled_ppm(mdev->nominal_c_mult, scaled_ppm);
|
/linux-master/drivers/net/ethernet/microchip/lan966x/ |
H A D | lan966x_ptp.c | 596 static int lan966x_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument 605 if (!scaled_ppm) 608 if (scaled_ppm < 0) { 610 scaled_ppm = -scaled_ppm; 616 * overflow issues. If scaled_ppm with 16bit fractional part was bigger 619 ref = LAN966X_1PPM_FORMAT * (scaled_ppm >> 16); 620 ref += (LAN966X_1PPM_FORMAT * (0xffff & scaled_ppm)) >> 16;
|
/linux-master/include/linux/fsl/ |
H A D | ptp_qoriq.h | 190 int ptp_qoriq_adjfine(struct ptp_clock_info *ptp, long scaled_ppm);
|
/linux-master/drivers/net/ethernet/mellanox/mlx5/core/lib/ |
H A D | clock.c | 100 * dev_freq_khz * 1000 / 2^shift_constant = 1 scaled_ppm 101 * ppb = scaled_ppm * 1000 / 2^16 105 * dev_freq_khz * 1000 / 1 scaled_ppm = 2^shift_constant 395 static int mlx5_ptp_freq_adj_real_time(struct mlx5_core_dev *mdev, long scaled_ppm) argument 402 scaled_ppm <= S32_MAX && scaled_ppm >= S32_MIN) { 403 /* HW scaled_ppm support on mlx5 devices only supports a 32-bit value */ 406 MLX5_SET(mtutc_reg, in, freq_adjustment, (s32)scaled_ppm); 409 MLX5_SET(mtutc_reg, in, freq_adjustment, scaled_ppm_to_ppb(scaled_ppm)); 415 static int mlx5_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm) argument [all...] |