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 5e662e3..400e554 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