msm: mdss: enable mmagic gdsc before turning on mdp gdsc
MDP, DSI, HDMI and PLL modules turn on mdp gdsc independently. It is illegal to turn on mdp gdsc without turning on mmagic gdsc on thulium target. This change adds mmagic vote for these modules. Change-Id: I765fcc42477b9e46d0da48cb0cf5b298f58b7815 [veeras@codeaurora.org: As part of 3.18 upgrade, remove msmthulium-mdss-pll.dtsi, msmthulium-mdss.dtsi changes from this gerit] Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org> Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
This commit is contained in:
parent
11f814f19a
commit
a3eab01e8d
2 changed files with 26 additions and 0 deletions
|
@ -183,6 +183,7 @@ struct mdss_data_type {
|
|||
u32 mdp_rev;
|
||||
struct clk *mdp_clk[MDSS_MAX_CLK];
|
||||
struct regulator *fs;
|
||||
struct regulator *mmagic_mdss;
|
||||
struct regulator *vdd_cx;
|
||||
bool batfet_required;
|
||||
struct regulator *batfet;
|
||||
|
|
|
@ -880,6 +880,14 @@ static int mdss_mdp_irq_clk_setup(struct mdss_data_type *mdata)
|
|||
pr_err("unable to get gdsc regulator\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
mdata->mmagic_mdss = devm_regulator_get(&mdata->pdev->dev,
|
||||
"gdsc-mmagic-mdss");
|
||||
if (IS_ERR_OR_NULL(mdata->mmagic_mdss)) {
|
||||
mdata->mmagic_mdss = NULL;
|
||||
pr_debug("unable to get mmagic gdsc regulator\n");
|
||||
}
|
||||
|
||||
mdata->fs_ena = false;
|
||||
|
||||
mdata->gdsc_cb.notifier_call = mdss_mdp_gdsc_notifier_call;
|
||||
|
@ -1086,6 +1094,12 @@ void mdss_mdp_footswitch_ctrl_splash(int on)
|
|||
if (mdata != NULL) {
|
||||
if (on) {
|
||||
pr_debug("Enable MDP FS for splash.\n");
|
||||
if (mdata->mmagic_mdss) {
|
||||
ret = regulator_enable(mdata->mmagic_mdss);
|
||||
if (ret)
|
||||
pr_err("Mmagic MDSS failed to enable\n");
|
||||
}
|
||||
|
||||
ret = regulator_enable(mdata->fs);
|
||||
if (ret)
|
||||
pr_err("Footswitch failed to enable\n");
|
||||
|
@ -1095,6 +1109,8 @@ void mdss_mdp_footswitch_ctrl_splash(int on)
|
|||
pr_debug("Disable MDP FS for splash.\n");
|
||||
mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF);
|
||||
regulator_disable(mdata->fs);
|
||||
if (mdata->mmagic_mdss)
|
||||
regulator_disable(mdata->mmagic_mdss);
|
||||
mdata->handoff_pending = false;
|
||||
}
|
||||
} else {
|
||||
|
@ -3211,9 +3227,16 @@ static void mdss_mdp_footswitch_ctrl(struct mdss_data_type *mdata, int on)
|
|||
if (on) {
|
||||
if (!mdata->fs_ena) {
|
||||
pr_debug("Enable MDP FS\n");
|
||||
if (mdata->mmagic_mdss) {
|
||||
ret = regulator_enable(mdata->mmagic_mdss);
|
||||
if (ret)
|
||||
pr_warn("mmagic mdss failed to enable\n");
|
||||
}
|
||||
|
||||
ret = regulator_enable(mdata->fs);
|
||||
if (ret)
|
||||
pr_warn("Footswitch failed to enable\n");
|
||||
|
||||
if (!mdata->idle_pc) {
|
||||
mdss_mdp_cx_ctrl(mdata, true);
|
||||
mdss_mdp_batfet_ctrl(mdata, true);
|
||||
|
@ -3237,6 +3260,8 @@ static void mdss_mdp_footswitch_ctrl(struct mdss_data_type *mdata, int on)
|
|||
mdss_mdp_batfet_ctrl(mdata, false);
|
||||
}
|
||||
regulator_disable(mdata->fs);
|
||||
if (mdata->mmagic_mdss)
|
||||
regulator_disable(mdata->mmagic_mdss);
|
||||
}
|
||||
mdata->fs_ena = false;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue