summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.c b/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.c
index 4769f1333ab4..21b89663a9c3 100644
--- a/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.c
+++ b/drivers/gpu/drm/msm/hdmi-staging/sde_hdmi.c
@@ -1339,7 +1339,8 @@ static int _sde_hdmi_hpd_enable(struct sde_hdmi *sde_hdmi)
HDMI_HPD_CTRL_ENABLE | hpd_ctrl);
spin_unlock_irqrestore(&hdmi->reg_lock, flags);
- hdmi->hpd_off = false;
+ if (!sde_hdmi->non_pluggable)
+ hdmi->hpd_off = false;
SDE_DEBUG("enabled hdmi hpd\n");
return 0;
@@ -1401,7 +1402,7 @@ static void _sde_hdmi_hpd_disable(struct sde_hdmi *sde_hdmi)
int i, ret = 0;
unsigned long flags;
- if (hdmi->hpd_off) {
+ if (!sde_hdmi->non_pluggable && hdmi->hpd_off) {
pr_warn("hdmi display hpd was already disabled\n");
return;
}
@@ -1432,7 +1433,9 @@ static void _sde_hdmi_hpd_disable(struct sde_hdmi *sde_hdmi)
pr_warn("failed to disable hpd regulator: %s (%d)\n",
config->hpd_reg_names[i], ret);
}
- hdmi->hpd_off = true;
+
+ if (!sde_hdmi->non_pluggable)
+ hdmi->hpd_off = true;
SDE_DEBUG("disabled hdmi hpd\n");
}