[PATCH RFC 00/11] drm/tilcdc: Atomic modeset support
Noralf Trønnes
noralf at tronnes.org
Tue May 10 17:30:22 UTC 2016
Den 10.05.2016 16:18, skrev Daniel Vetter:
> On Tue, May 10, 2016 at 4:04 PM, Noralf Trønnes <noralf at tronnes.org> wrote:
>> Den 10.05.2016 11:14, skrev Jyri Sarha:
>>> On 05/10/16 09:34, Daniel Vetter wrote:
>>>>>> There's a drm_simple_display_pipe floating around which seems perfectly
>>>>>>>> suited to tilcdc. It's meant for the case where you have 1 plane, 1
>>>>>>>> crtc
>>>>>>>> and 1 encoder maybe linking to different connectors. And it takes
>>>>>>>> care of
>>>>>>>> all the small bits for you, with a grand total of 5 callbacks, all of
>>>>>>>> them
>>>>>>>> optional.
>>>>>>>>
>>>>>>>> Might indeed be useful to rebase tilcdc on top of that, should be
>>>>>>>> possible
>>>>>>>> to nuke piles of code.
>>>>>>
>>>>>> Looks interesting. Does it look like it is getting ready to be merged
>>>>>> soon?
>>>> Should be landind soon, yes. Probably not for 4.7, that's closed now, but
>>>> I can still pick it up into drm-misc right away when it's ready. Open
>>>> review comments are all just small things, you could pick the latest
>>>> version to start prototyping a conversion and there shouldn't be any
>>>> surprises when you rebase onto the merged version.
>>> Hmmm, too bad it wants to own its encoder. LCDC on Beaglebone-Black
>>> needs the componentized external tda998x driver. So at least in its
>>> current form the drm_simple_display_pipe wont work for tilcdc.
>>>
>>> It may not be too big a job to add an external encoder support, but
>>> would it complicate currently so nice and simple driver structure too
>>> much?
>>
>> How about we add an argument for encoder and if it is NULL, then the no-op
>> encoder is used:
> Hm, my idea with external transcoders was to pull them in as a
> drm_bridge. That's of course more work, and we already have a
> proliferation of different transcoder driver standards in drm
> unfortunately (there's drm_bridge, but als to drm_encoder_slave).
Does this mean that you want the drm_bridge_*() functions in
disable_outputs(), crtc_set_mode() and
drm_atomic_helper_commit_modeset_enables() to run for
drm_simple_display_pipe?
Because "drm: Make drm_encoder_helper_funcs optional" skips those bridge
functions if encoder->helper_private is not set (I found this pattern in
mode_fixup() which skips drm_bridge_mode_fixup() on !funcs).
So if that's the case, I have to add an empty drm_encoder_helper_funcs
to the
simple pipe.
Noralf.
More information about the dri-devel
mailing list