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 <[email protected]>
Closes:
https://lore.kernel.org/all/[email protected]
Reviewed-by: Khaled Almahallawy <[email protected]> #v1
Cc: Arun R Murthy <[email protected]>
Cc: Suraj Kandpal <[email protected]>
Signed-off-by: Imre Deak <[email protected]>
---
drivers/gpu/drm/i915/display/intel_dp_mst.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c
b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index f58d56a1ea03a..ae2db983eff92 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -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,
--
2.44.2