Re: [PATCH v2 6/6] drm: Add helper for simple display pipeline

From: Daniel Vetter
Date: Thu May 12 2016 - 06:44:38 EST


On Thu, May 12, 2016 at 12:18 PM, Noralf TrÃnnes <noralf@xxxxxxxxxxx> wrote:
> Den 12.05.2016 10:11, skrev Daniel Vetter:
>>
>> On Wed, May 11, 2016 at 07:09:10PM +0200, Daniel Vetter wrote:
>>>
>>> On Wed, May 11, 2016 at 06:09:22PM +0200, Noralf TrÃnnes wrote:
>>>>
>>>> +/**
>>>> + * drm_simple_display_pipe_init - Initialize a simple display pipeline
>>>> + * @dev: DRM device
>>>> + * @pipe: simple display pipe object to initialize
>>>> + * @funcs: callbacks for the display pipe (optional)
>>>> + * @formats: array of supported formats (%DRM_FORMAT_*)
>>>> + * @format_count: number of elements in @formats
>>>> + * @connector: connector to attach and register
>>>> + *
>>>> + * Sets up a display pipeline which consist of a really simple
>>>> + * plane-crtc-encoder pipe coupled with the provided connector.
>>>
>>> How are drivers supposed to release this stuff again? Maybe add:
>>>
>>> "Teardown of a simple display pipe is all handled automatically by the
>>> drm
>>> core through calling drm_mode_config_cleanup()."
>>
>> Thought a bit more about this, maybe we should also add "Drivers
>> afterwards need to release the memory for the structure themselves."
>>
>> Btw one other thing I realized is that there's no atomic_commit for this.
>> How do you plane to implement async commit? No need to address this right
>> away, we can discuss it when you've rebased tinydrm and submit that for
>> review.
>> -Daniel
>
>
> I don't follow you here. Isn't this atomic_commit:
>
> drm_atomic_helper_commit => drm_atomic_helper_commit_planes =>
> drm_simple_kms_plane_atomic_update => pipe->funcs->update

drm_atomic_helper_commit does not implement nonblocking commits,
because that's a bit tricky when there's more than 1 crtc. But if you
only have 1 crtc it's easy. And without nonblocking commit the legacy
pageflip stuff will also not work.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch