]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/i915/dp_mst: Fix getting display pointer in intel_dp_mst_compute_min_hblank()
authorImre Deak <imre.deak@intel.com>
Thu, 6 Feb 2025 00:17:26 +0000 (02:17 +0200)
committerImre Deak <imre.deak@intel.com>
Thu, 6 Feb 2025 16:20:12 +0000 (18:20 +0200)
The MST intel_connector::encoder pointer is NULL if the connector hasn't
been enabled before, so it can't be used to retrieve the display
pointer. Use instead the crtc_state and drop the unused connector
parameter.

v2: Use the crtc_state and drop the unused connector parameter.

Fixes: a5ebe00c2ace ("drm/i915/dp: Guarantee a minimum HBlank time")
Reported-and-tested-by: Khaled Almahallawy <khaled.almahallawy@intel.com>
Closes: https://lore.kernel.org/all/16754ee4cd21d99c1e81c5953134b496dd07630f.camel@intel.com
Reviewed-by: Khaled Almahallawy <khaled.almahallawy@intel.com> #v1
Cc: Arun R Murthy <arun.r.murthy@intel.com>
Cc: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250206001726.3021787-1-imre.deak@intel.com
drivers/gpu/drm/i915/display/intel_dp_mst.c

index cc6e4ca375193b0869d9df5e38aed65ab73d316b..2324ca8f6096283857aea582c3a284f5e8d3fd16 100644 (file)
@@ -210,11 +210,9 @@ static int intel_dp_mst_dsc_get_slice_count(const struct intel_connector *connec
 }
 
 static void intel_dp_mst_compute_min_hblank(struct intel_crtc_state *crtc_state,
-                                           struct intel_connector *connector,
                                            int bpp_x16)
 {
-       struct intel_encoder *encoder = connector->encoder;
-       struct intel_display *display = to_intel_display(encoder);
+       struct intel_display *display = to_intel_display(crtc_state);
        const struct drm_display_mode *adjusted_mode =
                                        &crtc_state->hw.adjusted_mode;
        int symbol_size = intel_dp_is_uhbr(crtc_state) ? 32 : 8;
@@ -301,7 +299,7 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
                local_bw_overhead = intel_dp_mst_bw_overhead(crtc_state,
                                                             false, dsc_slice_count, link_bpp_x16);
 
-               intel_dp_mst_compute_min_hblank(crtc_state, connector, link_bpp_x16);
+               intel_dp_mst_compute_min_hblank(crtc_state, link_bpp_x16);
 
                intel_dp_mst_compute_m_n(crtc_state,
                                         local_bw_overhead,