-----Original Message----- From: Intel-xe <intel-xe-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Imre Deak Sent: Wednesday, October 9, 2024 12:44 PM To: intel-xe@xxxxxxxxxxxxxxxxxxxxx; intel-gfx@xxxxxxxxxxxxxxxxxxxxx Subject: [PATCH v2 1/4] drm/i915/dp: Assume panel power is off if runtime suspended > > If the device is runtime suspended the eDP panel power is also off. > Ignore a short HPD on eDP if the device is suspended accordingly, > instead of checking the panel power state via the PPS registers for the > same purpose. The latter involves runtime resuming the device > unnecessarily, in a frequent scenario where the panel generates a > spurious short HPD after disabling the panel power and the device is > runtime suspended. > > Signed-off-by: Imre Deak <imre.deak@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_dp.c | 5 ++++- > drivers/gpu/drm/i915/intel_runtime_pm.h | 8 +++++++- > drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h | 8 ++++++++ > 3 files changed, 19 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c > index fbb096be02ade..3eff35dd59b8a 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -85,6 +85,7 @@ > #include "intel_pch_display.h" > #include "intel_pps.h" > #include "intel_psr.h" > +#include "intel_runtime_pm.h" > #include "intel_quirks.h" > #include "intel_tc.h" > #include "intel_vdsc.h" > @@ -6054,7 +6055,9 @@ intel_dp_hpd_pulse(struct intel_digital_port *dig_port, bool long_hpd) > u8 dpcd[DP_RECEIVER_CAP_SIZE]; > > if (dig_port->base.type == INTEL_OUTPUT_EDP && > - (long_hpd || !intel_pps_have_panel_power_or_vdd(intel_dp))) { > + (long_hpd || > + intel_runtime_pm_suspended(&i915->runtime_pm) || > + !intel_pps_have_panel_power_or_vdd(intel_dp))) {