[PATCH v4 01/19] drm/encoder: make encoder control functions optional
Philipp Zabel
p.zabel at pengutronix.de
Wed Dec 9 10:58:44 UTC 2020
Hi Sam,
On Tue, 2020-12-08 at 19:48 +0100, Sam Ravnborg wrote:
> Hi Philipp,
> On Tue, Dec 08, 2020 at 04:54:33PM +0100, Philipp Zabel wrote:
> > Simple managed encoders do not require the .destroy callback,
> > make the whole funcs structure optional.
> >
> > Signed-off-by: Philipp Zabel <p.zabel at pengutronix.de>
> > Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > ---
> > New in v4.
> > ---
> > drivers/gpu/drm/drm_encoder.c | 4 ++--
> > drivers/gpu/drm/drm_mode_config.c | 5 +++--
> > include/drm/drm_encoder.h | 2 +-
> > 3 files changed, 6 insertions(+), 5 deletions(-)
> >
[...]
> > diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c
> > index f1affc1bb679..87e144155456 100644
> > --- a/drivers/gpu/drm/drm_mode_config.c
> > +++ b/drivers/gpu/drm/drm_mode_config.c
[...]
> > @@ -487,7 +487,8 @@ void drm_mode_config_cleanup(struct drm_device *dev)
> >
> > list_for_each_entry_safe(encoder, enct, &dev->mode_config.encoder_list,
> > head) {
> > - encoder->funcs->destroy(encoder);
> > + if (encoder->funcs)
> > + encoder->funcs->destroy(encoder);
>
> So late_register and early_unregister are both optional.
> But if encoder->funcs is set then the destroy callback is mandatory.
For encoders that are kept on the mode_config.encoder_list until
drm_mode_config_cleanup() is called, the destroy callback is still
mandatory.
Encoders allocated with drmm_encoder_alloc() on the other hand should
have the destroy callback set to NULL, if encoder->funcs is set.
These encoders are removed from the mode_config.encoder_list by the drmm
cleanup code, before drm_mode_config_cleanup is called.
> I am just wondering if this is intended.
> Reding the documnetation of drm_encoder_funcs thist matches the
> documentation but anyway..
>
> With this comment considered,
> Reviewed-by: Sam Ravnborg <sam at ravnborg.org>
Thank you for bringing this up, should we just leave
drm_mode_config_cleanup() as-is?
regards
Philipp
More information about the dri-devel
mailing list