dev: gcdb: copy DSI dfps data into reserved fb memory

The data will be passed for kernel to retrieve DSI PLL codes to do
dynamic frame rate refresh.

Change-Id: I1906282b13091510122ca7e8495b141c09efd9cd
diff --git a/dev/gcdb/display/gcdb_display.c b/dev/gcdb/display/gcdb_display.c
index 1328653..fa268b1 100755
--- a/dev/gcdb/display/gcdb_display.c
+++ b/dev/gcdb/display/gcdb_display.c
@@ -199,6 +199,9 @@
 
 	ret = mdss_dsi_dfps_get_pll_codes(pinfo);
 
+	if (pinfo->dfps.dfps_fb_base)
+		memcpy(pinfo->dfps.dfps_fb_base, &pinfo->dfps,
+			sizeof(struct dfps_info));
 dfps_done:
 	return ret;
 }
@@ -449,6 +452,16 @@
 		panel.power_func = mdss_dsi_panel_power;
 		panel.pre_init_func = mdss_dsi_panel_pre_init;
 		panel.bl_func = mdss_dsi_bl_enable;
+		/*
+		 * If dfps enabled, reserve fb memory to store pll
+		 * codes and pass pll codes values to kernel.
+		 */
+		if (panel.panel_info.dfps.panel_dfps.enabled) {
+			panel.panel_info.dfps.dfps_fb_base = base;
+			base += DFPS_PLL_CODES_SIZE;
+			dprintf(SPEW, "fb_base=0x%p!\n", base);
+		}
+
 		panel.fb.base = base;
 		panel.fb.width =  panel.panel_info.xres;
 		panel.fb.height =  panel.panel_info.yres;