diff options
author | Keith Packard <keithp@keithp.com> | 2013-07-22 21:49:58 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-08-29 19:24:54 -0400 |
commit | ed8d19756e80ec63003a93aa4d70406e6ba61522 (patch) | |
tree | 2760615aea74843748e2793aa0db8af5eef9abc4 /drivers/gpu/drm/i915/intel_display.c | |
parent | e1e9c90eefbed92cb2142072918d9c5d1051256f (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.c | 23 |
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) | |||
7481 | static int intel_gen2_queue_flip(struct drm_device *dev, | 7481 | static 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: | |||
7525 | static int intel_gen3_queue_flip(struct drm_device *dev, | 7526 | static 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: | |||
7566 | static int intel_gen4_queue_flip(struct drm_device *dev, | 7568 | static 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: | |||
7614 | static int intel_gen6_queue_flip(struct drm_device *dev, | 7617 | static 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: | |||
7664 | static int intel_gen7_queue_flip(struct drm_device *dev, | 7668 | static 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: | |||
7714 | static int intel_default_queue_flip(struct drm_device *dev, | 7719 | static 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 | ||
7722 | static int intel_crtc_page_flip(struct drm_crtc *crtc, | 7728 | static 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 | ||