[igt-dev] [PATCH i-g-t 21/24] lib/igt_debugfs: Add suppress wakeup hpds enable for display

Petri Latvala petri.latvala at intel.com
Thu Jun 3 12:46:45 UTC 2021


On Thu, Jun 03, 2021 at 05:50:24PM +0530, venkata.sai.patnana at intel.com wrote:
> From: Mohammed Khajapasha <mohammed.khajapasha at intel.com>
> 
> Enable suppress wakeup hpds for display, monitors like
> LG 27UL650-W, 27UK850 goes into power sleep state and
> generates long duration hotplug events even the monitor
> connected for display, hence enabling suppress wakeup using
> debugfs.
> 
> Cc: Petri Latvala <petri.latvala at intel.com>
> Cc: Imre Deak <imre.deak at intel.com>
> Signed-off-by: Mohammed Khajapasha <mohammed.khajapasha at intel.com>
> (cherry picked from commit 46879c55ea49ecc9cefe7051358e647964085253)
> ---
>  lib/igt_debugfs.c | 22 ++++++++++++++++++++++
>  lib/igt_debugfs.h |  1 +
>  lib/igt_kms.c     |  3 +++
>  3 files changed, 26 insertions(+)
> 
> diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c
> index 2f58519a2b..503ae7f905 100644
> --- a/lib/igt_debugfs.c
> +++ b/lib/igt_debugfs.c
> @@ -675,6 +675,28 @@ void igt_require_hpd_storm_ctl(int drm_fd)
>  	close(fd);
>  }
>  
> +/**
> + * igt_suppress_wake_hpd:
> + *
> + * Enable/disable suppress wakeup hpds for power state connectors
> + * Monitors like LG 27UL650-W, 27UK850 goes into power sleep state
> + * and generates long duration hotplug events even the monitor
> + * connected for display.
> + */
> +void igt_suppress_wakeup_hpd(int drm_fd, bool enable)
> +{
> +	int fd = igt_debugfs_open(drm_fd, "i915_suppress_wakeup_hpd", O_WRONLY);

This file is not in upstream kernel yet. What's the status of that?

-- 
Petri Latvala


> +
> +	if (fd < 0) {
> +		igt_debug("couldn't open suppress wakeup hpd file\n");
> +		return;
> +	}
> +
> +	igt_assert_eq(write(fd, enable ? "1" : "0", 1), 1);
> +
> +	close(fd);
> +}
> +
>  static igt_pipe_crc_t *
>  pipe_crc_new(int fd, enum pipe pipe, const char *source, int flags)
>  {
> diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h
> index d43ba6c6c7..ac97876b85 100644
> --- a/lib/igt_debugfs.h
> +++ b/lib/igt_debugfs.h
> @@ -115,6 +115,7 @@ void igt_hpd_storm_set_threshold(int fd, unsigned int threshold);
>  void igt_hpd_storm_reset(int fd);
>  bool igt_hpd_storm_detected(int fd);
>  void igt_require_hpd_storm_ctl(int fd);
> +void igt_suppress_wakeup_hpd(int fd, bool enable);
>  
>  /*
>   * Drop caches
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index b11c8c27a6..1e3505e1b0 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -2140,6 +2140,9 @@ void igt_display_require(igt_display_t *display, int drm_fd)
>  	display->drm_fd = drm_fd;
>  	is_i915_dev = is_i915_device(drm_fd);
>  
> +	/* enable suppress wakeup hpds */
> +	igt_suppress_wakeup_hpd(display->drm_fd, true);
> +
>  	drmSetClientCap(drm_fd, DRM_CLIENT_CAP_WRITEBACK_CONNECTORS, 1);
>  
>  	resources = drmModeGetResources(display->drm_fd);
> -- 
> 2.25.1
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev


More information about the igt-dev mailing list