[PATCH v3 7/9] drm/atomic-helper: Add select_output_bus_format callback

Klymenko, Anatoliy Anatoliy.Klymenko at amd.com
Fri Mar 22 19:15:19 UTC 2024


Hi Maxime,

Thank you for the review.

> -----Original Message-----
> From: Maxime Ripard <mripard at kernel.org>
> Sent: Friday, March 22, 2024 2:45 AM
> To: Klymenko, Anatoliy <Anatoliy.Klymenko at amd.com>
> Cc: Laurent Pinchart <laurent.pinchart at ideasonboard.com>; Maarten Lankhorst
> <maarten.lankhorst at linux.intel.com>; Thomas Zimmermann
> <tzimmermann at suse.de>; David Airlie <airlied at gmail.com>; Daniel Vetter
> <daniel at ffwll.ch>; Simek, Michal <michal.simek at amd.com>; Andrzej Hajda
> <andrzej.hajda at intel.com>; Neil Armstrong <neil.armstrong at linaro.org>; Robert
> Foss <rfoss at kernel.org>; Jonas Karlman <jonas at kwiboo.se>; Jernej Skrabec
> <jernej.skrabec at gmail.com>; Rob Herring <robh+dt at kernel.org>; Krzysztof
> Kozlowski <krzysztof.kozlowski+dt at linaro.org>; Conor Dooley
> <conor+dt at kernel.org>; Mauro Carvalho Chehab <mchehab at kernel.org>; Tomi
> Valkeinen <tomi.valkeinen at ideasonboard.com>; dri-devel at lists.freedesktop.org;
> linux-arm-kernel at lists.infradead.org; linux-kernel at vger.kernel.org;
> devicetree at vger.kernel.org; linux-media at 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
> > + at 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


More information about the dri-devel mailing list