[PATCH v4 15/15] drm/xen: Explicitly disable automatic sending of vblank event
Oleksandr Andrushchenko
Oleksandr_Andrushchenko at epam.com
Mon Jan 27 12:10:21 UTC 2020
On 1/27/20 1:59 PM, Thomas Zimmermann wrote:
> Hi
>
> Am 27.01.20 um 10:53 schrieb Oleksandr Andrushchenko:
>> Sorry for jumping in late
>>
>> On 1/23/20 11:21 AM, Thomas Zimmermann wrote:
>>> The atomic helpers automatically send out fake VBLANK events if no
>>> vblanking has been initialized. This would apply to xen, but xen has
>>> its own vblank logic. To avoid interfering with the atomic helpers,
>>> disable automatic vblank events explictly.
>>>
>>> v4:
>>> * separate commit from core vblank changes
>>>
>>> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
>>> Acked-by: Gerd Hoffmann <kraxel at redhat.com>
>> Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko at epam.com>
>>
>>> ---
>>> drivers/gpu/drm/xen/xen_drm_front_kms.c | 13 +++++++++++++
>>> 1 file changed, 13 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/xen/xen_drm_front_kms.c b/drivers/gpu/drm/xen/xen_drm_front_kms.c
>>> index 4f34c5208180..efde4561836f 100644
>>> --- a/drivers/gpu/drm/xen/xen_drm_front_kms.c
>>> +++ b/drivers/gpu/drm/xen/xen_drm_front_kms.c
>>> @@ -220,6 +220,18 @@ static bool display_send_page_flip(struct drm_simple_display_pipe *pipe,
>>> return false;
>>> }
>>>
>>> +static int display_check(struct drm_simple_display_pipe *pipe,
>>> + struct drm_plane_state *plane_state,
>>> + struct drm_crtc_state *crtc_state)
>>> +{
>>> + /* Make sure that DRM helpers don't send VBLANK events
>> Could you please put the comment on a separate line?
> You mean to add an empty line between comment and code?
>
Just like
/*
* Make sure...
>>> + * automatically. Xen has it's own logic to do so.
>>> + */
>>> + crtc_state->no_vblank = false;
>> And it is still confusing, e.g. comment says
>> "Make sure that DRM helpers don't send VBLANK"
>> and we set "no_vblank" flag to false...
> I'll rephrase and add some more context.
Thank you
>
> Best regards
> Thomas
>
>>> +
>>> + return 0;
>>> +}
>>> +
>>> static void display_update(struct drm_simple_display_pipe *pipe,
>>> struct drm_plane_state *old_plane_state)
>>> {
>>> @@ -284,6 +296,7 @@ static const struct drm_simple_display_pipe_funcs display_funcs = {
>>> .enable = display_enable,
>>> .disable = display_disable,
>>> .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb,
>>> + .check = display_check,
>>> .update = display_update,
>>> };
>>>
More information about the dri-devel
mailing list