]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/bw: abstract intel_bw_pmdemand_needs_update()
authorJani Nikula <jani.nikula@intel.com>
Wed, 25 Jun 2025 10:32:22 +0000 (13:32 +0300)
committerJani Nikula <jani.nikula@intel.com>
Thu, 26 Jun 2025 08:55:53 +0000 (11:55 +0300)
Add intel_bw_pmdemand_needs_update() helper to avoid looking at struct
intel_bw_state internals outside of intel_bw.c.

Reviewed-by: Imre Deak <imre.deak@intel.com>
Link: https://lore.kernel.org/r/163fda39da2e1cf0f0c4fcb9c71103c98863179e.1750847509.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_bw.c
drivers/gpu/drm/i915/display/intel_bw.h
drivers/gpu/drm/i915/display/intel_pmdemand.c

index 8f5bc6872edae6f89c0ca289ec7a1e4ce3db8fc0..7a014b28312a2096d18c9f6224236b5d0e952e97 100644 (file)
@@ -1651,3 +1651,17 @@ int intel_bw_init(struct intel_display *display)
 
        return 0;
 }
+
+bool intel_bw_pmdemand_needs_update(struct intel_atomic_state *state)
+{
+       const struct intel_bw_state *new_bw_state, *old_bw_state;
+
+       new_bw_state = intel_atomic_get_new_bw_state(state);
+       old_bw_state = intel_atomic_get_old_bw_state(state);
+
+       if (new_bw_state &&
+           new_bw_state->qgv_point_peakbw != old_bw_state->qgv_point_peakbw)
+               return true;
+
+       return false;
+}
index eb2cc883e9c1e3a1b34a641faf822e8559b7a1da..0acc6f19c9814627429e7db59096495d0285441f 100644 (file)
@@ -76,4 +76,6 @@ int intel_bw_min_cdclk(struct intel_display *display,
 void intel_bw_update_hw_state(struct intel_display *display);
 void intel_bw_crtc_disable_noatomic(struct intel_crtc *crtc);
 
+bool intel_bw_pmdemand_needs_update(struct intel_atomic_state *state);
+
 #endif /* __INTEL_BW_H__ */
index eeb88f9fc92dc7c856488cabdc1cfe692ce818a6..8334744a2e23a06856884a04228190196f46255f 100644 (file)
@@ -294,16 +294,12 @@ intel_pmdemand_connector_needs_update(struct intel_atomic_state *state)
 
 static bool intel_pmdemand_needs_update(struct intel_atomic_state *state)
 {
-       const struct intel_bw_state *new_bw_state, *old_bw_state;
        const struct intel_cdclk_state *new_cdclk_state, *old_cdclk_state;
        const struct intel_crtc_state *new_crtc_state, *old_crtc_state;
        struct intel_crtc *crtc;
        int i;
 
-       new_bw_state = intel_atomic_get_new_bw_state(state);
-       old_bw_state = intel_atomic_get_old_bw_state(state);
-       if (new_bw_state && new_bw_state->qgv_point_peakbw !=
-           old_bw_state->qgv_point_peakbw)
+       if (intel_bw_pmdemand_needs_update(state))
                return true;
 
        if (intel_dbuf_pmdemand_needs_update(state))