Re: [PATCH] drm/ssd130x: Drop _helper prefix from struct drm_*_helper_funcs callbacks

From: Thomas Zimmermann
Date: Thu Sep 21 2023 - 17:20:57 EST


Hi

Am 21.09.23 um 09:44 schrieb Maxime Ripard:
Hi,

On Mon, Sep 18, 2023 at 09:19:07AM +0200, Javier Martinez Canillas wrote:
Thomas Zimmermann <tzimmermann@xxxxxxx> writes:

Hi

Am 14.09.23 um 21:51 schrieb Javier Martinez Canillas:
The driver uses a naming convention where functions for struct drm_*_funcs
callbacks are named ssd130x_$object_$operation, while the callbacks for
struct drm_*_helper_funcs are named ssd130x_$object_helper_$operation.

The idea is that this helper_ prefix in the function names denote that are
for struct drm_*_helper_funcs callbacks. This convention was copied from
other drivers, when ssd130x was written but Maxime pointed out that is the
exception rather than the norm.

I guess you found this in my code. I want to point out that I use the
_helper infix to signal that these are callback for
drm_primary_plane_helper_funcs and *not* drm_primary_plane_funcs. The
naming is intentional.


Yes, that's what tried to say in the commit message and indeed I got the
convention from drivers in drivers/gpu/drm/tiny. In fact I believe these
function names are since first iteration of the driver, when was meant to
be a tiny driver.

According to Maxime it's the exception rather than the rule and suggested
to change it, I don't really have a strong opinion on either naming TBH.

Maybe that's just me, but the helper in the name indeed throws me off. In my
mind, it's supposed to be used only for helpers, not functions implementing the
helpers hooks.

Tying the function name to its _funcs structure makes perfect sense to me, as it helps to structure the driver code. So I always use the _helper_ infix.

In contrast, the DRM helpers that implement certain functionality does not seem to follow any naming scheme. For example drm_atomic_helper_check() implements struct drm_mode_config_funcs.atomic_check. To me, it's not obvious that these two belong together. And in the same structure, there's fb_create, which is provided by drm_gem_fb_create_with_dirty(). This one doesn't even mention that it's a helper.

Best regards
Thomas


Maxime

--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature