]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/i915/dp: Disable unnecessary HPD polling for eDP
authorImre Deak <imre.deak@intel.com>
Wed, 9 Oct 2024 19:43:56 +0000 (22:43 +0300)
committerImre Deak <imre.deak@intel.com>
Fri, 11 Oct 2024 11:55:08 +0000 (14:55 +0300)
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
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241009194358.1321200-3-imre.deak@intel.com
drivers/gpu/drm/i915/display/intel_dp.c

index 3eff35dd59b8ad67f8095b9ce05dd28fcdfcf85e..6b27fabd61c37c51044631939bb5731a6be94dc8 100644 (file)
@@ -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);