dev: gcdb: Add return status for gcdb init
Add error codes and success return status
for gcdb initialization function
Change-Id: I5613a712ddae8a180301d4e1f8ad7d628d7b3922
diff --git a/dev/gcdb/display/gcdb_display.c b/dev/gcdb/display/gcdb_display.c
index 948025e..1308f29 100755
--- a/dev/gcdb/display/gcdb_display.c
+++ b/dev/gcdb/display/gcdb_display.c
@@ -192,20 +192,22 @@
memcpy(dsi_video_mode_phy_db.laneCfg, panel_lane_config, LANE_SIZE);
}
-void gcdb_display_init(uint32_t rev, void *base)
+int gcdb_display_init(uint32_t rev, void *base)
{
+ int ret = NO_ERROR;
if (!oem_panel_select(&panelstruct, &(panel.panel_info),
&dsi_video_mode_phy_db)) {
dprintf(CRITICAL, "Target panel init not found!\n");
- return;
+ ret = ERR_NOT_SUPPORTED;
+ goto error_gcdb_display_init;
}
-
init_platform_data();
if (dsi_panel_init(&(panel.panel_info), &panelstruct)) {
dprintf(CRITICAL, "DSI panel init failed!\n");
- return;
+ ret = ERROR;
+ goto error_gcdb_display_init;
}
panel.panel_info.mipi.mdss_dsi_phy_db = &dsi_video_mode_phy_db;
@@ -220,12 +222,11 @@
panel.fb.format = panel.panel_info.mipi.dst_format;
panel.mdp_rev = rev;
- if (msm_display_init(&panel)) {
- dprintf(CRITICAL, "Display init failed!\n");
- return;
- }
+ ret = msm_display_init(&panel);
- display_enable = 1;
+error_gcdb_display_init:
+ display_enable = ret ? 0 : 1;
+ return ret;
}
void gcdb_display_shutdown(void)
diff --git a/dev/gcdb/display/gcdb_display.h b/dev/gcdb/display/gcdb_display.h
index d7249e5..1de05fb 100755
--- a/dev/gcdb/display/gcdb_display.h
+++ b/dev/gcdb/display/gcdb_display.h
@@ -57,7 +57,7 @@
struct msm_panel_info *pinfo);
int target_ldo_ctrl(uint8_t enable);
-void gcdb_display_init(unsigned int rev, void *base);
+int gcdb_display_init(uint32_t rev, void *base);
void gcdb_display_shutdown();
#endif /*_GCDB_DISPLAY_H_ */