]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/i915/pps: Let calling intel_pps_vdd_{on, off}_unlocked() w/o PPS lock held
authorImre Deak <imre.deak@intel.com>
Mon, 24 Mar 2025 18:01:44 +0000 (20:01 +0200)
committerImre Deak <imre.deak@intel.com>
Tue, 25 Mar 2025 12:07:19 +0000 (14:07 +0200)
After a follow-up change on non-eDP outputs
intel_pps_vdd_{on,off}_unlocked() can be called without the PPS lock
held, allow for this.

Suggested-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://lore.kernel.org/r/20250324180145.142884-2-imre.deak@intel.com
drivers/gpu/drm/i915/display/intel_pps.c

index 6a92acfa1634ac4b0b6a57b2a8baf34643c2f605..b9b3b2803e8543cd8594522725d223290a887865 100644 (file)
@@ -744,11 +744,11 @@ bool intel_pps_vdd_on_unlocked(struct intel_dp *intel_dp)
        i915_reg_t pp_stat_reg, pp_ctrl_reg;
        bool need_to_disable = !intel_dp->pps.want_panel_vdd;
 
-       lockdep_assert_held(&display->pps.mutex);
-
        if (!intel_dp_is_edp(intel_dp))
                return false;
 
+       lockdep_assert_held(&display->pps.mutex);
+
        cancel_delayed_work(&intel_dp->pps.panel_vdd_work);
        intel_dp->pps.want_panel_vdd = true;
 
@@ -925,11 +925,11 @@ void intel_pps_vdd_off_unlocked(struct intel_dp *intel_dp, bool sync)
 {
        struct intel_display *display = to_intel_display(intel_dp);
 
-       lockdep_assert_held(&display->pps.mutex);
-
        if (!intel_dp_is_edp(intel_dp))
                return;
 
+       lockdep_assert_held(&display->pps.mutex);
+
        INTEL_DISPLAY_STATE_WARN(display, !intel_dp->pps.want_panel_vdd,
                                 "[ENCODER:%d:%s] %s VDD not forced on",
                                 dp_to_dig_port(intel_dp)->base.base.base.id,