[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