mul_u32_u32
#define mul_u32_u32 mul_u32_u32
lpit_native->counter_frequency : mul_u32_u32(tsc_khz, 1000U);
foutvco_rate = div_u64(mul_u32_u32(EXTAL_FREQ_IN_MEGA_HZ * MEGA,
u64 fout_min_millihz = mul_u32_u32(limits->fout.min, MILLI);
u64 fout_max_millihz = mul_u32_u32(limits->fout.max, MILLI);
output_m = DIV_ROUND_CLOSEST_ULL(mul_u32_u32(p.m, fref) * MILLI,
output_k_range = DIV_ROUND_CLOSEST_ULL(mul_u32_u32(fref, MILLI),
fvco = mul_u32_u32(p.m * 65536 + p.k, fref);
if (fvco < mul_u32_u32(limits->fvco.min, 65536) ||
fvco > mul_u32_u32(limits->fvco.max, 65536))
output = mul_u32_u32(p.m * 65536, RZ_V2H_OSC_CLK_IN_MEGA);
rate_millihz = mul_u32_u32(req->rate, MILLI);
rate_millihz = mul_u32_u32(req->rate, MILLI);
s->exit_latency_ns = mul_u32_u32(s->exit_latency, NSEC_PER_USEC);
u64 cts = mul_u32_u32(pixel_clk, n);
return DIV_ROUND_UP_ULL(mul_u32_u32(symbol_cycles * symbol_size * lane_count,
return DIV_ROUND_DOWN_ULL(mul_u32_u32(max_link_rate * 10 * max_lanes,
ret.full = DIV_ROUND_DOWN_ULL(mul_u32_u32(link_rate * link_lane_count,
return DIV64_U64_ROUND_UP(mul_u32_u32(clock * bpp, 64 * overhead >> 4),
return DIV_ROUND_CLOSEST_ULL(mul_u32_u32(num, 1000), den);
tmp = mul_u32_u32(src, dst - *clip);
ret = mul_u32_u32(pixel_rate, cpp * latency);
hblank_delta = DIV64_U64_ROUND_UP(mul_u32_u32(5 * (link_clk + cdclk), pixel_clk),
mul_u32_u32(link_clk, cdclk));
tu_data = div64_u64(mul_u32_u32(pixel_clk * vdsc_bppx16 * 8, 1000000),
mul_u32_u32(link_clk * lanes * 16, fec_coeff));
tu_line = div64_u64(h_active * mul_u32_u32(link_clk, fec_coeff),
mul_u32_u32(64 * pixel_clk, 1000000));
target_val = mul_u32_u32(source_val - source_min,
return DIV_ROUND_UP_ULL(mul_u32_u32(pipe_mode->crtc_clock, prefill_lines_unadjusted),
result[i] = mul_u32_u32(limited_coeff, abs_coeff) >> 30;
return DIV_ROUND_CLOSEST_ULL(mul_u32_u32(val, (1 << 16) - 1),
return DIV_ROUND_UP_ULL(mul_u32_u32(usecs, adjusted_mode->crtc_clock),
return DIV_ROUND_UP_ULL(mul_u32_u32(scanlines, adjusted_mode->crtc_htotal * 1000),
return DIV_ROUND_UP_ULL(mul_u32_u32(intel_crtc_bw_data_rate(crtc_state), 10), 512);
tmpclk = DIV_ROUND_CLOSEST_ULL(mul_u32_u32(refclk, (multiplier << 16) + frac_quot) +
vco = DIV_ROUND_CLOSEST_ULL(mul_u32_u32(ref, (multiplier << (17 - 2)) + frac) >> 17, 10);
*ret_m = div_u64(mul_u32_u32(m, *ret_n), n);
return DIV_ROUND_UP_ULL(mul_u32_u32(m_n->link_m, link_freq * 10),
return DIV_ROUND_UP_ULL(mul_u32_u32(pixel_clock * bpp_x16, bw_overhead),
return div_u64(mul_u32_u32(mode_clock, DP_DSC_FEC_OVERHEAD_FACTOR),
return div64_u64(mul_u32_u32(intel_dp_link_symbol_clock(crtc_state->port_clock) * 72,
mul_u32_u32(adjusted_mode->crtc_clock, 1030000));
m_n->tu = DIV_ROUND_UP_ULL(mul_u32_u32(m_n->data_m, 64), m_n->data_n);
return DIV_ROUND_CLOSEST_ULL(mul_u32_u32(mode->htotal - mode->hdisplay,
DIV_ROUND_CLOSEST_ULL(mul_u32_u32(refclk, clock->m), clock->n << 22);
m2 = DIV_ROUND_CLOSEST_ULL(mul_u32_u32(target, clock.p * clock.n) << 22,
tmp = mul_u32_u32(dco_khz, 47 * 32);
tmp = mul_u32_u32(dco_khz, 1000);
if (check_add_overflow(mul_u32_u32(height, fb->pitches[color_plane]),
if (mul_u32_u32(max_size, tile_size) > obj->size) {
mul_u32_u32(max_size, tile_size), obj->size);
tmp = mul_u32_u32(val, mul.val);
tmp = mul_u32_u32(val, mul.val);
tmp = mul_u32_u32(val.val, mul.val);
return DIV_ROUND_UP_ULL(mul_u32_u32(rate, src_w * src_h),
return DIV_ROUND_CLOSEST_ULL(mul_u32_u32(refclk, (multiplier << 16) + frac_quot) +
return DIV_ROUND_UP_ULL(mul_u32_u32(pixel_rate, num * src_w),
return DIV_ROUND_UP_ULL(mul_u32_u32(pixel_rate, 10 * hscale),
return div_u64(mul_u32_u32(scan_curr_time - scan_prev_time,
num = mul_u32_u32(pixel_rate, (htotal + dsc_slice_bubbles));
crtc_state->cmrr.cmrr_n = mul_u32_u32(desired_refresh_rate * adjusted_mode->crtc_htotal,
vtotal = DIV_ROUND_UP_ULL(mul_u32_u32(adjusted_mode->crtc_clock * 1000, multiplier_n),
adjusted_pixel_rate = mul_u32_u32(adjusted_mode->crtc_clock * 1000, multiplier_m);
return DIV_ROUND_UP_ULL(mul_u32_u32(pipe_mode->crtc_clock, usecs << 16),
return DIV_ROUND_UP_ULL(mul_u32_u32(value, factor), 0x10000);
pixel_rate = DIV_ROUND_UP_ULL(mul_u32_u32(skl_scaler_max_total_scale(crtc_state),
width = DIV_ROUND_UP_ULL(mul_u32_u32(skl_scaler_max_hscale(crtc_state),
args->size = mul_u32_u32(args->pitch, args->height);
div_u64(mul_u32_u32(gt->clock_period_ns, S32_MAX),
return upper_32_bits(mul_u32_u32(get_random_u32(), max));
mul_u32_u32(i915->params.lmem_size, SZ_1M));
sum = mul_u32_u32(a[2], 2);
div64_u64(mul_u32_u32(4 * sz,
div64_u64(mul_u32_u32(4 * sz,
clock.vco = DIV_ROUND_CLOSEST_ULL(mul_u32_u32(refclk, clock.m), clock.n << 22);
pixel_clk = div_u64(mul_u32_u32(link_m, dp_br), link_n);
new_rate = DIV64_U64_ROUND_CLOSEST(mul_u64_u32_shr(pixel_clk, MSEC_PER_SEC, 0), mul_u32_u32(htotal + 1, vtotal + 1));
pmu->sample[gt_id][sample].cur += mul_u32_u32(val, mul);
return upper_32_bits(mul_u32_u32(prandom_u32_state(state), ep_ro));
sum = mul_u32_u32(a[2], 2);
div64_u64(mul_u32_u32(4 * size,
*hsfreq_millihz = DIV_ROUND_CLOSEST_ULL(mul_u32_u32(vclk_rate, bpp * MILLI),
mode_freq_hz = mul_u32_u32(mode_freq, KILO);
min_us = mul_u32_u32(delay_ms, 1000);
*value = mul_u32_u32(reg_val, SF_POWER) >> hwmon->scl_shift_power;
gain = mul_u32_u32(gain_int, MICRO) + gain_frac;
uval = mul_u32_u32(int_time, pers);
uval = mul_u32_u32(val, MICRO) + val2;
data->al_scale = div_u64(mul_u32_u32(data->chip_spec->ulux_step,
val_c = mul_u32_u32((*data->chip_spec->als_it_times)[it][1],
u64 val_n = mul_u32_u32(val, MICRO) + val2;
if (val_n < mul_u32_u32(vcnl4040_als_persistence[i],
bt->tq = DIV_U64_ROUND_CLOSEST(mul_u32_u32(bt->brp, NSEC_PER_SEC),
buflen = mul_u32_u32(dir_entries, entry_length);
u64 dma_offset = mul_u32_u32(i, rq->mpwqe.mtts_per_wqe) <<
divisor = mul_u32_u32(2 * NSEC_PER_SEC, priv->oclk_prsc);
pulse_width = div64_u64(mul_u32_u32(fiper, priv->clk_freq), divisor);
return div_u64(mul_u32_u32(NSEC_PER_SEC, priv->oclk_prsc),
div_u64(mul_u32_u32(data->shunt_micro_ohms, data->lim_uA),
vthst = div_u64(mul_u32_u32(vthst, 120), 100);
val = div_u64(mul_u32_u32(0xFF, vthfst), data->irng);
bidx += mul_u32_u32(dir_buckets(i, dir_level),
return DIV_ROUND_CLOSEST_ULL(mul_u32_u32(user_input, (1 << bit_precision) - 1),
return DIV_U64_ROUND_CLOSEST(mul_u32_u32(tqmin, NSEC_PER_SEC),
#ifndef mul_u32_u32
ret = mul_u32_u32(al, mul) >> shift;
ret += mul_u32_u32(ah, mul) << (32 - shift);
rl.ll = mul_u32_u32(a0.l.low, b0.l.low);
rm.ll = mul_u32_u32(a0.l.low, b0.l.high);
rn.ll = mul_u32_u32(a0.l.high, b0.l.low);
rh.ll = mul_u32_u32(a0.l.high, b0.l.high);
rl.ll = mul_u32_u32(u.l.low, mul);
rh.ll = mul_u32_u32(u.l.high, mul) + rl.l.high;
#ifndef mul_u32_u32
#define mul_u32_u32 mul_u32_u32
ovf = __builtin_add_overflow(mul_u32_u32(al, mul), b, &ret);
ret += mul_u32_u32(ah, mul) << (32 - shift);
fact = mul_u32_u32(fact, lw->inv_weight);
return div_u64(mul_u32_u32(MSEC_PER_SEC, Number_Of_Runs), User_Time);
#define mul_add(a, b, c) add_u64_u32(mul_u32_u32(a, b), c)
u64 count = mul_u32_u32(n, id.data);
u64 memlim = mul_u32_u32(limit, 2 * psched_mtu(qdisc_dev(sch)));
u64 ns = mul_u32_u32(us, NSEC_PER_USEC);
dividend = mul_u32_u32(1000000, abs(max_rate - (ratio * rate)));
dividend = mul_u32_u32(1000000, abs(max_rate - (ratio * rate)));
ret = mul_u32_u32(al, b) >> shift;
ret += mul_u32_u32(ah, b) << (32 - shift);