diff options
| author | 2014-11-19 21:32:12 +1100 | |
|---|---|---|
| committer | 2014-11-19 21:32:12 +1100 | |
| commit | b10778a00d40b3d9fdaaf5891e802794781ff71c (patch) | |
| tree | 6ba4cbac86eecedc3f30650e7f764ecf00c83898 /drivers/gpu/drm/udl/udl_modeset.c | |
| parent | integrity: do zero padding of the key id (diff) | |
| parent | Linux 3.17 (diff) | |
| download | wireguard-linux-b10778a00d40b3d9fdaaf5891e802794781ff71c.tar.xz wireguard-linux-b10778a00d40b3d9fdaaf5891e802794781ff71c.zip | |
Merge commit 'v3.17' into next
Diffstat (limited to 'drivers/gpu/drm/udl/udl_modeset.c')
| -rw-r--r-- | drivers/gpu/drm/udl/udl_modeset.c | 21 | 
1 files changed, 21 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/udl/udl_modeset.c b/drivers/gpu/drm/udl/udl_modeset.c index cddc4fcf35cf..dc145d320b25 100644 --- a/drivers/gpu/drm/udl/udl_modeset.c +++ b/drivers/gpu/drm/udl/udl_modeset.c @@ -363,6 +363,26 @@ static void udl_crtc_destroy(struct drm_crtc *crtc)  	kfree(crtc);  } +static int udl_crtc_page_flip(struct drm_crtc *crtc, +			      struct drm_framebuffer *fb, +			      struct drm_pending_vblank_event *event, +			      uint32_t page_flip_flags) +{ +	struct udl_framebuffer *ufb = to_udl_fb(fb); +	struct drm_device *dev = crtc->dev; +	unsigned long flags; + +	udl_handle_damage(ufb, 0, 0, fb->width, fb->height); + +	spin_lock_irqsave(&dev->event_lock, flags); +	if (event) +		drm_send_vblank_event(dev, 0, event); +	spin_unlock_irqrestore(&dev->event_lock, flags); +	crtc->primary->fb = fb; + +	return 0; +} +  static void udl_crtc_prepare(struct drm_crtc *crtc)  {  } @@ -384,6 +404,7 @@ static struct drm_crtc_helper_funcs udl_helper_funcs = {  static const struct drm_crtc_funcs udl_crtc_funcs = {  	.set_config = drm_crtc_helper_set_config,  	.destroy = udl_crtc_destroy, +	.page_flip = udl_crtc_page_flip,  };  static int udl_crtc_init(struct drm_device *dev) | 
