platform: msm8952: add support for split DSI for msm8956

msm8956 target supports two DSI controllers and two DSI PLLs.
Add support to enable/disable the DSI clocks depending upon
the single/split DSI configuration.

Change-Id: I43b9831f26d9d083dc9c126d3c000c1816842a0a
diff --git a/target/msm8952/target_display.c b/target/msm8952/target_display.c
index 4940086..5f8ed5a 100644
--- a/target/msm8952/target_display.c
+++ b/target/msm8952/target_display.c
@@ -283,10 +283,20 @@
 
 int target_panel_clock(uint8_t enable, struct msm_panel_info *pinfo)
 {
-	int32_t ret = 0;
+	int32_t ret = 0, flags;
 	struct mdss_dsi_pll_config *pll_data;
 	dprintf(SPEW, "target_panel_clock\n");
 
+	if (pinfo->dest == DISPLAY_2) {
+		flags = MMSS_DSI_CLKS_FLAG_DSI1;
+		if (pinfo->mipi.dual_dsi)
+			flags |= MMSS_DSI_CLKS_FLAG_DSI0;
+	} else {
+		flags = MMSS_DSI_CLKS_FLAG_DSI0;
+		if (pinfo->mipi.dual_dsi)
+			flags |= MMSS_DSI_CLKS_FLAG_DSI1;
+	}
+
 	pll_data = pinfo->mipi.dsi_pll_config;
 	pll_data->vco_delay = VCO_DELAY_USEC;
 
@@ -317,10 +327,10 @@
 				dprintf(CRITICAL, "Not able to enable second pll\n");
 		}
 
-		gcc_dsi_clocks_enable(pll_data->pclk_m, pll_data->pclk_n,
+		gcc_dsi_clocks_enable(flags, pll_data->pclk_m, pll_data->pclk_n,
 				pll_data->pclk_d);
 	} else if(!target_cont_splash_screen()) {
-		gcc_dsi_clocks_disable();
+		gcc_dsi_clocks_disable(flags);
 		mdp_clock_disable();
 		mdss_bus_clocks_disable();
 		mdp_gdsc_ctrl(enable);