diff options
author | Archit Taneja <architt@codeaurora.org> | 2017-09-28 05:01:43 +0530 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2021-11-18 10:50:34 +0530 |
commit | 832c64953a3c1377951c841b560098d986177107 (patch) | |
tree | 09e47ba9c2305417262cc98559d382875f0e5bc1 | |
parent | 1bb5bd3071a79a93d467aa70fa3734fa56c26ba1 (diff) |
drm/msm/hdmi: Keep the HDMI_CTRL_ENABLE bitfield always on
The ENABLE field in REG_HDMI_CTRL is required to be set to detect hot plug
events on 8x96. We don't get any HPD interrupts when HDMI bridge is
disabled.
Keep it always on. Downstream also seems to do the same thing. Restrict
this quirk only to 8x96, since we're not entirely sure whether this is
a legitimate fix or not.
Signed-off-by: Archit Taneja <architt@codeaurora.org>
-rw-r--r-- | drivers/gpu/drm/msm/hdmi/hdmi.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/msm/hdmi/hdmi.h | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/hdmi/hdmi.c b/drivers/gpu/drm/msm/hdmi/hdmi.c index 75b64e6ae035..4ffe3d2e1191 100644 --- a/drivers/gpu/drm/msm/hdmi/hdmi.c +++ b/drivers/gpu/drm/msm/hdmi/hdmi.c @@ -28,6 +28,8 @@ void msm_hdmi_set_mode(struct hdmi *hdmi, bool power_on) } } else { ctrl = HDMI_CTRL_HDMI; + if (hdmi->config->keep_ctrl_on) + ctrl |= HDMI_CTRL_ENABLE; } hdmi_write(hdmi, REG_HDMI_CTRL, ctrl); @@ -391,6 +393,7 @@ static struct hdmi_platform_config hdmi_tx_8996_config = { HDMI_CFG(pwr_clk, 8x74), HDMI_CFG(hpd_clk, 8x74), .hpd_freq = hpd_clk_freq_8x74, + .keep_ctrl_on = true, }; static const struct { diff --git a/drivers/gpu/drm/msm/hdmi/hdmi.h b/drivers/gpu/drm/msm/hdmi/hdmi.h index 82261078c6b1..5e58d894ac7d 100644 --- a/drivers/gpu/drm/msm/hdmi/hdmi.h +++ b/drivers/gpu/drm/msm/hdmi/hdmi.h @@ -112,6 +112,9 @@ struct hdmi_platform_config { /* gpio's: */ struct hdmi_gpio_data gpios[HDMI_MAX_NUM_GPIO]; + + /* caps, etc. */ + bool keep_ctrl_on; }; void msm_hdmi_set_mode(struct hdmi *hdmi, bool power_on); |