diff options
author | Linaro CI <ci_notify@linaro.org> | 2022-06-30 00:26:12 +0000 |
---|---|---|
committer | Linaro CI <ci_notify@linaro.org> | 2022-06-30 00:26:12 +0000 |
commit | 6c4b28e861f699610e3c973e8777a84dc12cc9d3 (patch) | |
tree | 77bf4250a747bfc1e8fa936a944f1a441210b366 | |
parent | 7f6dd2580c639ae3ce8538ce9de1ccd49343f328 (diff) | |
parent | b9bca51e30f81e4ef9afbeeb1e7ccfbd5f1ce5f4 (diff) |
Merge remote-tracking branch 'drm-msm/tracking-qcomlt-drm-msm' into integration-linux-qcomlt
-rw-r--r-- | drivers/gpu/drm/msm/hdmi/hdmi.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/msm/hdmi/hdmi.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/msm/hdmi/hdmi_hpd.c | 7 |
3 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/hdmi/hdmi.c b/drivers/gpu/drm/msm/hdmi/hdmi.c index cf24e68864ba..d1f61396bd65 100644 --- a/drivers/gpu/drm/msm/hdmi/hdmi.c +++ b/drivers/gpu/drm/msm/hdmi/hdmi.c @@ -30,6 +30,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); @@ -404,6 +406,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 736f348befb3..5e29dccf2f3e 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; }; struct hdmi_bridge { diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_hpd.c b/drivers/gpu/drm/msm/hdmi/hdmi_hpd.c index 75605ddac7c4..4048f7f3911d 100644 --- a/drivers/gpu/drm/msm/hdmi/hdmi_hpd.c +++ b/drivers/gpu/drm/msm/hdmi/hdmi_hpd.c @@ -186,6 +186,13 @@ int msm_hdmi_hpd_enable(struct drm_bridge *bridge) HDMI_HPD_CTRL_ENABLE | hpd_ctrl); spin_unlock_irqrestore(&hdmi->reg_lock, flags); + /* + * wait for a bit so that HPD is sensed if there is a cable already + * connected. Returning early will result in someone calling the + * connnector func's detect() callback too early + */ + msleep(15); + return 0; fail: |