Skip to content

Commit

Permalink
drm/msm/hdmi: enable regulators before clocks to avoid warnings
Browse files Browse the repository at this point in the history
HPD regulators need to be enabled before clocks, otherwise clock
driver will report warning.

Signed-off-by: Jilai Wang <jilaiw@codeaurora.org>
  • Loading branch information
Jilai Wang authored and Rob Clark committed Dec 18, 2014
1 parent 8bc1fe9 commit e6d7a16
Showing 1 changed file with 18 additions and 27 deletions.
45 changes: 18 additions & 27 deletions drivers/gpu/drm/msm/hdmi/hdmi_connector.c
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,15 @@ static int hpd_enable(struct hdmi_connector *hdmi_connector)
uint32_t hpd_ctrl;
int i, ret;

for (i = 0; i < config->hpd_reg_cnt; i++) {
ret = regulator_enable(hdmi->hpd_regs[i]);
if (ret) {
dev_err(dev->dev, "failed to enable hpd regulator: %s (%d)\n",
config->hpd_reg_names[i], ret);
goto fail;
}
}

ret = gpio_config(hdmi, true);
if (ret) {
dev_err(dev->dev, "failed to configure GPIOs: %d\n", ret);
Expand All @@ -164,15 +173,6 @@ static int hpd_enable(struct hdmi_connector *hdmi_connector)
}
}

for (i = 0; i < config->hpd_reg_cnt; i++) {
ret = regulator_enable(hdmi->hpd_regs[i]);
if (ret) {
dev_err(dev->dev, "failed to enable hpd regulator: %s (%d)\n",
config->hpd_reg_names[i], ret);
goto fail;
}
}

hdmi_set_mode(hdmi, false);
phy->funcs->reset(phy);
hdmi_set_mode(hdmi, true);
Expand Down Expand Up @@ -200,7 +200,7 @@ static int hpd_enable(struct hdmi_connector *hdmi_connector)
return ret;
}

static int hdp_disable(struct hdmi_connector *hdmi_connector)
static void hdp_disable(struct hdmi_connector *hdmi_connector)
{
struct hdmi *hdmi = hdmi_connector->hdmi;
const struct hdmi_platform_config *config = hdmi->config;
Expand All @@ -212,28 +212,19 @@ static int hdp_disable(struct hdmi_connector *hdmi_connector)

hdmi_set_mode(hdmi, false);

for (i = 0; i < config->hpd_reg_cnt; i++) {
ret = regulator_disable(hdmi->hpd_regs[i]);
if (ret) {
dev_err(dev->dev, "failed to disable hpd regulator: %s (%d)\n",
config->hpd_reg_names[i], ret);
goto fail;
}
}

for (i = 0; i < config->hpd_clk_cnt; i++)
clk_disable_unprepare(hdmi->hpd_clks[i]);

ret = gpio_config(hdmi, false);
if (ret) {
dev_err(dev->dev, "failed to unconfigure GPIOs: %d\n", ret);
goto fail;
}

return 0;
if (ret)
dev_warn(dev->dev, "failed to unconfigure GPIOs: %d\n", ret);

fail:
return ret;
for (i = 0; i < config->hpd_reg_cnt; i++) {
ret = regulator_disable(hdmi->hpd_regs[i]);
if (ret)
dev_warn(dev->dev, "failed to disable hpd regulator: %s (%d)\n",
config->hpd_reg_names[i], ret);
}
}

static void
Expand Down

0 comments on commit e6d7a16

Please sign in to comment.