Skip to content

Commit

Permalink
OMAPDSS: setup default dss fck
Browse files Browse the repository at this point in the history
We don't currently set the dss fck when starting up. This is not a
problem, as we setup the fck later when configuring the pixel clocks. Or
this is how it was for omap2, for the rest of the omaps this may not be
so.

For DSI, HDMI and also for DPI when using DSI PLL, we don't need to
change the dss fck, and thus it may be left unconfigured. Usually the
dss fck is already setup fine by default, but we can't trust this.

This patch sets the dss fck to maximum at probe time.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
  • Loading branch information
Tomi Valkeinen committed Nov 5, 2012
1 parent 930b027 commit 13a1a2b
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions drivers/video/omap2/dss/dss.c
Original file line number Diff line number Diff line change
Expand Up @@ -485,6 +485,36 @@ unsigned long dss_get_dpll4_rate(void)
return 0;
}

static int dss_setup_default_clock(void)
{
unsigned long max_dss_fck, prate;
unsigned fck_div;
struct dss_clock_info dss_cinfo = { 0 };
int r;

if (dss.dpll4_m4_ck == NULL)
return 0;

max_dss_fck = dss_feat_get_param_max(FEAT_PARAM_DSS_FCK);

prate = dss_get_dpll4_rate();

fck_div = DIV_ROUND_UP(prate * dss.feat->dss_fck_multiplier,
max_dss_fck);

dss_cinfo.fck_div = fck_div;

r = dss_calc_clock_rates(&dss_cinfo);
if (r)
return r;

r = dss_set_clock_div(&dss_cinfo);
if (r)
return r;

return 0;
}

int dss_calc_clock_div(unsigned long req_pck, struct dss_clock_info *dss_cinfo,
struct dispc_clock_info *dispc_cinfo)
{
Expand Down Expand Up @@ -892,6 +922,10 @@ static int __init omap_dsshw_probe(struct platform_device *pdev)
if (r)
return r;

r = dss_setup_default_clock();
if (r)
goto err_setup_clocks;

pm_runtime_enable(&pdev->dev);

r = dss_runtime_get();
Expand Down Expand Up @@ -924,6 +958,7 @@ static int __init omap_dsshw_probe(struct platform_device *pdev)

err_runtime_get:
pm_runtime_disable(&pdev->dev);
err_setup_clocks:
dss_put_clocks();
return r;
}
Expand Down

0 comments on commit 13a1a2b

Please sign in to comment.