Message ID | 20240329011254.24160-5-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 04/22] drm/i915/vrr: Disable VRR when using bigjoiner > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > All joined pipes share the same transcoder/timing generator. > Currently we just do the commits per-pipe, which doesn't really work if we > need to change switch between non-VRR and VRR timings generators on the > fly, or even when sending the push to the transcoder. For now just disable > VRR when bigjoiner is needed. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- LGTM. Reviewed-by: Vandita Kulkarni <vandita.kulkarni@intel.com> > drivers/gpu/drm/i915/display/intel_vrr.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c > b/drivers/gpu/drm/i915/display/intel_vrr.c > index eb5bd0743902..f542ee1db1d9 100644 > --- a/drivers/gpu/drm/i915/display/intel_vrr.c > +++ b/drivers/gpu/drm/i915/display/intel_vrr.c > @@ -117,6 +117,13 @@ intel_vrr_compute_config(struct intel_crtc_state > *crtc_state, > const struct drm_display_info *info = &connector- > >base.display_info; > int vmin, vmax; > > + /* > + * FIXME all joined pipes share the same transcoder. > + * Need to account for that during VRR toggle/push/etc. > + */ > + if (crtc_state->bigjoiner_pipes) > + return; > + > if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) > return; > > -- > 2.43.2
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c index eb5bd0743902..f542ee1db1d9 100644 --- a/drivers/gpu/drm/i915/display/intel_vrr.c +++ b/drivers/gpu/drm/i915/display/intel_vrr.c @@ -117,6 +117,13 @@ intel_vrr_compute_config(struct intel_crtc_state *crtc_state, const struct drm_display_info *info = &connector->base.display_info; int vmin, vmax; + /* + * FIXME all joined pipes share the same transcoder. + * Need to account for that during VRR toggle/push/etc. + */ + if (crtc_state->bigjoiner_pipes) + return; + if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) return;