Message ID | 20240329011254.24160-13-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: Bigjoiner modeset sequence redesign and MST support | expand |
> -----Original Message----- > From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Ville > Syrjala > Sent: Friday, March 29, 2024 6:43 AM > To: intel-gfx@lists.freedesktop.org > Subject: [PATCH 12/22] drm/i915: Pass connector to intel_dp_need_bigjoiner() > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Pass the connector explicitly to intel_dp_need_bigjoiner() so that it'll actually > check the correct place for the bigjoiner force flag. Looks Good to me. Reviewed-by: Uma Shankar <uma.shankar@intel.com> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/i915/display/intel_dp.c | 10 ++++++---- > drivers/gpu/drm/i915/display/intel_dp.h | 1 + > drivers/gpu/drm/i915/display/intel_dp_mst.c | 5 +++-- > 3 files changed, 10 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c > b/drivers/gpu/drm/i915/display/intel_dp.c > index 6fa8fc56a39c..cbabd1924474 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -1194,10 +1194,10 @@ intel_dp_mode_valid_downstream(struct > intel_connector *connector, } > > bool intel_dp_need_bigjoiner(struct intel_dp *intel_dp, > + struct intel_connector *connector, > int hdisplay, int clock) > { > struct drm_i915_private *i915 = dp_to_i915(intel_dp); > - struct intel_connector *connector = intel_dp->attached_connector; > > if (!intel_dp_has_bigjoiner(intel_dp)) > return false; > @@ -1241,7 +1241,8 @@ intel_dp_mode_valid(struct drm_connector > *_connector, > target_clock = fixed_mode->clock; > } > > - if (intel_dp_need_bigjoiner(intel_dp, mode->hdisplay, target_clock)) { > + if (intel_dp_need_bigjoiner(intel_dp, connector, > + mode->hdisplay, target_clock)) { > bigjoiner = true; > max_dotclk *= 2; > } > @@ -2409,7 +2410,7 @@ intel_dp_compute_link_config(struct intel_encoder > *encoder, { > struct drm_i915_private *i915 = to_i915(encoder->base.dev); > struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc); > - const struct intel_connector *connector = > + struct intel_connector *connector = > to_intel_connector(conn_state->connector); > const struct drm_display_mode *adjusted_mode = > &pipe_config->hw.adjusted_mode; > @@ -2422,7 +2423,8 @@ intel_dp_compute_link_config(struct intel_encoder > *encoder, > !intel_dp_supports_fec(intel_dp, connector, pipe_config)) > return -EINVAL; > > - if (intel_dp_need_bigjoiner(intel_dp, adjusted_mode->crtc_hdisplay, > + if (intel_dp_need_bigjoiner(intel_dp, connector, > + adjusted_mode->crtc_hdisplay, > adjusted_mode->crtc_clock)) > pipe_config->bigjoiner_pipes = GENMASK(crtc->pipe + 1, crtc- > >pipe); > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.h > b/drivers/gpu/drm/i915/display/intel_dp.h > index d5697b99ac21..cd6969d05fe3 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.h > +++ b/drivers/gpu/drm/i915/display/intel_dp.h > @@ -150,6 +150,7 @@ u8 intel_dp_dsc_get_slice_count(const struct > intel_connector *connector, > int mode_clock, int mode_hdisplay, > bool bigjoiner); > bool intel_dp_need_bigjoiner(struct intel_dp *intel_dp, > + struct intel_connector *connector, > int hdisplay, int clock); > > static inline unsigned int intel_dp_unused_lane_mask(int lane_count) diff --git > a/drivers/gpu/drm/i915/display/intel_dp_mst.c > b/drivers/gpu/drm/i915/display/intel_dp_mst.c > index 1cf6241a7d53..a3b0026adb2d 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c > @@ -527,7 +527,7 @@ static int intel_dp_mst_compute_config(struct > intel_encoder *encoder, > struct intel_atomic_state *state = to_intel_atomic_state(conn_state- > >state); > struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder); > struct intel_dp *intel_dp = &intel_mst->primary->dp; > - const struct intel_connector *connector = > + struct intel_connector *connector = > to_intel_connector(conn_state->connector); > const struct drm_display_mode *adjusted_mode = > &pipe_config->hw.adjusted_mode; > @@ -1342,7 +1342,8 @@ intel_dp_mst_mode_valid_ctx(struct drm_connector > *connector, > *status = MODE_CLOCK_HIGH; > return 0; > } > - if (intel_dp_need_bigjoiner(intel_dp, mode->hdisplay, target_clock)) { > + if (intel_dp_need_bigjoiner(intel_dp, intel_connector, > + mode->hdisplay, target_clock)) { > bigjoiner = true; > max_dotclk *= 2; > > -- > 2.43.2
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index 6fa8fc56a39c..cbabd1924474 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -1194,10 +1194,10 @@ intel_dp_mode_valid_downstream(struct intel_connector *connector, } bool intel_dp_need_bigjoiner(struct intel_dp *intel_dp, + struct intel_connector *connector, int hdisplay, int clock) { struct drm_i915_private *i915 = dp_to_i915(intel_dp); - struct intel_connector *connector = intel_dp->attached_connector; if (!intel_dp_has_bigjoiner(intel_dp)) return false; @@ -1241,7 +1241,8 @@ intel_dp_mode_valid(struct drm_connector *_connector, target_clock = fixed_mode->clock; } - if (intel_dp_need_bigjoiner(intel_dp, mode->hdisplay, target_clock)) { + if (intel_dp_need_bigjoiner(intel_dp, connector, + mode->hdisplay, target_clock)) { bigjoiner = true; max_dotclk *= 2; } @@ -2409,7 +2410,7 @@ intel_dp_compute_link_config(struct intel_encoder *encoder, { struct drm_i915_private *i915 = to_i915(encoder->base.dev); struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc); - const struct intel_connector *connector = + struct intel_connector *connector = to_intel_connector(conn_state->connector); const struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode; @@ -2422,7 +2423,8 @@ intel_dp_compute_link_config(struct intel_encoder *encoder, !intel_dp_supports_fec(intel_dp, connector, pipe_config)) return -EINVAL; - if (intel_dp_need_bigjoiner(intel_dp, adjusted_mode->crtc_hdisplay, + if (intel_dp_need_bigjoiner(intel_dp, connector, + adjusted_mode->crtc_hdisplay, adjusted_mode->crtc_clock)) pipe_config->bigjoiner_pipes = GENMASK(crtc->pipe + 1, crtc->pipe); diff --git a/drivers/gpu/drm/i915/display/intel_dp.h b/drivers/gpu/drm/i915/display/intel_dp.h index d5697b99ac21..cd6969d05fe3 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.h +++ b/drivers/gpu/drm/i915/display/intel_dp.h @@ -150,6 +150,7 @@ u8 intel_dp_dsc_get_slice_count(const struct intel_connector *connector, int mode_clock, int mode_hdisplay, bool bigjoiner); bool intel_dp_need_bigjoiner(struct intel_dp *intel_dp, + struct intel_connector *connector, int hdisplay, int clock); static inline unsigned int intel_dp_unused_lane_mask(int lane_count) diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c index 1cf6241a7d53..a3b0026adb2d 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c @@ -527,7 +527,7 @@ static int intel_dp_mst_compute_config(struct intel_encoder *encoder, struct intel_atomic_state *state = to_intel_atomic_state(conn_state->state); struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder); struct intel_dp *intel_dp = &intel_mst->primary->dp; - const struct intel_connector *connector = + struct intel_connector *connector = to_intel_connector(conn_state->connector); const struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode; @@ -1342,7 +1342,8 @@ intel_dp_mst_mode_valid_ctx(struct drm_connector *connector, *status = MODE_CLOCK_HIGH; return 0; } - if (intel_dp_need_bigjoiner(intel_dp, mode->hdisplay, target_clock)) { + if (intel_dp_need_bigjoiner(intel_dp, intel_connector, + mode->hdisplay, target_clock)) { bigjoiner = true; max_dotclk *= 2;