Lines Matching refs:ctx
158 struct dpi_clk_calc_ctx *ctx = data; in dpi_calc_dispc_cb() local
165 if (ctx->pck_min >= 100000000) { in dpi_calc_dispc_cb()
173 ctx->dispc_cinfo.lck_div = lckd; in dpi_calc_dispc_cb()
174 ctx->dispc_cinfo.pck_div = pckd; in dpi_calc_dispc_cb()
175 ctx->dispc_cinfo.lck = lck; in dpi_calc_dispc_cb()
176 ctx->dispc_cinfo.pck = pck; in dpi_calc_dispc_cb()
185 struct dpi_clk_calc_ctx *ctx = data; in dpi_calc_hsdiv_cb() local
192 if (m_dispc > 1 && m_dispc % 2 != 0 && ctx->pck_min >= 100000000) in dpi_calc_hsdiv_cb()
195 ctx->dsi_cinfo.mX[HSDIV_DISPC] = m_dispc; in dpi_calc_hsdiv_cb()
196 ctx->dsi_cinfo.clkout[HSDIV_DISPC] = dispc; in dpi_calc_hsdiv_cb()
198 return dispc_div_calc(dispc, ctx->pck_min, ctx->pck_max, in dpi_calc_hsdiv_cb()
199 dpi_calc_dispc_cb, ctx); in dpi_calc_hsdiv_cb()
207 struct dpi_clk_calc_ctx *ctx = data; in dpi_calc_pll_cb() local
209 ctx->dsi_cinfo.n = n; in dpi_calc_pll_cb()
210 ctx->dsi_cinfo.m = m; in dpi_calc_pll_cb()
211 ctx->dsi_cinfo.fint = fint; in dpi_calc_pll_cb()
212 ctx->dsi_cinfo.clkdco = clkdco; in dpi_calc_pll_cb()
214 return dss_pll_hsdiv_calc(ctx->pll, clkdco, in dpi_calc_pll_cb()
215 ctx->pck_min, dss_feat_get_param_max(FEAT_PARAM_DSS_FCK), in dpi_calc_pll_cb()
216 dpi_calc_hsdiv_cb, ctx); in dpi_calc_pll_cb()
221 struct dpi_clk_calc_ctx *ctx = data; in dpi_calc_dss_cb() local
223 ctx->fck = fck; in dpi_calc_dss_cb()
225 return dispc_div_calc(fck, ctx->pck_min, ctx->pck_max, in dpi_calc_dss_cb()
226 dpi_calc_dispc_cb, ctx); in dpi_calc_dss_cb()
230 struct dpi_clk_calc_ctx *ctx) in dpi_dsi_clk_calc() argument
235 memset(ctx, 0, sizeof(*ctx)); in dpi_dsi_clk_calc()
236 ctx->pll = dpi->pll; in dpi_dsi_clk_calc()
237 ctx->pck_min = pck - 1000; in dpi_dsi_clk_calc()
238 ctx->pck_max = pck + 1000; in dpi_dsi_clk_calc()
243 clkin = clk_get_rate(ctx->pll->clkin); in dpi_dsi_clk_calc()
245 return dss_pll_calc(ctx->pll, clkin, in dpi_dsi_clk_calc()
247 dpi_calc_pll_cb, ctx); in dpi_dsi_clk_calc()
250 static bool dpi_dss_clk_calc(unsigned long pck, struct dpi_clk_calc_ctx *ctx) in dpi_dss_clk_calc() argument
264 memset(ctx, 0, sizeof(*ctx)); in dpi_dss_clk_calc()
266 ctx->pck_min = max(pck - 1000 * i * i * i, 0lu); in dpi_dss_clk_calc()
268 ctx->pck_min = 0; in dpi_dss_clk_calc()
269 ctx->pck_max = pck + 1000 * i * i * i; in dpi_dss_clk_calc()
271 ok = dss_div_calc(pck, ctx->pck_min, dpi_calc_dss_cb, ctx); in dpi_dss_clk_calc()
285 struct dpi_clk_calc_ctx ctx; in dpi_set_dsi_clk() local
289 ok = dpi_dsi_clk_calc(dpi, pck_req, &ctx); in dpi_set_dsi_clk()
293 r = dss_pll_set_config(dpi->pll, &ctx.dsi_cinfo); in dpi_set_dsi_clk()
300 dpi->mgr_config.clock_info = ctx.dispc_cinfo; in dpi_set_dsi_clk()
302 *fck = ctx.dsi_cinfo.clkout[HSDIV_DISPC]; in dpi_set_dsi_clk()
303 *lck_div = ctx.dispc_cinfo.lck_div; in dpi_set_dsi_clk()
304 *pck_div = ctx.dispc_cinfo.pck_div; in dpi_set_dsi_clk()
312 struct dpi_clk_calc_ctx ctx; in dpi_set_dispc_clk() local
316 ok = dpi_dss_clk_calc(pck_req, &ctx); in dpi_set_dispc_clk()
320 r = dss_set_fck_rate(ctx.fck); in dpi_set_dispc_clk()
324 dpi->mgr_config.clock_info = ctx.dispc_cinfo; in dpi_set_dispc_clk()
326 *fck = ctx.fck; in dpi_set_dispc_clk()
327 *lck_div = ctx.dispc_cinfo.lck_div; in dpi_set_dispc_clk()
328 *pck_div = ctx.dispc_cinfo.pck_div; in dpi_set_dispc_clk()
512 struct dpi_clk_calc_ctx ctx; in dpi_check_timings() local
522 ok = dpi_dsi_clk_calc(dpi, timings->pixelclock, &ctx); in dpi_check_timings()
526 fck = ctx.dsi_cinfo.clkout[HSDIV_DISPC]; in dpi_check_timings()
528 ok = dpi_dss_clk_calc(timings->pixelclock, &ctx); in dpi_check_timings()
532 fck = ctx.fck; in dpi_check_timings()
535 lck_div = ctx.dispc_cinfo.lck_div; in dpi_check_timings()
536 pck_div = ctx.dispc_cinfo.pck_div; in dpi_check_timings()