Hi, On Sat, May 11, 2024 at 09:00:45PM +0530, Aradhya Bhatia wrote: > Add support for mode_fixup for the tidss CRTC. > > Some bridges like the cdns-dsi consume the crtc_* timing parameters for > programming the blanking values. Allow for the normal timing parameters > to get copied to crtc_* timing params. > > Signed-off-by: Aradhya Bhatia <a-bhatia1@xxxxxx> > --- > drivers/gpu/drm/tidss/tidss_crtc.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/gpu/drm/tidss/tidss_crtc.c b/drivers/gpu/drm/tidss/tidss_crtc.c > index 94f8e3178df5..797ef53d9ad2 100644 > --- a/drivers/gpu/drm/tidss/tidss_crtc.c > +++ b/drivers/gpu/drm/tidss/tidss_crtc.c > @@ -309,12 +309,23 @@ enum drm_mode_status tidss_crtc_mode_valid(struct drm_crtc *crtc, > return dispc_vp_mode_valid(tidss->dispc, tcrtc->hw_videoport, mode); > } > > +static > +bool tidss_crtc_mode_fixup(struct drm_crtc *crtc, > + const struct drm_display_mode *mode, > + struct drm_display_mode *adjusted_mode) > +{ > + drm_mode_set_crtcinfo(adjusted_mode, 0); > + > + return true; > +} > + > static const struct drm_crtc_helper_funcs tidss_crtc_helper_funcs = { > .atomic_check = tidss_crtc_atomic_check, > .atomic_flush = tidss_crtc_atomic_flush, > .atomic_enable = tidss_crtc_atomic_enable, > .atomic_disable = tidss_crtc_atomic_disable, > > + .mode_fixup = tidss_crtc_mode_fixup, > .mode_valid = tidss_crtc_mode_valid, > }; mode_fixup is deprecated for atomic drivers, so the solution must be different there. It's also not clear to me how it could change anything there: drm_mode_set_crtcinfo with no flags will make crtc_* field exactly identical to their !crtc counterparts. Maxime
Attachment:
signature.asc
Description: PGP signature