/linux/arch/x86/include/asm/ |
H A D | div64.h | 87 static inline u64 mul_u64_u64_div_u64(u64 a, u64 mul, u64 div) in mul_u64_u64_div_u64() function 97 #define mul_u64_u64_div_u64 mul_u64_u64_div_u64 macro 101 return mul_u64_u64_div_u64(a, mul, div); in mul_u64_u32_div()
|
/linux/drivers/pwm/ |
H A D | pwm-apple.c | 56 on_cycles = mul_u64_u64_div_u64(fpwm->clkrate, in apple_pwm_apply() 61 off_cycles = mul_u64_u64_div_u64(fpwm->clkrate, in apple_pwm_apply()
|
H A D | pwm-mtk-disp.c | 118 clk_div = mul_u64_u64_div_u64(state->period, rate, NSEC_PER_SEC) >> in mtk_disp_pwm_apply() 129 period = mul_u64_u64_div_u64(state->period, rate, div); in mtk_disp_pwm_apply() 133 high_width = mul_u64_u64_div_u64(state->duty_cycle, rate, div); in mtk_disp_pwm_apply()
|
H A D | pwm-ab8500.c | 77 div = min_t(u64, mul_u64_u64_div_u64(state->period, in ab8500_pwm_apply() 84 duty_steps = max_t(u64, mul_u64_u64_div_u64(state->duty_cycle, in ab8500_pwm_apply()
|
H A D | pwm-brcmstb.c | 124 pc = mul_u64_u64_div_u64(period_ns, rate, NSEC_PER_SEC); in brcmstb_pwm_config() 125 dc = mul_u64_u64_div_u64(duty_ns + 1, rate, NSEC_PER_SEC); in brcmstb_pwm_config()
|
H A D | pwm-rcar.c | 114 tmp = mul_u64_u64_div_u64(period_ns, clk_rate, (u64)NSEC_PER_SEC << div); in rcar_pwm_set_counter() 120 tmp = mul_u64_u64_div_u64(duty_ns, clk_rate, (u64)NSEC_PER_SEC << div); in rcar_pwm_set_counter()
|
H A D | pwm-sunplus.c | 91 dd_freq = mul_u64_u64_div_u64(clk_rate, state->period, (u64)SP7021_PWM_FREQ_SCALER in sunplus_pwm_apply() 116 duty = mul_u64_u64_div_u64(state->duty_cycle, clk_rate, in sunplus_pwm_apply()
|
H A D | pwm-loongson.c | 125 duty = mul_u64_u64_div_u64(duty_ns, ddata->clk_rate, NSEC_PER_SEC); in pwm_loongson_config() 130 period = mul_u64_u64_div_u64(period_ns, ddata->clk_rate, NSEC_PER_SEC); in pwm_loongson_config()
|
H A D | pwm-sophgo-sg2042.c | 89 period_ticks = min(mul_u64_u64_div_u64(ddata->clk_rate_hz, state->period, NSEC_PER_SEC), U32_MAX); in pwm_sg2042_set_dutycycle() 90 …hlperiod_ticks = min(mul_u64_u64_div_u64(ddata->clk_rate_hz, state->duty_cycle, NSEC_PER_SEC), U32… in pwm_sg2042_set_dutycycle()
|
H A D | pwm-stm32.c | 107 arr = mul_u64_u64_div_u64(wf->period_length_ns, rate, in stm32_pwm_round_waveform_tohw() 140 u64 psc = mul_u64_u64_div_u64(wf->period_length_ns, rate, in stm32_pwm_round_waveform_tohw() 146 arr = mul_u64_u64_div_u64(wf->period_length_ns, rate, in stm32_pwm_round_waveform_tohw() 167 duty = mul_u64_u64_div_u64(wf->duty_length_ns, rate, in stm32_pwm_round_waveform_tohw() 200 u64 res = mul_u64_u64_div_u64(a, b, c); in stm32_pwm_mul_u64_u64_div_u64_roundup()
|
H A D | pwm-argon-fan-hat.c | 31 *wfhw = mul_u64_u64_div_u64(wf->duty_length_ns, 100, ARGON40_FAN_HAT_PERIOD_NS); in argon_fan_hat_round_waveform_tohw()
|
H A D | pwm-bcm-kona.c | 124 pc = mul_u64_u64_div_u64(rate, period_ns, div); in kona_pwmc_config() 125 dc = mul_u64_u64_div_u64(rate, duty_ns, div); in kona_pwmc_config()
|
H A D | pwm-clps711x.c | 53 val = mul_u64_u64_div_u64(state->duty_cycle, 0xf, state->period); in clps711x_pwm_apply()
|
H A D | pwm-microchip-core.c | 143 duty_steps = mul_u64_u64_div_u64(state->duty_cycle, clk_rate, tmp); in mchp_core_pwm_calc_duty() 209 tmp = mul_u64_u64_div_u64(state->period, clk_rate, NSEC_PER_SEC); in mchp_core_pwm_calc_period()
|
H A D | pwm-rockchip.c | 121 tmp = mul_u64_u64_div_u64(clk_rate, state->period, prescaled_ns); in rockchip_pwm_config() 126 tmp = mul_u64_u64_div_u64(clk_rate, state->duty_cycle, prescaled_ns); in rockchip_pwm_config()
|
H A D | pwm-renesas-tpu.c | 265 period = mul_u64_u64_div_u64(clk_rate, period_ns, NSEC_PER_SEC); in tpu_pwm_config() 303 duty = mul_u64_u64_div_u64(clk_rate, duty_ns, in tpu_pwm_config()
|
H A D | pwm-rzg2l-gpt.c | 265 period_ticks = mul_u64_u64_div_u64(state->period, rzg2l_gpt->rate_khz, USEC_PER_SEC); in rzg2l_gpt_config() 283 duty_ticks = mul_u64_u64_div_u64(state->duty_cycle, rzg2l_gpt->rate_khz, USEC_PER_SEC); in rzg2l_gpt_config()
|
H A D | pwm-pxa.c | 94 dc = mul_u64_u64_div_u64(pv + 1, duty_ns, period_ns); in pxa_pwm_config()
|
H A D | pwm-meson.c | 193 cnt = mul_u64_u64_div_u64(fin_freq, period, NSEC_PER_SEC); in meson_pwm_calc() 210 duty_cnt = mul_u64_u64_div_u64(fin_freq, duty, NSEC_PER_SEC); in meson_pwm_calc()
|
H A D | pwm-tegra.c | 167 rate = mul_u64_u64_div_u64(pc->clk_rate, period_ns, in tegra_pwm_config()
|
/linux/lib/math/ |
H A D | test_mul_u64_u64_div_u64.c | 77 u64 result = mul_u64_u64_div_u64(a, b, c); in test_init()
|
/linux/drivers/net/wireless/intel/iwlwifi/mld/ |
H A D | ptp.c | 80 scaled_diff = -mul_u64_u64_div_u64(diff, in iwl_mld_ptp_get_adj_time() 85 scaled_diff = mul_u64_u64_div_u64(diff, in iwl_mld_ptp_get_adj_time()
|
/linux/include/linux/ |
H A D | ptp_clock_kernel.h | 297 *diff = mul_u64_u64_div_u64(base, (u64)scaled_ppm, 1000000ULL << 16); in diff_by_scaled_ppm()
|
H A D | math64.h | 285 u64 mul_u64_u64_div_u64(u64 a, u64 mul, u64 div);
|
/linux/drivers/net/wireless/intel/iwlwifi/mvm/ |
H A D | ptp.c | 74 diff = mul_u64_u64_div_u64(diff, data->scaled_freq, in iwl_mvm_ptp_get_adj_time()
|