[PATCH 03/13] drm/bochs: Store correct CRTC index in events

Daniel Vetter daniel at ffwll.ch
Wed Aug 12 08:26:32 PDT 2015


On Wed, Aug 12, 2015 at 05:00:25PM +0200, Thierry Reding wrote:
> From: Thierry Reding <treding at nvidia.com>
> 
> Previously a negative pipe caused a special case to be triggered for
> drivers that didn't have proper VBLANK support. The trigger for this
> special case is now independent of the pipe, so the correct CRTC index
> can now be stored in events.
> 
> Cc: Gerd Hoffmann <kraxel at redhat.com>
> Signed-off-by: Thierry Reding <treding at nvidia.com>
> ---
>  drivers/gpu/drm/bochs/bochs_kms.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/bochs/bochs_kms.c b/drivers/gpu/drm/bochs/bochs_kms.c
> index 26bcd03a8cb6..c219c1de3722 100644
> --- a/drivers/gpu/drm/bochs/bochs_kms.c
> +++ b/drivers/gpu/drm/bochs/bochs_kms.c
> @@ -113,13 +113,14 @@ static int bochs_crtc_page_flip(struct drm_crtc *crtc,
>  	struct bochs_device *bochs =
>  		container_of(crtc, struct bochs_device, crtc);
>  	struct drm_framebuffer *old_fb = crtc->primary->fb;
> +	unsigned int pipe = drm_crtc_index(crtc);
>  	unsigned long irqflags;
>  
>  	crtc->primary->fb = fb;
>  	bochs_crtc_mode_set_base(crtc, 0, 0, old_fb);
>  	if (event) {
>  		spin_lock_irqsave(&bochs->dev->event_lock, irqflags);
> -		drm_send_vblank_event(bochs->dev, -1, event);
> +		drm_send_vblank_event(bochs->dev, pipe, event);

I'd vote for a

void drm_crtc_send_vblank_event(struct drm_crtc *crtc,
				struct drm_event *event)
{
	drm_send_vblank_event(crtc->dev, drm_crtc_index(crtc), event);
}

instead and then rolling that out over all drivers. I really like the
underlying idea though, it's always good to standardize more what drivers
are doing around kms semantics.
-Daniel

>  		spin_unlock_irqrestore(&bochs->dev->event_lock, irqflags);
>  	}
>  	return 0;
> -- 
> 2.4.5
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list