OMAPDSS: pass pck to dss fck clock calc
We need the required pixel clock rate when calculating the dss fclk on SoCs that have a dedicated DSS PLL. This patch changes the code to pass the pck to the calc functions. The pck rate is taken into use in the next patch. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
@ -236,7 +236,7 @@ static bool dpi_dss_clk_calc(unsigned long pck, struct dpi_clk_calc_ctx *ctx)
|
|||||||
ctx->pck_min = 0;
|
ctx->pck_min = 0;
|
||||||
ctx->pck_max = pck + 1000 * i * i * i;
|
ctx->pck_max = pck + 1000 * i * i * i;
|
||||||
|
|
||||||
ok = dss_div_calc(ctx->pck_min, dpi_calc_dss_cb, ctx);
|
ok = dss_div_calc(pck, ctx->pck_min, dpi_calc_dss_cb, ctx);
|
||||||
if (ok)
|
if (ok)
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
@ -436,7 +436,8 @@ enum omap_dss_clk_source dss_get_lcd_clk_source(enum omap_channel channel)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool dss_div_calc(unsigned long fck_min, dss_div_calc_func func, void *data)
|
bool dss_div_calc(unsigned long pck, unsigned long fck_min,
|
||||||
|
dss_div_calc_func func, void *data)
|
||||||
{
|
{
|
||||||
int fckd, fckd_start, fckd_stop;
|
int fckd, fckd_start, fckd_stop;
|
||||||
unsigned long fck;
|
unsigned long fck;
|
||||||
|
@ -245,7 +245,8 @@ void dss_set_dac_pwrdn_bgz(bool enable);
|
|||||||
int dss_set_fck_rate(unsigned long rate);
|
int dss_set_fck_rate(unsigned long rate);
|
||||||
|
|
||||||
typedef bool (*dss_div_calc_func)(unsigned long fck, void *data);
|
typedef bool (*dss_div_calc_func)(unsigned long fck, void *data);
|
||||||
bool dss_div_calc(unsigned long fck_min, dss_div_calc_func func, void *data);
|
bool dss_div_calc(unsigned long pck, unsigned long fck_min,
|
||||||
|
dss_div_calc_func func, void *data);
|
||||||
|
|
||||||
/* SDI */
|
/* SDI */
|
||||||
int sdi_init_platform_driver(void) __init;
|
int sdi_init_platform_driver(void) __init;
|
||||||
|
@ -97,7 +97,7 @@ static int sdi_calc_clock_div(unsigned long pclk,
|
|||||||
ctx.pck_min = 0;
|
ctx.pck_min = 0;
|
||||||
ctx.pck_max = pclk + 1000 * i * i * i;
|
ctx.pck_max = pclk + 1000 * i * i * i;
|
||||||
|
|
||||||
ok = dss_div_calc(ctx.pck_min, dpi_calc_dss_cb, &ctx);
|
ok = dss_div_calc(pclk, ctx.pck_min, dpi_calc_dss_cb, &ctx);
|
||||||
if (ok) {
|
if (ok) {
|
||||||
*fck = ctx.fck;
|
*fck = ctx.fck;
|
||||||
*dispc_cinfo = ctx.dispc_cinfo;
|
*dispc_cinfo = ctx.dispc_cinfo;
|
||||||
|
Reference in New Issue
Block a user