diff mbox series

[v3,2/3] drm/i915/display: debugfs entry to control ignore long hpd flag

Message ID 20230207160311.930772-3-vinod.govindapillai@intel.com (mailing list archive)
State New, archived
Headers show
Series Provision to ignore long HPDs in CI systems | expand

Commit Message

Vinod Govindapillai Feb. 7, 2023, 4:03 p.m. UTC
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.

v2: Address patch styling comments (Jani Nikula)

Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
 drivers/gpu/drm/i915/display/intel_hotplug.c | 25 ++++++++++++++++++++
 1 file changed, 25 insertions(+)

Comments

Jani Nikula Feb. 14, 2023, 11:44 a.m. UTC | #1
On Tue, 07 Feb 2023, Vinod Govindapillai <vinod.govindapillai@intel.com> wrote:
> 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.
>
> v2: Address patch styling comments (Jani Nikula)
>
> Signed-off-by: Vinod Govindapillai <vinod.govindapillai@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 f0a2aa648bb8..41372a10288c 100644
> --- a/drivers/gpu/drm/i915/display/intel_hotplug.c
> +++ b/drivers/gpu/drm/i915/display/intel_hotplug.c
> @@ -939,6 +939,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;
> @@ -947,4 +970,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);

See debugfs_create_bool(). This whole patch becomes so simple that
should be part of the previous patch, really.

>  }
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.c b/drivers/gpu/drm/i915/display/intel_hotplug.c
index f0a2aa648bb8..41372a10288c 100644
--- a/drivers/gpu/drm/i915/display/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/display/intel_hotplug.c
@@ -939,6 +939,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;
@@ -947,4 +970,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);
 }