diff mbox series

[v2,2/4] drm/i915/dp: Disable unnecessary HPD polling for eDP

Message ID 20241009194358.1321200-3-imre.deak@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/xe: Fix HPD interrupt enabling during runtime resume | expand

Commit Message

Imre Deak Oct. 9, 2024, 7:43 p.m. UTC
A registered eDP connector is considered to be always connected, so it's
unnecessary to poll it for a connect/disconnect event. Polling it
involves AUX accesses toggling the panel power, which in turn can
generate a spurious short HPD pulse and possibly a new poll cycle via
the short HPD handler runtime resuming the device. Avoid this by
disabling the polling for eDP connectors.

This avoids IGT tests timing out while waiting for the device to runtime
suspend, the timeout caused by the above runtime resume->poll->suspend->
resume cycle keeping the device in the resumed state.

Testcase: igt/kms_pm_rpm/unverisal-planes
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Cavitt, Jonathan Oct. 9, 2024, 8:38 p.m. UTC | #1
-----Original Message-----
From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Imre Deak
Sent: Wednesday, October 9, 2024 12:44 PM
To: intel-xe@lists.freedesktop.org; intel-gfx@lists.freedesktop.org
Subject: [PATCH v2 2/4] drm/i915/dp: Disable unnecessary HPD polling for eDP
> 
> A registered eDP connector is considered to be always connected, so it's
> unnecessary to poll it for a connect/disconnect event. Polling it
> involves AUX accesses toggling the panel power, which in turn can
> generate a spurious short HPD pulse and possibly a new poll cycle via
> the short HPD handler runtime resuming the device. Avoid this by
> disabling the polling for eDP connectors.
> 
> This avoids IGT tests timing out while waiting for the device to runtime
> suspend, the timeout caused by the above runtime resume->poll->suspend->
> resume cycle keeping the device in the resumed state.
> 
> Testcase: igt/kms_pm_rpm/unverisal-planes
> Signed-off-by: Imre Deak <imre.deak@intel.com>

LGTM.

Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
-Jonathan Cavitt

> ---
>  drivers/gpu/drm/i915/display/intel_dp.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 3eff35dd59b8a..6b27fabd61c37 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -6476,7 +6476,8 @@ intel_dp_init_connector(struct intel_digital_port *dig_port,
>  	if (!HAS_GMCH(dev_priv) && DISPLAY_VER(dev_priv) < 12)
>  		connector->interlace_allowed = true;
>  
> -	intel_connector->polled = DRM_CONNECTOR_POLL_HPD;
> +	if (type != DRM_MODE_CONNECTOR_eDP)
> +		intel_connector->polled = DRM_CONNECTOR_POLL_HPD;
>  	intel_connector->base.polled = intel_connector->polled;
>  
>  	intel_connector_attach_encoder(intel_connector, intel_encoder);
> -- 
> 2.44.2
> 
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 3eff35dd59b8a..6b27fabd61c37 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -6476,7 +6476,8 @@  intel_dp_init_connector(struct intel_digital_port *dig_port,
 	if (!HAS_GMCH(dev_priv) && DISPLAY_VER(dev_priv) < 12)
 		connector->interlace_allowed = true;
 
-	intel_connector->polled = DRM_CONNECTOR_POLL_HPD;
+	if (type != DRM_MODE_CONNECTOR_eDP)
+		intel_connector->polled = DRM_CONNECTOR_POLL_HPD;
 	intel_connector->base.polled = intel_connector->polled;
 
 	intel_connector_attach_encoder(intel_connector, intel_encoder);