Lines Matching refs:f
192 static int _freq_tbl_determine_rate(struct clk_hw *hw, const struct freq_tbl *f, in _freq_tbl_determine_rate() argument
203 f = qcom_find_freq_floor(f, rate); in _freq_tbl_determine_rate()
206 f = qcom_find_freq(f, rate); in _freq_tbl_determine_rate()
212 if (!f) in _freq_tbl_determine_rate()
215 index = qcom_find_src_index(hw, rcg->parent_map, f->src); in _freq_tbl_determine_rate()
225 rate = f->freq; in _freq_tbl_determine_rate()
226 if (f->pre_div) { in _freq_tbl_determine_rate()
230 rate *= f->pre_div + 1; in _freq_tbl_determine_rate()
233 if (f->n) { in _freq_tbl_determine_rate()
235 tmp = tmp * f->n; in _freq_tbl_determine_rate()
236 do_div(tmp, f->m); in _freq_tbl_determine_rate()
244 req->rate = f->freq; in _freq_tbl_determine_rate()
265 static int __clk_rcg2_configure(struct clk_rcg2 *rcg, const struct freq_tbl *f) in __clk_rcg2_configure() argument
269 int ret, index = qcom_find_src_index(hw, rcg->parent_map, f->src); in __clk_rcg2_configure()
274 if (rcg->mnd_width && f->n) { in __clk_rcg2_configure()
277 RCG_M_OFFSET(rcg), mask, f->m); in __clk_rcg2_configure()
282 RCG_N_OFFSET(rcg), mask, ~(f->n - f->m)); in __clk_rcg2_configure()
287 d_val = f->n; in __clk_rcg2_configure()
289 n_minus_m = f->n - f->m; in __clk_rcg2_configure()
292 d_val = clamp_t(u32, d_val, f->m, n_minus_m); in __clk_rcg2_configure()
303 cfg = f->pre_div << CFG_SRC_DIV_SHIFT; in __clk_rcg2_configure()
305 if (rcg->mnd_width && f->n && (f->m != f->n)) in __clk_rcg2_configure()
311 static int clk_rcg2_configure(struct clk_rcg2 *rcg, const struct freq_tbl *f) in clk_rcg2_configure() argument
315 ret = __clk_rcg2_configure(rcg, f); in clk_rcg2_configure()
326 const struct freq_tbl *f; in __clk_rcg2_set_rate() local
330 f = qcom_find_freq_floor(rcg->freq_tbl, rate); in __clk_rcg2_set_rate()
333 f = qcom_find_freq(rcg->freq_tbl, rate); in __clk_rcg2_set_rate()
339 if (!f) in __clk_rcg2_set_rate()
342 return clk_rcg2_configure(rcg, f); in __clk_rcg2_set_rate()
422 struct freq_tbl f = *rcg->freq_tbl; in clk_edp_pixel_set_rate() local
445 f.pre_div = hid_div; in clk_edp_pixel_set_rate()
446 f.pre_div >>= CFG_SRC_DIV_SHIFT; in clk_edp_pixel_set_rate()
447 f.pre_div &= mask; in clk_edp_pixel_set_rate()
448 f.m = frac->num; in clk_edp_pixel_set_rate()
449 f.n = frac->den; in clk_edp_pixel_set_rate()
451 return clk_rcg2_configure(rcg, &f); in clk_edp_pixel_set_rate()
468 const struct freq_tbl *f = rcg->freq_tbl; in clk_edp_pixel_determine_rate() local
474 int index = qcom_find_src_index(hw, rcg->parent_map, f->src); in clk_edp_pixel_determine_rate()
522 const struct freq_tbl *f = rcg->freq_tbl; in clk_byte_determine_rate() local
523 int index = qcom_find_src_index(hw, rcg->parent_map, f->src); in clk_byte_determine_rate()
546 struct freq_tbl f = *rcg->freq_tbl; in clk_byte_set_rate() local
553 f.pre_div = div; in clk_byte_set_rate()
555 return clk_rcg2_configure(rcg, &f); in clk_byte_set_rate()
603 struct freq_tbl f = { 0 }; in clk_byte2_set_rate() local
612 f.pre_div = div; in clk_byte2_set_rate()
620 f.src = rcg->parent_map[i].src; in clk_byte2_set_rate()
621 return clk_rcg2_configure(rcg, &f); in clk_byte2_set_rate()
682 struct freq_tbl f = { 0 }; in clk_pixel_set_rate() local
696 f.src = rcg->parent_map[i].src; in clk_pixel_set_rate()
709 f.pre_div = hid_div; in clk_pixel_set_rate()
710 f.pre_div >>= CFG_SRC_DIV_SHIFT; in clk_pixel_set_rate()
711 f.pre_div &= mask; in clk_pixel_set_rate()
712 f.m = frac->num; in clk_pixel_set_rate()
713 f.n = frac->den; in clk_pixel_set_rate()
715 return clk_rcg2_configure(rcg, &f); in clk_pixel_set_rate()
856 clk_rcg2_shared_force_enable_clear(struct clk_hw *hw, const struct freq_tbl *f) in clk_rcg2_shared_force_enable_clear() argument
865 ret = clk_rcg2_configure(rcg, f); in clk_rcg2_shared_force_enable_clear()
876 const struct freq_tbl *f; in clk_rcg2_shared_set_rate() local
878 f = qcom_find_freq(rcg->freq_tbl, rate); in clk_rcg2_shared_set_rate()
879 if (!f) in clk_rcg2_shared_set_rate()
887 return __clk_rcg2_configure(rcg, f); in clk_rcg2_shared_set_rate()
889 return clk_rcg2_shared_force_enable_clear(hw, f); in clk_rcg2_shared_set_rate()
964 struct freq_tbl *f) in clk_rcg2_dfs_populate_freq() argument
975 f->pre_div = 1; in clk_rcg2_dfs_populate_freq()
977 f->pre_div = cfg & mask; in clk_rcg2_dfs_populate_freq()
985 f->src = rcg->parent_map[i].src; in clk_rcg2_dfs_populate_freq()
998 f->m = val; in clk_rcg2_dfs_populate_freq()
1004 val += f->m; in clk_rcg2_dfs_populate_freq()
1005 f->n = val; in clk_rcg2_dfs_populate_freq()
1008 f->freq = calc_rate(prate, f->m, f->n, mode, f->pre_div); in clk_rcg2_dfs_populate_freq()
1146 struct freq_tbl f = { 0 }; in clk_rcg2_dp_set_rate() local
1166 f.src = rcg->parent_map[i].src; in clk_rcg2_dp_set_rate()
1171 f.pre_div = hid_div; in clk_rcg2_dp_set_rate()
1172 f.pre_div >>= CFG_SRC_DIV_SHIFT; in clk_rcg2_dp_set_rate()
1173 f.pre_div &= mask; in clk_rcg2_dp_set_rate()
1176 f.m = num; in clk_rcg2_dp_set_rate()
1177 f.n = den; in clk_rcg2_dp_set_rate()
1179 f.m = 0; in clk_rcg2_dp_set_rate()
1180 f.n = 0; in clk_rcg2_dp_set_rate()
1183 return clk_rcg2_configure(rcg, &f); in clk_rcg2_dp_set_rate()