[PATCH v4 5/7] drm/simpledrm: Preallocate format-conversion buffer in atomic_check
Thomas Zimmermann
tzimmermann at suse.de
Mon Oct 9 09:16:17 UTC 2023
Hi Javier
Am 09.10.23 um 10:58 schrieb Javier Martinez Canillas:
> Thomas Zimmermann <tzimmermann at suse.de> writes:
>
> Hello Thomas,
>
>> Hi Javier
>>
>> Am 05.10.23 um 15:38 schrieb Javier Martinez Canillas:
>>> Thomas Zimmermann <tzimmermann at suse.de> writes:
>
> [...]
>
>>>> +static int simpledrm_primary_plane_helper_atomic_check(struct drm_plane *plane,
>>>> + struct drm_atomic_state *state)
>>>> +{
>>>> + struct drm_plane_state *new_plane_state = drm_atomic_get_new_plane_state(state, plane);
>>>> + struct drm_shadow_plane_state *new_shadow_plane_state =
>>>> + to_drm_shadow_plane_state(new_plane_state);
>>>> + struct drm_framebuffer *new_fb = new_plane_state->fb;
>>>> + struct drm_crtc *new_crtc = new_plane_state->crtc;
>>>> + struct drm_crtc_state *new_crtc_state = NULL;
>>>> + struct drm_device *dev = plane->dev;
>>>> + struct simpledrm_device *sdev = simpledrm_device_of_dev(dev);
>>>> + int ret;
>>>> +
>>>> + if (new_crtc)
>>>> + new_crtc_state = drm_atomic_get_new_crtc_state(state, new_crtc);
>>>> +
>>>> + ret = drm_atomic_helper_check_plane_state(new_plane_state, new_crtc_state,
>>>> + DRM_PLANE_NO_SCALING,
>>>> + DRM_PLANE_NO_SCALING,
>>>> + false, false);
>>>
>>> Same comment that with the ssd130x driver. I think that we should use the
>>> drm_plane_helper_atomic_check() helper instead of open coding it in each
>>
>> I'm going to replace the call in simpledrm.
>> drm_plane_helper_atomic_check() is useful to remove the entire
>> atomic_check function from the driver; it does nothing apart from that.
>> I've been called out before for such do-nothing helpers; deservedly so. [1]
>>
>
> The argument then is that drivers should open code *exactly* the same code
> that the helper function already has just because they implement their own
> .atomic_check callback?
>
> And that the helper should only be used when is the .atomic_check callback
> but not as a helper function?
My point (and I think that's what Christian was also referring to) is
that drm_plane_helper_atomic_check() does little more than pick a few
default values for the parameters. It doesn't do anything in terms of
algorithms. Hence there's no saving here that outweighs the cost of
using this helper.
>
> I don't understand that rationale to be honest, but if there is one then
> it should be very clear in the kernel-doc what functions are supposed to
> be used only as callbacks and what functions can also be used as helpers.
There's no clear rule AFAIK. We have to decide case by case. TBH I don't
mind re-evaluating cases from time to time. At least, I'm going to
revert the open-coded helper in ssd130x, as you asked me to.
Best regards
Thomas
>
>> Best regards
>> Thomas
>>
>
--
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)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20231009/f0aada26/attachment.sig>
More information about the dri-devel
mailing list