diff options
| author | Abhinav Kumar <abhinavk@codeaurora.org> | 2019-03-01 16:19:12 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-03-26 16:18:20 -0700 |
| commit | 1b1e63b1a7664689886f941baba0fe477db01a0e (patch) | |
| tree | 027b5ccf0dd4c87706c9e254b3e8e8038dbdc744 | |
| parent | 90059640cc78a46b8201bc33a6c65361d1ae19de (diff) | |
drm/msm: 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: I1eb9304f219906e48f8dec988cd818b879911e71
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
| -rw-r--r-- | drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_util.c | 9 | ||||
| -rw-r--r-- | drivers/gpu/drm/msm/hdmi/hdmi_util.c | 12 |
2 files changed, 16 insertions, 5 deletions
diff --git a/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_util.c b/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_util.c index 30d262f2b0d4..2928e2ec5b83 100644 --- a/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_util.c +++ b/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi_util.c @@ -874,14 +874,19 @@ void sde_hdmi_ddc_config(void *hdmi_display) { struct sde_hdmi *display = (struct sde_hdmi *)hdmi_display; struct hdmi *hdmi = display->ctrl.ctrl; + uint32_t ddc_speed; if (!hdmi) { pr_err("Invalid parameters\n"); return; } + + ddc_speed = hdmi_read(hdmi, REG_HDMI_DDC_SPEED); + ddc_speed |= HDMI_DDC_SPEED_THRESHOLD(2); + ddc_speed |= HDMI_DDC_SPEED_PRESCALE(12); + hdmi_write(hdmi, REG_HDMI_DDC_SPEED, - HDMI_DDC_SPEED_THRESHOLD(2) | - HDMI_DDC_SPEED_PRESCALE(10)); + ddc_speed); hdmi_write(hdmi, REG_HDMI_DDC_SETUP, HDMI_DDC_SETUP_TIMEOUT(0xff)); diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_util.c b/drivers/gpu/drm/msm/hdmi/hdmi_util.c index c7cfa38ed3ad..a8142e5c0fbb 100644 --- a/drivers/gpu/drm/msm/hdmi/hdmi_util.c +++ b/drivers/gpu/drm/msm/hdmi/hdmi_util.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 The Linux Foundation. All rights reserved. + * Copyright (c) 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 as published by @@ -19,14 +19,20 @@ void init_ddc(struct hdmi *hdmi) { + + uint32_t ddc_speed; + hdmi_write(hdmi, REG_HDMI_DDC_CTRL, HDMI_DDC_CTRL_SW_STATUS_RESET); hdmi_write(hdmi, REG_HDMI_DDC_CTRL, HDMI_DDC_CTRL_SOFT_RESET); + ddc_speed = hdmi_read(hdmi, REG_HDMI_DDC_SPEED); + ddc_speed |= HDMI_DDC_SPEED_THRESHOLD(2); + ddc_speed |= HDMI_DDC_SPEED_PRESCALE(12); + hdmi_write(hdmi, REG_HDMI_DDC_SPEED, - HDMI_DDC_SPEED_THRESHOLD(2) | - HDMI_DDC_SPEED_PRESCALE(10)); + ddc_speed); hdmi_write(hdmi, REG_HDMI_DDC_SETUP, HDMI_DDC_SETUP_TIMEOUT(0xff)); |
