On Wed, Dec 09, 2020 at 11:58:44AM +0100, Philipp Zabel wrote:
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@pengutronix.de Reviewed-by: Laurent Pinchart laurent.pinchart@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@ravnborg.org
Thank you for bringing this up, should we just leave drm_mode_config_cleanup() as-is?
Yup, not having a funcs->destroy there is a bug. Maybe should even warn about the lack of that in the traditional non-drmm_ encoder init function. -Daniel
regards Philipp _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel