From 01e259a1852a6e7c2e73d2491d11a0b792edd29e Mon Sep 17 00:00:00 2001 From: Narender Ankam Date: Wed, 31 Jul 2019 13:42:25 +0530 Subject: [PATCH] msm: mdss: hdmi: adjust HDMI DDC speed configuration HDMI 2.0 compliance E-DDC test requires the DDC signal timings to meet a minimum threshold to pass the compliance test. Current DDC settings were not matching the requirement. Adjust the DDC settings to meet the threshold and also make sure to leave the remaining bits of DDC speed register untouched. Change-Id: I9a33ba38baa8be94dee5447e79ad0a3a2a0bc8be Signed-off-by: Narender Ankam --- drivers/video/fbdev/msm/mdss_hdmi_util.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/msm/mdss_hdmi_util.c b/drivers/video/fbdev/msm/mdss_hdmi_util.c index 1384c39d4c6f..c7a9c530eedb 100644 --- a/drivers/video/fbdev/msm/mdss_hdmi_util.c +++ b/drivers/video/fbdev/msm/mdss_hdmi_util.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2010-2017, The Linux Foundation. All rights reserved. +/* Copyright (c) 2010-2017, 2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -957,13 +957,17 @@ error: void hdmi_ddc_config(struct hdmi_tx_ddc_ctrl *ddc_ctrl) { + u32 ddc_speed; + if (!ddc_ctrl || !ddc_ctrl->io) { pr_err("invalid input\n"); return; } /* Configure Pre-Scale multiplier & Threshold */ - DSS_REG_W_ND(ddc_ctrl->io, HDMI_DDC_SPEED, (10 << 16) | (2 << 0)); + ddc_speed = DSS_REG_R_ND(ddc_ctrl->io, HDMI_DDC_SPEED); + ddc_speed |= (12 << 16) | (2 << 0); + DSS_REG_W_ND(ddc_ctrl->io, HDMI_DDC_SPEED, ddc_speed); /* * Setting 31:24 bits : Time units to wait before timeout