platform: msm_shared: configure HDMI GPIOs
Call target specific API to configure the HDMI GPIOs.
Change-Id: I568b505a07b6f8e187489df070fa2e7bf11b8c98
diff --git a/platform/msm_shared/mdss_hdmi.c b/platform/msm_shared/mdss_hdmi.c
index b0f060e..e030410 100644
--- a/platform/msm_shared/mdss_hdmi.c
+++ b/platform/msm_shared/mdss_hdmi.c
@@ -261,25 +261,40 @@
return target_hdmi_panel_clock(enable, pinfo);
}
-static int mdss_hdmi_enable_power(uint8_t enable)
+static int mdss_hdmi_enable_power(uint8_t enable, struct msm_panel_info *pinfo)
{
int ret = NO_ERROR;
- ret = target_ldo_ctrl(enable);
+ ret = target_ldo_ctrl(enable, pinfo);
if (ret) {
- dprintf(CRITICAL, "LDO control enable failed\n");
- return ret;
+ dprintf(CRITICAL, "LDO control enable failed\n");
+ goto bail_ldo_fail;
}
ret = target_hdmi_regulator_ctrl(enable);
if (ret) {
- dprintf(CRITICAL, "hdmi regulator control enable failed\n");
- return ret;
+ dprintf(CRITICAL, "hdmi regulator control enable failed\n");
+ goto bail_regulator_fail;
}
- dprintf(SPEW, "HDMI Panel power %s done\n", enable ? "on" : "off");
+ ret = target_hdmi_gpio_ctrl(enable);
+ if (ret) {
+ dprintf(CRITICAL, "hdmi gpio control enable failed\n");
+ goto bail_gpio_fail;
+ }
- return ret;
+ dprintf(SPEW, "HDMI Panel power %s done\n", enable ? "on" : "off");
+
+ return ret;
+
+bail_gpio_fail:
+ target_hdmi_regulator_ctrl(0);
+
+bail_regulator_fail:
+ target_ldo_ctrl(0, pinfo);
+
+bail_ldo_fail:
+ return ret;
}
static void mdss_hdmi_set_mode(bool on)
diff --git a/target/target_display.c b/target/target_display.c
index a4e15e2..4b07cc8 100644
--- a/target/target_display.c
+++ b/target/target_display.c
@@ -105,3 +105,8 @@
{
return 0;
}
+
+__WEAK int target_hdmi_gpio_ctrl(bool enable)
+{
+ return 0;
+}