Lines Matching full:dvfs

122 	struct gm20b_clk_dvfs dvfs;  member
190 struct gm20b_clk_dvfs *dvfs) in gm20b_dvfs_calc_det_coeff() argument
201 dvfs->dfs_coeff = min_t(u32, coeff, MASK(GPCPLL_DVFS0_DFS_COEFF_WIDTH)); in gm20b_dvfs_calc_det_coeff()
203 dvfs->dfs_ext_cal = DIV_ROUND_CLOSEST(uv - clk->uvdet_offs, in gm20b_dvfs_calc_det_coeff()
206 if (abs(dvfs->dfs_ext_cal) >= BIT(DFS_DET_RANGE)) in gm20b_dvfs_calc_det_coeff()
209 dvfs->dfs_det_max = 0; in gm20b_dvfs_calc_det_coeff()
212 __func__, uv, dvfs->dfs_coeff, dvfs->dfs_ext_cal, in gm20b_dvfs_calc_det_coeff()
213 dvfs->dfs_det_max); in gm20b_dvfs_calc_det_coeff()
236 det_delta -= clk->dvfs.dfs_ext_cal; in gm20b_dvfs_calc_ndiv()
237 det_delta = min(det_delta, clk->dvfs.dfs_det_max); in gm20b_dvfs_calc_ndiv()
238 det_delta *= clk->dvfs.dfs_coeff; in gm20b_dvfs_calc_ndiv()
289 /* in DVFS mode SDM is updated via "new" field */ in gm20b_pllg_slide()
308 /* in DVFS mode complete SDM update */ in gm20b_pllg_slide()
329 /* In DVFS mode lock cannot be used - so just delay */ in gm20b_pllg_enable()
550 struct gm20b_clk_dvfs *dvfs) in gm20b_dvfs_program_dfs_detection() argument
561 dvfs->dfs_coeff << GPCPLL_DVFS0_DFS_COEFF_SHIFT | in gm20b_dvfs_program_dfs_detection()
562 dvfs->dfs_det_max << GPCPLL_DVFS0_DFS_DET_MAX_SHIFT); in gm20b_dvfs_program_dfs_detection()
568 gm20b_dvfs_program_ext_cal(clk, dvfs->dfs_ext_cal); in gm20b_dvfs_program_dfs_detection()
578 /* No change in DVFS settings? */ in gm20b_clk_prog()
583 * Interim step for changing DVFS detection settings: low enough in gm20b_clk_prog()
584 * frequency to be safe at at DVFS coeff = 0. in gm20b_clk_prog()
588 * - DVFS settings are still old in gm20b_clk_prog()
594 * - DVFS settings are still old in gm20b_clk_prog()
599 * with zero DVFS coefficient. in gm20b_clk_prog()
619 * DVFS detection settings transition: in gm20b_clk_prog()
620 * - Set DVFS coefficient zero in gm20b_clk_prog()
622 * - Set DVFS coefficient to match new voltage in gm20b_clk_prog()
631 clk->dvfs = clk->new_dvfs; in gm20b_clk_prog()
751 /* Enable NA DVFS */ in gm20b_clk_init_dvfs()
793 nvkm_debug(subdev, "calibrated DVFS parameters: offs %d, slope %d\n", in gm20b_clk_init_dvfs()
797 /* Compute and apply initial DVFS parameters */ in gm20b_clk_init_dvfs()
798 gm20b_dvfs_calc_det_coeff(clk, clk->uv, &clk->dvfs); in gm20b_clk_init_dvfs()
800 gm20b_dvfs_program_ext_cal(clk, clk->dvfs.dfs_ext_cal); in gm20b_clk_init_dvfs()
801 gm20b_dvfs_program_coeff(clk, clk->dvfs.dfs_coeff); in gm20b_clk_init_dvfs()
858 /* Initialize DVFS */ in gm20b_clk_init()