Hi Maxime, Thank you for the review.
> -----Original Message----- > From: Maxime Ripard <mrip...@kernel.org> > Sent: Friday, March 22, 2024 2:45 AM > To: Klymenko, Anatoliy <anatoliy.klyme...@amd.com> > Cc: Laurent Pinchart <laurent.pinch...@ideasonboard.com>; Maarten Lankhorst > <maarten.lankho...@linux.intel.com>; Thomas Zimmermann > <tzimmerm...@suse.de>; David Airlie <airl...@gmail.com>; Daniel Vetter > <dan...@ffwll.ch>; Simek, Michal <michal.si...@amd.com>; Andrzej Hajda > <andrzej.ha...@intel.com>; Neil Armstrong <neil.armstr...@linaro.org>; Robert > Foss <rf...@kernel.org>; Jonas Karlman <jo...@kwiboo.se>; Jernej Skrabec > <jernej.skra...@gmail.com>; Rob Herring <robh...@kernel.org>; Krzysztof > Kozlowski <krzysztof.kozlowski...@linaro.org>; Conor Dooley > <conor...@kernel.org>; Mauro Carvalho Chehab <mche...@kernel.org>; Tomi > Valkeinen <tomi.valkei...@ideasonboard.com>; dri-devel@lists.freedesktop.org; > linux-arm-ker...@lists.infradead.org; linux-ker...@vger.kernel.org; > devicet...@vger.kernel.org; linux-me...@vger.kernel.org > Subject: Re: [PATCH v3 7/9] drm/atomic-helper: Add select_output_bus_format > callback > > On Thu, Mar 21, 2024 at 01:43:45PM -0700, Anatoliy Klymenko wrote: > > diff --git a/drivers/gpu/drm/drm_crtc_helper.c > > b/drivers/gpu/drm/drm_crtc_helper.c > > index 2dafc39a27cb..f2e12a3c4e5f 100644 > > --- a/drivers/gpu/drm/drm_crtc_helper.c > > +++ b/drivers/gpu/drm/drm_crtc_helper.c > > @@ -1055,3 +1055,39 @@ int drm_helper_force_disable_all(struct > drm_device *dev) > > return ret; > > } > > EXPORT_SYMBOL(drm_helper_force_disable_all); > > + > > +/** > > + * drm_helper_crtc_select_output_bus_format - Select output media bus > > +format > > + * @crtc: The CRTC to query > > + * @crtc_state: The new CRTC state > > + * @supported_fmts: List of media bus format options to pick from > > + * @num_supported_fmts: Number of media bus formats in > > +@supported_fmts list > > + * > > + * Encoder drivers may call this helper to give the connected CRTC a > > +chance to > > + * select compatible or preffered media bus format to use over the > > +CRTC encoder > > + * link. Encoders should provide list of supported input > > +MEDIA_BUS_FMT_* for > > + * CRTC to pick from. CRTC driver is expected to select preferred > > +media bus > > + * format from the list and, once enabled, generate the signal accordingly. > > + * > > + * Returns: > > + * Selected preferred media bus format or 0 if CRTC does not support > > +any from > > + * @supported_fmts list. > > + */ > > +u32 drm_helper_crtc_select_output_bus_format(struct drm_crtc *crtc, > > + struct drm_crtc_state *crtc_state, > > + const u32 *supported_fmts, > > + unsigned int num_supported_fmts) { > > + if (!crtc || !supported_fmts || !num_supported_fmts) > > + return 0; > > + > > + if (!crtc->helper_private || > > + !crtc->helper_private->select_output_bus_format) > > + return supported_fmts[0]; > > + > > + return crtc->helper_private->select_output_bus_format(crtc, > > + crtc_state, > > + supported_fmts, > > + num_supported_fmts); > > +} > > Again, the output of that selection must be found in the CRTC state, otherwise > CRTCs have no way to know which have been selected. > Yes, now I got it - thank you. I'll fix this in the next version. > Maxime Thank you, Anatoliy