On Fri, Mar 13, 2020 at 09:17:41PM +0100, Sam Ravnborg wrote:
Thomas Zimmermann had made a nice patch-set that introduced drm_simple_encoder_init() which is already present in drm-misc-next.
While looking at this it was suddenly obvious to me that this was functionalty that really should be included in drm_encoder.c The case where the core could handle the callback is pretty common and not part of the simple pipe line.
So after some dialog on dri-devel the conclusion was to go for a change like this:
drm_encoder_init_funcs() for all users that specified a drm_encoder_funcs to extend the functionality. drm_encoder_init() for all users that did not need to extend the basic functionality with drm_encoder_funcs.
A similar approach with a _funcs() prefix is used elsewhere in drm/
This required a rename of the existing users, and a follow-up patch that moves drm_simple_encoder_init() to drm_encoder.c
Patches 3 in this set demonstrate the use of drm_encoder_init(). There are many more drivers that can be converted as Thomas has already demonstrated.
This is all based on work done by Thomas Zimmermann, I just wanted to implement my suggestion so we could select the best way forward.
Note: Daniel Vetter has hinted the approach implemented here smelled like middle-layer. IMO this is not so, it is just a way to handle cleanup for the simple cases.
We discussed this patch-set briefly on irc. With the upcoming drmm_ changes and such this is bad timing.. And in the end this may be pointless code-chrunch.
Patch-set shelfed for now - may re-visit it later.
Sam