msm_shared: configure edp based on edid

Configure edp register based on panel edid which had been read
back from panel through edp aux channel.
Edid contains panel's detail timing description.

Change-Id: I99fefcca7ee3cd836f1208988908d89e039ca446
diff --git a/platform/msm_shared/edp_aux.c b/platform/msm_shared/edp_aux.c
index f7b5cfc..3cda4bb 100644
--- a/platform/msm_shared/edp_aux.c
+++ b/platform/msm_shared/edp_aux.c
@@ -49,7 +49,7 @@
 
 	bp = buf;
 	if (len < 128) {
-		dprintf(INFO, "edp_edid_bur_error: Error: len=%x\n",  len);
+		dprintf(INFO, "%s: Error: len=%x\n", __func__, len);
 		return -1;
 	}
 
@@ -57,12 +57,12 @@
 		csum += *bp++;
 
 	if (csum != 0) {
-		dprintf(INFO, "edp_edid_bur_error: Error: csum=%x\n",  csum);
+		dprintf(INFO, "%s: Error: csum=%x\n", __func__, csum);
 		return -1;
 	}
 
 	if (buf[1] != 0xff) {
-		dprintf(INFO, "edp_edid_buf_error: Error: header\n");
+		dprintf(INFO, "%s: Error: header\n", __func__);
 		return -1;
 	}
 
@@ -88,7 +88,7 @@
 	edid->id_name[2] = 'A' + data - 1;
 	edid->id_name[3] = 0;
 
-	dprintf(INFO, "%s: edid manufacturer = %s", __func__,edid->id_name);
+	dprintf(SPEW, "%s: edid manufacturer = %s", __func__, edid->id_name);
 }
 
 void edp_extract_edid_product(struct edp_edid *edid, char *buf)
@@ -104,21 +104,21 @@
 	data <<= 8;
 	edid->id_product |= data;
 
-	dprintf(INFO, "edid product = 0x%x",  edid->id_product);
+	dprintf(SPEW, "%s: edid product = 0x%x\n", __func__, edid->id_product);
 };
 
 void edp_extract_edid_version(struct edp_edid *edid, char *buf)
 {
 	edid->version = buf[0x12];
 	edid->revision = buf[0x13];
-	dprintf(INFO, "edid version = %d.%d",  edid->version,
-			edid->revision);
+	dprintf(SPEW, "%s: edid version = %d.%d", __func__,
+					edid->version, edid->revision);
 };
 
 void edp_extract_edid_ext_block_cnt(struct edp_edid *edid, char *buf)
 {
 	edid->ext_block_cnt = buf[0x7e];
-	dprintf(INFO, "edid extension = %d", edid->ext_block_cnt);
+	dprintf(SPEW, "%s: edid extension = %d", __func__, edid->ext_block_cnt);
 };
 
 void edp_extract_edid_video_support(struct edp_edid *edid, char *buf)
@@ -134,11 +134,11 @@
 			edid->color_depth *= 2;
 			edid->color_depth += 4;
 		}
-		dprintf(INFO, "Digital Video intf=%d color_depth=%d\n",
-			  edid->video_intf, edid->color_depth);
+		dprintf(SPEW, "%s: Digital Video intf=%d color_depth=%d\n",
+			  __func__, edid->video_intf, edid->color_depth);
 		return;
 	}
-	dprintf(INFO, "Error, Analog video interface");
+	dprintf(INFO, "%s: Error, Analog video interface", __func__);
 };
 
 void edp_extract_edid_feature(struct edp_edid *edid, char *buf)
@@ -161,8 +161,8 @@
 		}
 	}
 
-	dprintf(INFO, "edid dpm=%d color_format=%d",
-			edid->dpm, edid->color_format);
+	dprintf(SPEW, "%s: edid dpm=%d color_format=%d",
+			__func__, edid->dpm, edid->color_format);
 };
 
 void edp_extract_edid_detailed_timing_description(struct edp_edid *edid,
@@ -268,23 +268,23 @@
 		}
 	}
 
-	dprintf(INFO, "pixel_clock = %d\n", dp->pclk);
+	dprintf(SPEW, "%s: pixel_clock = %d\n", __func__, dp->pclk);
 
-	dprintf(INFO, "horizontal=%d, blank=%d, porch=%d, sync=%d\n"
-			,  dp->h_addressable, dp->h_blank,
+	dprintf(SPEW, "%s: horizontal=%d, blank=%d, porch=%d, sync=%d\n",
+			__func__, dp->h_addressable, dp->h_blank,
 			dp->h_fporch, dp->h_sync_pulse);
-	dprintf(INFO, "vertical=%d, blank=%d, porch=%d, vsync=%d\n"
-			,  dp->v_addressable, dp->v_blank,
+	dprintf(SPEW, "%s: vertical=%d, blank=%d, porch=%d, vsync=%d\n",
+			__func__, dp->v_addressable, dp->v_blank,
 			dp->v_fporch, dp->v_sync_pulse);
-	dprintf(INFO, "panel size in mm, width=%d height=%d\n",
-			dp->width_mm, dp->height_mm);
-	dprintf(INFO, "panel border horizontal=%d vertical=%d\n",
-				dp->h_border, dp->v_border);
-	dprintf(INFO, "flags: interlaced=%d stereo=%d sync_type=%d sync_sep=%d\n"
-			,  dp->interlaced, dp->stereo,
+	dprintf(SPEW, "%s: panel size in mm, width=%d height=%d\n",
+			__func__, dp->width_mm, dp->height_mm);
+	dprintf(SPEW, "%s: panel border horizontal=%d vertical=%d\n",
+			__func__, dp->h_border, dp->v_border);
+	dprintf(SPEW, "%s: interlaced=%d stereo=%d sync_type=%d sync_sep=%d\n",
+			__func__, dp->interlaced, dp->stereo,
 			dp->sync_type, dp->sync_separate);
-	dprintf(INFO, "polarity vsync=%d, hsync=%d\n",
-			dp->vsync_pol, dp->hsync_pol);
+	dprintf(SPEW, "%s: polarity vsync=%d, hsync=%d\n",
+			__func__, dp->vsync_pol, dp->hsync_pol);
 }
 
 
@@ -316,10 +316,10 @@
 	cnt = 5;
 	while(cnt--) {
 		ret = edp_aux_write_buf(ep, 0x50, &data, 1, 1);
-		dprintf(INFO, "edp_aux_chan_ready: ret=%d\n", ret);
+		dprintf(SPEW, "%s: ret=%d\n", __func__, ret);
 		if (ret >= 0)
 			break;
-		dprintf(INFO, "edp_aux_chan_ready: failed in write\n");
+		dprintf(INFO, "%s: failed in write\n", __func__);
 		mdelay(100);
 	}
 
@@ -338,13 +338,13 @@
 
 start:
 	cnt = 5;
-dprintf(INFO, "%s: cnt=%d\n", __func__, cnt);
+	dprintf(SPEW, "%s: cnt=%d\n", __func__, cnt);
 	/* need to write a dummy byte before read edid */
 	while(cnt--) {
 		ret = edp_aux_write_buf(ep, 0x50, &data, 1, 1);
 		if (ret >= 0)
 			break;
-		dprintf(INFO, "edp_sink_edid_read: failed in write\n");
+		dprintf(INFO, "%s: failed in write\n", __func__);
 		mdelay(100);
 	}
 
@@ -353,7 +353,7 @@
 
 	rlen = edp_aux_read_buf(ep, 0x50, 128, 1);
 
-dprintf(INFO, "edp_sink_edid_read: rlen=%d\n", rlen);
+	dprintf(SPEW, "%s: rlen=%d\n", rlen, __func__);
 
 	if (rlen < 0)
 		goto start;
@@ -430,11 +430,11 @@
 	struct edp_buf *rp;
 	int rlen;
 
-	dprintf(INFO, "%s:\n",__func__);
+	dprintf(SPEW, "%s:\n",__func__);
 
 	rlen = edp_aux_read_buf(ep, 0, len, 0);
 	if (rlen <= 0) {
-		dprintf(INFO, "edp_sink_capability_read: edp aux read failed\n");
+		dprintf(INFO, "%s: edp aux read failed\n", __func__);
 		return;
 	}
 	rp = &ep->rxp;
@@ -446,14 +446,14 @@
 	cap->minor = data & 0x0f;
 	if (--rlen <= 0)
 		return;
-	dprintf(INFO, "edp_sink_cap_read: version: %d.%d\n",  cap->major, cap->minor);
+	dprintf(SPEW, "%s: version: %d.%d\n", __func__,  cap->major, cap->minor);
 
 	data = *bp++; /* byte 1 */
 	/* 162, 270 and 540 MB, symbol rate, NOT bit rate */
 	cap->max_link_rate = data * 27;
 	if (--rlen <= 0)
 		return;
-	dprintf(INFO, "edp_sink_cap_read: link_rate=%d\n",  cap->max_link_rate);
+	dprintf(SPEW, "%s: link_rate=%d\n",  __func__, cap->max_link_rate);
 
 	data = *bp++; /* byte 2 */
 	if (data & BIT(7))
@@ -464,24 +464,24 @@
 	cap->max_lane_count = data;
 	if (--rlen <= 0)
 		return;
-	dprintf(INFO, "edp_sink_cap_read: lane_count=%d\n",  cap->max_lane_count);
+	dprintf(SPEW, "%s: lane_count=%d\n", __func__,  cap->max_lane_count);
 
 	data = *bp++; /* byte 3 */
 	if (data & BIT(0)) {
 		cap->flags |= DPCD_MAX_DOWNSPREAD_0_5;
-		dprintf(INFO, "edp_sink_cap_read: max_downspread\n");
+		dprintf(SPEW, "%s: max_downspread\n", __func__);
 	}
 
 	if (data & BIT(6)) {
 		cap->flags |= DPCD_NO_AUX_HANDSHAKE;
-		dprintf(INFO, "edp_sink_cap_read: NO Link Training\n");
+		dprintf(SPEW, "%s: NO Link Training\n", __func__);
 	}
 	if (--rlen <= 0)
 		return;
 
 	data = *bp++; /* byte 4 */
 	cap->num_rx_port = (data & BIT(0)) + 1;
-	dprintf(INFO, "edp_sink_cap_read: rx_ports=%d",  cap->num_rx_port);
+	dprintf(SPEW, "%s: rx_ports=%d", __func__,  cap->num_rx_port);
 	if (--rlen <= 0)
 		return;
 
@@ -493,14 +493,14 @@
 	data = *bp++; /* byte 8 */
 	if (data & BIT(1)) {
 		cap->flags |= DPCD_PORT_0_EDID_PRESENTED;
-		dprintf(INFO, "edp_sink_cap_read: edid presented\n");
+		dprintf(SPEW, "%s: edid presented\n", __func__);
 	}
 	if (--rlen <= 0)
 		return;
 
 	data = *bp++; /* byte 9 */
 	cap->rx_port0_buf_size = (data + 1) * 32;
-	dprintf(INFO, "edp_sink_cap_read: lane_buf_size=%d",  cap->rx_port0_buf_size);
+	dprintf(SPEW, "%s: lane_buf_size=%d", __func__, cap->rx_port0_buf_size);
 	if (--rlen <= 0)
 		return;
 
@@ -512,17 +512,17 @@
 	data = *bp++;	/* byte 12 */
 	cap->i2c_speed_ctrl = data;
 	if (cap->i2c_speed_ctrl > 0)
-		dprintf(INFO, "edp_sink_cap_read: i2c_rate=%d",  cap->i2c_speed_ctrl);
+		dprintf(SPEW, "%s: i2c_rate=%d", __func__, cap->i2c_speed_ctrl);
 	if (--rlen <= 0)
 		return;
 
 	data = *bp++;	/* byte 13 */
 	cap->scrambler_reset = data & BIT(0);
-	dprintf(INFO, "edp_sink_cap_read: scrambler_reset=%d\n",
+	dprintf(SPEW, "%s: scrambler_reset=%d\n", __func__,
 					cap->scrambler_reset);
 
 	cap->enhanced_frame = data & BIT(1);
-	dprintf(INFO, "edp_sink_cap_read: enhanced_framing=%d\n",
+	dprintf(SPEW, "%s: enhanced_framing=%d\n", __func__,
 					cap->enhanced_frame);
 	if (--rlen <= 0)
 		return;
@@ -532,7 +532,7 @@
 		cap->training_read_interval = 100; /* us */
 	else
 		cap->training_read_interval = 4000 * data; /* us */
-	dprintf(INFO, "edp_sink_cap_read: training_interval=%d\n",
+	dprintf(SPEW, "%s: training_interval=%d\n", __func__,
 			 cap->training_read_interval);
 }
 
@@ -547,9 +547,9 @@
 
 	/* skip byte 0x200 and 0x201 */
 	rlen = edp_aux_read_buf(ep, 0x202, len, 0);
-	dprintf(INFO, "%s: rlen=%d\n", __func__, rlen);
+	dprintf(SPEW, "%s: rlen=%d\n", __func__, rlen);
 	if (rlen <= 0) {
-		dprintf(INFO, "edp_link_status_read: edp aux read failed\n");
+		dprintf(SPEW, "%s: edp aux read failed\n", __func__);
 		return;
 	}
 	rp = &ep->rxp;
@@ -600,10 +600,10 @@
 	sp->req_pre_emphasis[3] = data & 0x03;
 
 	bp = rp->data;
-dprintf(INFO, "%s: %x %x %x %x %x %x\n", __func__, *bp,
+	dprintf(SPEW, "%s: %x %x %x %x %x %x\n", __func__, *bp,
 	*(bp+1), *(bp+2), *(bp+3), *(bp+4), *(bp+5));
 
-	dprintf(INFO, "%s: align=%d v=%d p=%d\n", __func__,
+	dprintf(SPEW, "%s: align=%d v=%d p=%d\n", __func__,
 	sp->interlane_align_done, sp->req_voltage_swing[0], sp->req_pre_emphasis[0]);
 }
 
@@ -613,7 +613,8 @@
 	char buf[4];
 	int len = 0;
 
-	dprintf(INFO, "cap_lane_set: bw=%x lane=%d\n", ep->link_rate, ep->lane_cnt);
+	dprintf(SPEW, "%s: bw=%x lane=%d\n", __func__,
+				ep->link_rate, ep->lane_cnt);
 	buf[0] = ep->link_rate;
 	buf[1] = ep->lane_cnt;
 	len = edp_aux_write_buf(ep, 0x100, buf, 2, 0);
@@ -639,7 +640,7 @@
 	for (i = 0; i < 4; i++)
 		buf[i] = voltage_level | pre_emphasis_level;
 
-	dprintf(INFO, "%s: p|v=0x%x\n", __func__, voltage_level | pre_emphasis_level);
+	dprintf(SPEW, "%s: p|v=0x%x\n", __func__, voltage_level | pre_emphasis_level);
 	return edp_aux_write_buf(ep, 0x103, buf, 4, 0);
 }
 
@@ -677,7 +678,7 @@
 		data |= ep->link_status.lane_01_status;
 	}
 
-dprintf(INFO, "clock_recovery_done: data=%x mask=%x\n",  data, mask);
+	dprintf(SPEW, "%s: data=%x mask=%x\n", __func__, data, mask);
 	data &= mask;
 	if (data == mask) /* all done */
 		return 1;
@@ -707,7 +708,7 @@
 		data |= ep->link_status.lane_01_status;
 	}
 
-dprintf(INFO, "%s: data=%x mask=%x\n", __func__,  data, mask);
+	dprintf(SPEW, "%s: data=%x mask=%x\n", __func__,  data, mask);
 
 	data &= mask;
 	if (data == mask)/* all done */
@@ -738,7 +739,7 @@
 	}
 
 	ep->p_level = max;
-	dprintf(INFO, "train_set_adjust: v_level=%d, p_level=%d\n",
+	dprintf(SPEW, "%s: v_level=%d, p_level=%d\n", __func__,
 					ep->v_level, ep->p_level);
 }
 
@@ -762,7 +763,7 @@
 	}
 
 	if (cnt == 0)
-		dprintf(INFO, "%s: set link_train=%d failed\n",  __func__, train);
+		dprintf(SPEW, "%s: set link_train=%d failed\n",  __func__, train);
 }
 
 char vm_pre_emphasis[4][4] = {
@@ -784,7 +785,7 @@
 	int value0 = 0;
 	int value1 = 0;
 
-	dprintf(INFO, "voltage_pre_emphasis_set: v=%d p=%d\n",  ep->v_level, ep->p_level);
+	dprintf(SPEW, "%s: v=%d p=%d\n", __func__, ep->v_level, ep->p_level);
 
 	value0 = vm_pre_emphasis[(int)(ep->v_level)][(int)(ep->p_level)];
 	value1 = vm_voltage_swing[(int)(ep->v_level)][(int)(ep->p_level)];
@@ -793,7 +794,7 @@
 	if (value0 != 0xFF && value1 != 0xFF) {
 		edp_write(EDP_BASE + EDP_PHY_EDPPHY_GLB_VM_CFG0, value0);
 		edp_write(EDP_BASE + EDP_PHY_EDPPHY_GLB_VM_CFG1, value1);
-		dprintf(INFO, "voltage_pre_emphasis_set: value0=0x%x value1=0x%x\n",
+		dprintf(SPEW, "%s: value0=0x%x value1=0x%x\n", __func__,
 						value0, value1);
 		edp_lane_set_write(ep, ep->v_level, ep->p_level);
 	}
@@ -805,7 +806,7 @@
 	int tries, old_v_level;
 	int ret = 0;
 
-	dprintf(INFO, "link_train_1\n");
+	dprintf(SPEW, "%s:\n", __func__);
 
 	edp_host_train_set(ep, 0x01); /* train_1 */
 	edp_voltage_pre_emphasise_set(ep);
@@ -851,7 +852,7 @@
 	int ret = 0;
 	char pattern;
 
-	dprintf(INFO, "link_train_2\n");
+	dprintf(SPEW, "%s\n", __func__);
 
 	if (ep->dpcd.flags & DPCD_TPS3)
 		pattern = 0x03;
@@ -894,7 +895,7 @@
 
 static void edp_clear_training_pattern(struct edp_aux_ctrl *ep)
 {
-	dprintf(INFO, "clear_training_pattern:\n");
+	dprintf(SPEW, "%s:\n", __func__);
 	edp_write(EDP_BASE + EDP_STATE_CTRL, 0);
 	edp_train_pattern_set_write(ep, 0);
 	udelay(ep->dpcd.training_read_interval);
@@ -904,10 +905,11 @@
 {
 	int ret = 0;
 
-	dprintf(INFO, "%s:\n", __func__);
+	dprintf(SPEW, "%s:\n", __func__);
 	ret = edp_aux_chan_ready(ep);
 	if (ret == 0) {
-		dprintf(INFO, "link_train: LINK Train failed: aux chan NOT ready\n");
+		dprintf(INFO, "%s: Error: aux chan NOT ready\n",
+							__func__);
 		return ret;
 	}
 
@@ -930,7 +932,7 @@
 		if (edp_link_rate_shift(ep) == 0) {
 			goto train_start;
 		} else {
-			dprintf(INFO, "Training 1 failed\n");
+			dprintf(INFO, "%s: Training 1 failed\n", __func__);
 			ret = -1;
 			goto clear;
 		}
@@ -944,7 +946,7 @@
 		if (edp_link_rate_shift(ep) == 0) {
 			goto train_start;
 		} else {
-			dprintf(INFO, "Training 2 failed\n");
+			dprintf(INFO, "%s: Training 2 failed\n", __func__);
 			ret = -1;
 			goto clear;
 		}