[PATCH 05/14] drm/crtc_helper: Disable and reenable primary plane in drm_helper_crtc_mode_set

Ying Liu gnuiyl at gmail.com
Wed May 25 09:37:41 UTC 2016


On Tue, May 24, 2016 at 6:57 PM, Daniel Vetter <daniel at ffwll.ch> wrote:
> On Tue, May 24, 2016 at 06:10:44PM +0800, Liu Ying wrote:
>> Since CRTC has already been disabled in crtc_funcs->prepare(), it doesn't hurt
>> to disable the primary plane in drm_helper_crtc_mode_set() before enabling it
>> in drm_helper_crtc_mode_set_base().  This makes those who reject active plane
>> update in plane_funcs->atomic_check() happy.
>
> How/where exactly do you blow up?
>>
>> Signed-off-by: Liu Ying <gnuiyl at gmail.com>
>> ---
>>  drivers/gpu/drm/drm_crtc_helper.c | 9 +++++++++
>>  1 file changed, 9 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
>> index 79555d2..7fabcd7 100644
>> --- a/drivers/gpu/drm/drm_crtc_helper.c
>> +++ b/drivers/gpu/drm/drm_crtc_helper.c
>> @@ -1013,6 +1013,15 @@ int drm_helper_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mod
>>                       goto out;
>>       }
>>
>> +     /*
>> +      * It doesn't hurt to disable primary plane here since crtc is off
>> +      * and we'll enable it again in drm_helper_crtc_mode_set_base()
>> +      * below soon.
>> +      */
>> +     ret = drm_plane_helper_disable(crtc->primary);
>
> You can't call this helper from crtc helpers. drm_plane_helper_disable
> assumes that a) you've already extracted universal plane support for the
> primary plane by registering a proper drm_plane for it b) that you're
> driver is at least partially using atomic hooks already.
>
> Both assumptions are wrong for all current users of this function.
> drm_helper_crtc_mode_set() is purely a legacy helper for legecy drivers.

Isn't the function a transitional helper, just as the kdoc claims?
It looks all current users are sort of atomic users already.

Regards,
Liu Ying

> -Daniel
>
>> +     if (ret)
>> +             goto out;
>> +
>>       swap(crtc->state, crtc_state);
>>
>>       crtc_funcs->mode_set_nofb(crtc);
>> --
>> 2.7.4
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch


More information about the dri-devel mailing list