Skip to content

Commit e43b4f7

Browse files
committed
drm/i915: Pass connector to intel_dp_need_bigjoiner()
Pass the connector explicitly to intel_dp_need_bigjoiner() so that it'll actually check the correct place for the bigjoiner force flag. Tested-by: Vidya Srinivas <vidya.srinivas@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240404213441.17637-11-ville.syrjala@linux.intel.com
1 parent 5a1527e commit e43b4f7

3 files changed

Lines changed: 10 additions & 6 deletions

File tree

drivers/gpu/drm/i915/display/intel_dp.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1202,10 +1202,10 @@ intel_dp_mode_valid_downstream(struct intel_connector *connector,
12021202
}
12031203

12041204
bool intel_dp_need_bigjoiner(struct intel_dp *intel_dp,
1205+
struct intel_connector *connector,
12051206
int hdisplay, int clock)
12061207
{
12071208
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
1208-
struct intel_connector *connector = intel_dp->attached_connector;
12091209

12101210
if (!intel_dp_has_bigjoiner(intel_dp))
12111211
return false;
@@ -1249,7 +1249,8 @@ intel_dp_mode_valid(struct drm_connector *_connector,
12491249
target_clock = fixed_mode->clock;
12501250
}
12511251

1252-
if (intel_dp_need_bigjoiner(intel_dp, mode->hdisplay, target_clock)) {
1252+
if (intel_dp_need_bigjoiner(intel_dp, connector,
1253+
mode->hdisplay, target_clock)) {
12531254
bigjoiner = true;
12541255
max_dotclk *= 2;
12551256
}
@@ -2419,7 +2420,7 @@ intel_dp_compute_link_config(struct intel_encoder *encoder,
24192420
{
24202421
struct drm_i915_private *i915 = to_i915(encoder->base.dev);
24212422
struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
2422-
const struct intel_connector *connector =
2423+
struct intel_connector *connector =
24232424
to_intel_connector(conn_state->connector);
24242425
const struct drm_display_mode *adjusted_mode =
24252426
&pipe_config->hw.adjusted_mode;
@@ -2432,7 +2433,8 @@ intel_dp_compute_link_config(struct intel_encoder *encoder,
24322433
!intel_dp_supports_fec(intel_dp, connector, pipe_config))
24332434
return -EINVAL;
24342435

2435-
if (intel_dp_need_bigjoiner(intel_dp, adjusted_mode->crtc_hdisplay,
2436+
if (intel_dp_need_bigjoiner(intel_dp, connector,
2437+
adjusted_mode->crtc_hdisplay,
24362438
adjusted_mode->crtc_clock))
24372439
pipe_config->bigjoiner_pipes = GENMASK(crtc->pipe + 1, crtc->pipe);
24382440

drivers/gpu/drm/i915/display/intel_dp.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ u8 intel_dp_dsc_get_slice_count(const struct intel_connector *connector,
151151
int mode_clock, int mode_hdisplay,
152152
bool bigjoiner);
153153
bool intel_dp_need_bigjoiner(struct intel_dp *intel_dp,
154+
struct intel_connector *connector,
154155
int hdisplay, int clock);
155156

156157
static inline unsigned int intel_dp_unused_lane_mask(int lane_count)

drivers/gpu/drm/i915/display/intel_dp_mst.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ static int intel_dp_mst_compute_config(struct intel_encoder *encoder,
527527
struct intel_atomic_state *state = to_intel_atomic_state(conn_state->state);
528528
struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
529529
struct intel_dp *intel_dp = &intel_mst->primary->dp;
530-
const struct intel_connector *connector =
530+
struct intel_connector *connector =
531531
to_intel_connector(conn_state->connector);
532532
const struct drm_display_mode *adjusted_mode =
533533
&pipe_config->hw.adjusted_mode;
@@ -1342,7 +1342,8 @@ intel_dp_mst_mode_valid_ctx(struct drm_connector *connector,
13421342
*status = MODE_CLOCK_HIGH;
13431343
return 0;
13441344
}
1345-
if (intel_dp_need_bigjoiner(intel_dp, mode->hdisplay, target_clock)) {
1345+
if (intel_dp_need_bigjoiner(intel_dp, intel_connector,
1346+
mode->hdisplay, target_clock)) {
13461347
bigjoiner = true;
13471348
max_dotclk *= 2;
13481349

0 commit comments

Comments
 (0)