aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-07-22 21:49:58 -0400
committerDave Airlie <airlied@redhat.com>2013-08-29 19:24:54 -0400
commited8d19756e80ec63003a93aa4d70406e6ba61522 (patch)
tree2760615aea74843748e2793aa0db8af5eef9abc4 /drivers/gpu/drm/i915/intel_display.c
parente1e9c90eefbed92cb2142072918d9c5d1051256f (diff)
drm: Pass page flip ioctl flags to driver
This lets drivers see the flags requested by the application [airlied: fixup for rcar/imx/msm] Signed-off-by: Keith Packard <keithp@keithp.com> Signed-off-by: Dave Airlie <airlied@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 370c902fa629..b52f374d0f00 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -7481,7 +7481,8 @@ inline static void intel_mark_page_flip_active(struct intel_crtc *intel_crtc)
7481static int intel_gen2_queue_flip(struct drm_device *dev, 7481static int intel_gen2_queue_flip(struct drm_device *dev,
7482 struct drm_crtc *crtc, 7482 struct drm_crtc *crtc,
7483 struct drm_framebuffer *fb, 7483 struct drm_framebuffer *fb,
7484 struct drm_i915_gem_object *obj) 7484 struct drm_i915_gem_object *obj,
7485 uint32_t flags)
7485{ 7486{
7486 struct drm_i915_private *dev_priv = dev->dev_private; 7487 struct drm_i915_private *dev_priv = dev->dev_private;
7487 struct intel_crtc *intel_crtc = to_intel_crtc(crtc); 7488 struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
@@ -7525,7 +7526,8 @@ err:
7525static int intel_gen3_queue_flip(struct drm_device *dev, 7526static int intel_gen3_queue_flip(struct drm_device *dev,
7526 struct drm_crtc *crtc, 7527 struct drm_crtc *crtc,
7527 struct drm_framebuffer *fb, 7528 struct drm_framebuffer *fb,
7528 struct drm_i915_gem_object *obj) 7529 struct drm_i915_gem_object *obj,
7530 uint32_t flags)
7529{ 7531{
7530 struct drm_i915_private *dev_priv = dev->dev_private; 7532 struct drm_i915_private *dev_priv = dev->dev_private;
7531 struct intel_crtc *intel_crtc = to_intel_crtc(crtc); 7533 struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
@@ -7566,7 +7568,8 @@ err:
7566static int intel_gen4_queue_flip(struct drm_device *dev, 7568static int intel_gen4_queue_flip(struct drm_device *dev,
7567 struct drm_crtc *crtc, 7569 struct drm_crtc *crtc,
7568 struct drm_framebuffer *fb, 7570 struct drm_framebuffer *fb,
7569 struct drm_i915_gem_object *obj) 7571 struct drm_i915_gem_object *obj,
7572 uint32_t flags)
7570{ 7573{
7571 struct drm_i915_private *dev_priv = dev->dev_private; 7574 struct drm_i915_private *dev_priv = dev->dev_private;
7572 struct intel_crtc *intel_crtc = to_intel_crtc(crtc); 7575 struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
@@ -7614,7 +7617,8 @@ err:
7614static int intel_gen6_queue_flip(struct drm_device *dev, 7617static int intel_gen6_queue_flip(struct drm_device *dev,
7615 struct drm_crtc *crtc, 7618 struct drm_crtc *crtc,
7616 struct drm_framebuffer *fb, 7619 struct drm_framebuffer *fb,
7617 struct drm_i915_gem_object *obj) 7620 struct drm_i915_gem_object *obj,
7621 uint32_t flags)
7618{ 7622{
7619 struct drm_i915_private *dev_priv = dev->dev_private; 7623 struct drm_i915_private *dev_priv = dev->dev_private;
7620 struct intel_crtc *intel_crtc = to_intel_crtc(crtc); 7624 struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
@@ -7664,7 +7668,8 @@ err:
7664static int intel_gen7_queue_flip(struct drm_device *dev, 7668static int intel_gen7_queue_flip(struct drm_device *dev,
7665 struct drm_crtc *crtc, 7669 struct drm_crtc *crtc,
7666 struct drm_framebuffer *fb, 7670 struct drm_framebuffer *fb,
7667 struct drm_i915_gem_object *obj) 7671 struct drm_i915_gem_object *obj,
7672 uint32_t flags)
7668{ 7673{
7669 struct drm_i915_private *dev_priv = dev->dev_private; 7674 struct drm_i915_private *dev_priv = dev->dev_private;
7670 struct intel_crtc *intel_crtc = to_intel_crtc(crtc); 7675 struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
@@ -7714,14 +7719,16 @@ err:
7714static int intel_default_queue_flip(struct drm_device *dev, 7719static int intel_default_queue_flip(struct drm_device *dev,
7715 struct drm_crtc *crtc, 7720 struct drm_crtc *crtc,
7716 struct drm_framebuffer *fb, 7721 struct drm_framebuffer *fb,
7717 struct drm_i915_gem_object *obj) 7722 struct drm_i915_gem_object *obj,
7723 uint32_t flags)
7718{ 7724{
7719 return -ENODEV; 7725 return -ENODEV;
7720} 7726}
7721 7727
7722static int intel_crtc_page_flip(struct drm_crtc *crtc, 7728static int intel_crtc_page_flip(struct drm_crtc *crtc,
7723 struct drm_framebuffer *fb, 7729 struct drm_framebuffer *fb,
7724 struct drm_pending_vblank_event *event) 7730 struct drm_pending_vblank_event *event,
7731 uint32_t page_flip_flags)
7725{ 7732{
7726 struct drm_device *dev = crtc->dev; 7733 struct drm_device *dev = crtc->dev;
7727 struct drm_i915_private *dev_priv = dev->dev_private; 7734 struct drm_i915_private *dev_priv = dev->dev_private;
@@ -7791,7 +7798,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
7791 atomic_inc(&intel_crtc->unpin_work_count); 7798 atomic_inc(&intel_crtc->unpin_work_count);
7792 intel_crtc->reset_counter = atomic_read(&dev_priv->gpu_error.reset_counter); 7799 intel_crtc->reset_counter = atomic_read(&dev_priv->gpu_error.reset_counter);
7793 7800
7794 ret = dev_priv->display.queue_flip(dev, crtc, fb, obj); 7801 ret = dev_priv->display.queue_flip(dev, crtc, fb, obj, page_flip_flags);
7795 if (ret) 7802 if (ret)
7796 goto cleanup_pending; 7803 goto cleanup_pending;
7797 7804