summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev
diff options
context:
space:
mode:
authorNarender Ankam <nankam@codeaurora.org>2019-08-29 15:46:57 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2020-03-03 02:31:49 -0800
commit2a20222495d3879a2f6061bd7a3f5a2e1350cfcb (patch)
treeffc94e628e3a89690275e32f515f07f9a0b456b4 /drivers/video/fbdev
parent46b20db2ce8fa40fb4e85fe206695d03365a12ca (diff)
msm: mdss: hdmi: set max tmds clock rate correctly
While parsing HDMI 1.4 VSDB or HDMI Forum VSDB, set max tmds clock rate only if respective byte is a non zero value. Change-Id: I07b51156038c8b8914f6f1fc1527eaad8a99d7a1 Signed-off-by: Narender Ankam <nankam@codeaurora.org> Signed-off-by: Ramendra Kumar <ramendra@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
-rw-r--r--drivers/video/fbdev/msm/mdss_hdmi_edid.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/video/fbdev/msm/mdss_hdmi_edid.c b/drivers/video/fbdev/msm/mdss_hdmi_edid.c
index 409fb99cfc55..9215a766559b 100644
--- a/drivers/video/fbdev/msm/mdss_hdmi_edid.c
+++ b/drivers/video/fbdev/msm/mdss_hdmi_edid.c
@@ -1370,8 +1370,10 @@ static void hdmi_edid_extract_sink_caps(struct hdmi_edid_ctrl *edid_ctrl,
return;
/* Max TMDS clock is in multiples of 5Mhz. */
- if (len >= 7)
+ if (len >= 7 && vsd[7]) {
edid_ctrl->sink_caps.max_pclk_in_hz = vsd[7] * 5000000;
+ DEV_DBG("%s: MaxTMDS=%dMHz\n", __func__, (u32)vsd[7] * 5);
+ }
vsd = hdmi_edid_find_hfvsdb(in_buf);
@@ -1384,9 +1386,13 @@ static void hdmi_edid_extract_sink_caps(struct hdmi_edid_ctrl *edid_ctrl,
* the sink shall set this filed to 0. The max TMDS support
* clock Rate = Max_TMDS_Character_Rates * 5Mhz.
*/
- if (vsd[5] != 0)
+ if (vsd[5] != 0) {
edid_ctrl->sink_caps.max_pclk_in_hz =
vsd[5] * 5000000;
+ DEV_DBG("%s: HF-VSDB: MaxTMDS=%dMHz\n",
+ __func__, (u32)vsd[5] * 5);
+ }
+
edid_ctrl->sink_caps.scdc_present =
(vsd[6] & 0x80) ? true : false;
edid_ctrl->sink_caps.scramble_support =
@@ -1464,9 +1470,6 @@ static u32 hdmi_edid_extract_ieee_reg_id(struct hdmi_edid_ctrl *edid_ctrl,
DEV_DBG("%s: EDID: VSD PhyAddr=%04x\n", __func__,
((u32)vsd[4] << 8) + (u32)vsd[5]);
- if (len >= 7)
- DEV_DBG("%s: MaxTMDS=%dMHz\n", __func__, (u32)vsd[7] * 5);
-
edid_ctrl->physical_address = ((u16)vsd[4] << 8) + (u16)vsd[5];
return ((u32)vsd[3] << 16) + ((u32)vsd[2] << 8) + (u32)vsd[1];