[Intel-gfx] [PATCH 2/2] drm/i915: debugfs entry to control ignore long hpd flag
Vinod Govindapillai
vinod.govindapillai at intel.com
Fri Oct 7 11:39:58 UTC 2022
Knob to control ignoring the long hpds. Set this to true will
start ignoring the long HPDs generated by the displays. Useful
for use cases like CI systems where we dont expect to disconnect
the panels.
Signed-off-by: Vinod Govindapillai <vinod.govindapillai at intel.com>
---
drivers/gpu/drm/i915/display/intel_hotplug.c | 25 ++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.c b/drivers/gpu/drm/i915/display/intel_hotplug.c
index 352a1b53b63e..45c67f0f1c9f 100644
--- a/drivers/gpu/drm/i915/display/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/display/intel_hotplug.c
@@ -936,6 +936,29 @@ static const struct file_operations i915_hpd_short_storm_ctl_fops = {
.write = i915_hpd_short_storm_ctl_write,
};
+static int i915_ignore_long_hpd_set(void *data, u64 val)
+{
+ struct drm_i915_private *i915 = data;
+
+ drm_dbg_kms(&i915->drm, "Ignoring long HPDs: %s\n", str_yes_no(val));
+
+ i915->display.hotplug.ignore_long_hpd = val;
+
+ return 0;
+}
+
+static int i915_ignore_long_hpd_get(void *data, u64 *val)
+{
+ struct drm_i915_private *i915 = data;
+
+ *val = i915->display.hotplug.ignore_long_hpd;
+
+ return 0;
+}
+
+DEFINE_SIMPLE_ATTRIBUTE(i915_ignore_long_hpd_fops, i915_ignore_long_hpd_get,
+ i915_ignore_long_hpd_set, "%llu\n");
+
void intel_hpd_debugfs_register(struct drm_i915_private *i915)
{
struct drm_minor *minor = i915->drm.primary;
@@ -944,4 +967,6 @@ void intel_hpd_debugfs_register(struct drm_i915_private *i915)
i915, &i915_hpd_storm_ctl_fops);
debugfs_create_file("i915_hpd_short_storm_ctl", 0644, minor->debugfs_root,
i915, &i915_hpd_short_storm_ctl_fops);
+ debugfs_create_file("i915_ignore_long_hpd", 0644, minor->debugfs_root,
+ i915, &i915_ignore_long_hpd_fops);
}
--
2.34.1
More information about the Intel-gfx
mailing list