]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/display: convert HAS_MBUS_JOINING() to struct intel_display
authorJani Nikula <jani.nikula@intel.com>
Mon, 11 Nov 2024 10:33:57 +0000 (12:33 +0200)
committerJani Nikula <jani.nikula@intel.com>
Tue, 12 Nov 2024 07:58:53 +0000 (09:58 +0200)
Convert HAS_MBUS_JOINING() to struct intel_display. Do minimal drive-by
conversions to struct intel_display in the callers while at it.

v2: Rebase

Reviewed-by: Vinod Govindapillai <vinod.govindapillai@intel.com> # v1
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> # v1
Link: https://patchwork.freedesktop.org/patch/msgid/c198dd5a0ab0a5f37edce3d18ddb4991cf3d4792.1731321183.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_display_device.h
drivers/gpu/drm/i915/display/skl_watermark.c

index 3145536ace6f068e83423c6480f0f1124fd69e38..d858ad7fae7ea385ce4b2131898d6b64e229f6f9 100644 (file)
@@ -169,7 +169,7 @@ struct intel_display_platforms {
 #define HAS_IPS(__display)             ((__display)->platform.haswell_ult || (__display)->platform.broadwell)
 #define HAS_LRR(i915)                  (DISPLAY_VER(i915) >= 12)
 #define HAS_LSPCON(i915)               (IS_DISPLAY_VER(i915, 9, 10))
-#define HAS_MBUS_JOINING(i915)         (IS_ALDERLAKE_P(i915) || DISPLAY_VER(i915) >= 14)
+#define HAS_MBUS_JOINING(__display)    ((__display)->platform.alderlake_p || DISPLAY_VER(__display) >= 14)
 #define HAS_MSO(i915)                  (DISPLAY_VER(i915) >= 12)
 #define HAS_OVERLAY(i915)              (DISPLAY_INFO(i915)->has_overlay)
 #define HAS_PSR(i915)                  (DISPLAY_INFO(i915)->has_psr)
index d3bbf335c74990ceb30c56d34a923a8546bff4e7..8407d6820706a192dc7d498b1c3099dfc8a2066d 100644 (file)
@@ -2496,6 +2496,7 @@ static u8 intel_dbuf_enabled_slices(const struct intel_dbuf_state *dbuf_state)
 static int
 skl_compute_ddb(struct intel_atomic_state *state)
 {
+       struct intel_display *display = to_intel_display(state);
        struct drm_i915_private *i915 = to_i915(state->base.dev);
        const struct intel_dbuf_state *old_dbuf_state;
        struct intel_dbuf_state *new_dbuf_state = NULL;
@@ -2524,7 +2525,7 @@ skl_compute_ddb(struct intel_atomic_state *state)
                        return ret;
        }
 
-       if (HAS_MBUS_JOINING(i915)) {
+       if (HAS_MBUS_JOINING(display)) {
                new_dbuf_state->joined_mbus =
                        adlp_check_mbus_joined(new_dbuf_state->active_pipes);
 
@@ -2984,7 +2985,7 @@ static void skl_wm_get_hw_state(struct drm_i915_private *i915)
                to_intel_dbuf_state(i915->display.dbuf.obj.state);
        struct intel_crtc *crtc;
 
-       if (HAS_MBUS_JOINING(i915))
+       if (HAS_MBUS_JOINING(display))
                dbuf_state->joined_mbus = intel_de_read(i915, MBUS_CTL) & MBUS_JOIN;
 
        dbuf_state->mdclk_cdclk_ratio = intel_mdclk_cdclk_ratio(display, &display->cdclk.hw);
@@ -3364,23 +3365,24 @@ int intel_dbuf_state_set_mdclk_cdclk_ratio(struct intel_atomic_state *state,
 void intel_dbuf_mdclk_cdclk_ratio_update(struct drm_i915_private *i915,
                                         int ratio, bool joined_mbus)
 {
+       struct intel_display *display = &i915->display;
        enum dbuf_slice slice;
 
-       if (!HAS_MBUS_JOINING(i915))
+       if (!HAS_MBUS_JOINING(display))
                return;
 
-       if (DISPLAY_VER(i915) >= 20)
-               intel_de_rmw(i915, MBUS_CTL, MBUS_TRANSLATION_THROTTLE_MIN_MASK,
+       if (DISPLAY_VER(display) >= 20)
+               intel_de_rmw(display, MBUS_CTL, MBUS_TRANSLATION_THROTTLE_MIN_MASK,
                             MBUS_TRANSLATION_THROTTLE_MIN(ratio - 1));
 
        if (joined_mbus)
                ratio *= 2;
 
-       drm_dbg_kms(&i915->drm, "Updating dbuf ratio to %d (mbus joined: %s)\n",
+       drm_dbg_kms(display->drm, "Updating dbuf ratio to %d (mbus joined: %s)\n",
                    ratio, str_yes_no(joined_mbus));
 
-       for_each_dbuf_slice(i915, slice)
-               intel_de_rmw(i915, DBUF_CTL_S(slice),
+       for_each_dbuf_slice(display, slice)
+               intel_de_rmw(display, DBUF_CTL_S(slice),
                             DBUF_MIN_TRACKER_STATE_SERVICE_MASK,
                             DBUF_MIN_TRACKER_STATE_SERVICE(ratio - 1));
 }
@@ -3569,17 +3571,18 @@ void intel_dbuf_post_plane_update(struct intel_atomic_state *state)
 
 static void skl_mbus_sanitize(struct drm_i915_private *i915)
 {
+       struct intel_display *display = &i915->display;
        struct intel_dbuf_state *dbuf_state =
-               to_intel_dbuf_state(i915->display.dbuf.obj.state);
+               to_intel_dbuf_state(display->dbuf.obj.state);
 
-       if (!HAS_MBUS_JOINING(i915))
+       if (!HAS_MBUS_JOINING(display))
                return;
 
        if (!dbuf_state->joined_mbus ||
            adlp_check_mbus_joined(dbuf_state->active_pipes))
                return;
 
-       drm_dbg_kms(&i915->drm, "Disabling redundant MBUS joining (active pipes 0x%x)\n",
+       drm_dbg_kms(display->drm, "Disabling redundant MBUS joining (active pipes 0x%x)\n",
                    dbuf_state->active_pipes);
 
        dbuf_state->joined_mbus = false;