kernel/0194-fix-Solving-hdmi-display-compatibility-issues.patch

49 lines
1.4 KiB
Diff
Raw Normal View History

2024-12-15 18:29:23 +00:00
From 1e8f9deeff0ba55e10dc9801a21e6f020b51e2b3 Mon Sep 17 00:00:00 2001
From: denglei <denglei@eswincomputing.com>
Date: Tue, 22 Oct 2024 09:53:00 +0800
Subject: [PATCH 194/219] fix:Solving hdmi display compatibility issues.
Changelogs:
HKC monitor, after multiple hot plugging, fails to display.
Signed-off-by: denglei <denglei@eswincomputing.com>
---
drivers/gpu/drm/eswin/dw-hdmi.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/eswin/dw-hdmi.c b/drivers/gpu/drm/eswin/dw-hdmi.c
index 552b80ccacdb..ba5aae273162 100644
--- a/drivers/gpu/drm/eswin/dw-hdmi.c
+++ b/drivers/gpu/drm/eswin/dw-hdmi.c
@@ -311,7 +311,9 @@ static void repo_hpd_event(struct work_struct *p_work)
mutex_unlock(&hdmi->mutex);
if (hdmi->bridge.dev) {
- drm_helper_hpd_irq_event(hdmi->bridge.dev);
+ if (drm_helper_hpd_irq_event(hdmi->bridge.dev)) {
+ dev_info(hdmi->dev, "hpd event report status:%d\n", hdmi->last_connector_result);
+ }
}
msleep(150);
@@ -632,6 +634,7 @@ static int dw_hdmi_i2c_xfer(struct i2c_adapter *adap,
}
if (ret < 0) {
dev_info(hdmi->dev, "i2c transfer fail\n");
+ udelay(200 * 1000);
break;
}
}
@@ -2748,6 +2751,8 @@ static enum drm_connector_status dw_hdmi_detect(struct dw_hdmi *hdmi)
result = hdmi->phy.ops->read_hpd(hdmi, hdmi->phy.data);
hdmi->last_connector_result = result;
+ dev_dbg(hdmi->dev, "detect connector status:%d\n", result);
+
return result;
}
--
2.47.0