static enum handoff vco_handoff(struct clk *c)
{
#if defined(CONFIG_MACH_MONTBLANC)
	return HANDOFF_DISABLED_CLK; // LCD Bring-up, Temp code
#endif
	clk_prepare_enable(mdss_dsi_ahb_clk);
	c->rate = vco_get_rate(c);
	clk_disable_unprepare(mdss_dsi_ahb_clk);
	return HANDOFF_ENABLED_CLK;
}
Пример #2
0
static enum handoff vco_handoff(struct clk *c)
{
	int rc;
	enum handoff ret = HANDOFF_DISABLED_CLK;
	struct dsi_pll_vco_clk *vco = to_vco_clk(c);
	struct mdss_pll_resources *dsi_pll_res = vco->priv;

	rc = mdss_pll_resource_enable(dsi_pll_res, true);
	if (rc) {
		pr_err("Failed to enable mdss dsi pll resources\n");
		return ret;
	}

	if (dsi_pll_lock_status(dsi_pll_res)) {
		dsi_pll_res->handoff_resources = true;
		dsi_pll_res->pll_on = true;
		c->rate = vco_get_rate(c);
		ret = HANDOFF_ENABLED_CLK;
	} else {
		mdss_pll_resource_enable(dsi_pll_res, false);
	}

	return ret;
}