platform: msm_shared: Support for panel signature read API
Since panel id read function is common accross all the platforms
add this API to msm_shared so that it is shared by all targets.
Change-Id: I7ac0e7cad94b42a647c8cb3803e5d535ef99baa3
diff --git a/platform/msm_shared/mipi_dsi.c b/platform/msm_shared/mipi_dsi.c
index 9dfbd8b..1962081 100644
--- a/platform/msm_shared/mipi_dsi.c
+++ b/platform/msm_shared/mipi_dsi.c
@@ -114,6 +114,38 @@
return NULL;
}
+static uint32_t response_value = 0;
+
+uint32_t mdss_dsi_read_panel_signature(uint32_t panel_signature)
+{
+ uint32_t rec_buf[1];
+ uint32_t *lp = rec_buf, data;
+ int ret = response_value;
+
+#if (DISPLAY_TYPE_MDSS == 1)
+ if (ret && ret != panel_signature)
+ goto exit_read_signature;
+
+ ret = mipi_dsi_cmds_tx(&read_ddb_start_cmd, 1);
+ if (ret)
+ goto exit_read_signature;
+ if (!mdss_dsi_cmds_rx(&lp, 1, 1))
+ goto exit_read_signature;
+
+ data = ntohl(*lp);
+ data = data >> 8;
+ response_value = data;
+ if (response_value != panel_signature)
+ ret = response_value;
+
+exit_read_signature:
+ /* Keep the non detectable panel at the end and set panel signature 0xFFFF */
+ if (panel_signature == 0xFFFF)
+ ret = 0;
+#endif
+ return ret;
+}
+
int mdss_dual_dsi_cmd_dma_trigger_for_panel()
{
uint32_t ReadValue;
@@ -464,7 +496,7 @@
pinfo->num_of_panel_cmds);
if (!status && target_panel_auto_detect_enabled())
status =
- target_read_panel_signature(pinfo->signature);
+ mdss_dsi_read_panel_signature(pinfo->signature);
}
}
#endif