diff options
author | Eric Anholt <eric@anholt.net> | 2010-05-21 16:26:39 -0400 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-05-26 15:36:00 -0400 |
commit | 62fdfeaf8b1f487060b6e160e7b5cd90287607c9 (patch) | |
tree | df21e22cc6cc0a3409d35f8e4edd46595a129739 /drivers/gpu/drm/i915/i915_irq.c | |
parent | 79a78dd6266a4f3e31c800e941ec62e250770a7d (diff) |
drm/i915: Move ringbuffer-related code to intel_ringbuffer.c.
This is preparation for supporting multiple ringbuffers on Ironlake.
The non-copy-and-paste changes are:
- de-staticing functions
- I915_GEM_GPU_DOMAINS moving to i915_drv.h to be used by both files.
- i915_gem_add_request had only half its implementation
copy-and-pasted out of the middle of it.
Diffstat (limited to 'drivers/gpu/drm/i915/i915_irq.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_irq.c | 35 |
1 files changed, 2 insertions, 33 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 8c3f0802686..896184bfeb1 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c | |||
@@ -74,7 +74,7 @@ ironlake_enable_graphics_irq(drm_i915_private_t *dev_priv, u32 mask) | |||
74 | } | 74 | } |
75 | } | 75 | } |
76 | 76 | ||
77 | static inline void | 77 | void |
78 | ironlake_disable_graphics_irq(drm_i915_private_t *dev_priv, u32 mask) | 78 | ironlake_disable_graphics_irq(drm_i915_private_t *dev_priv, u32 mask) |
79 | { | 79 | { |
80 | if ((dev_priv->gt_irq_mask_reg & mask) != mask) { | 80 | if ((dev_priv->gt_irq_mask_reg & mask) != mask) { |
@@ -115,7 +115,7 @@ i915_enable_irq(drm_i915_private_t *dev_priv, u32 mask) | |||
115 | } | 115 | } |
116 | } | 116 | } |
117 | 117 | ||
118 | static inline void | 118 | void |
119 | i915_disable_irq(drm_i915_private_t *dev_priv, u32 mask) | 119 | i915_disable_irq(drm_i915_private_t *dev_priv, u32 mask) |
120 | { | 120 | { |
121 | if ((dev_priv->irq_mask_reg & mask) != mask) { | 121 | if ((dev_priv->irq_mask_reg & mask) != mask) { |
@@ -1006,37 +1006,6 @@ static int i915_emit_irq(struct drm_device * dev) | |||
1006 | return dev_priv->counter; | 1006 | return dev_priv->counter; |
1007 | } | 1007 | } |
1008 | 1008 | ||
1009 | void i915_user_irq_get(struct drm_device *dev) | ||
1010 | { | ||
1011 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | ||
1012 | unsigned long irqflags; | ||
1013 | |||
1014 | spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); | ||
1015 | if (dev->irq_enabled && (++dev_priv->user_irq_refcount == 1)) { | ||
1016 | if (HAS_PCH_SPLIT(dev)) | ||
1017 | ironlake_enable_graphics_irq(dev_priv, GT_PIPE_NOTIFY); | ||
1018 | else | ||
1019 | i915_enable_irq(dev_priv, I915_USER_INTERRUPT); | ||
1020 | } | ||
1021 | spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); | ||
1022 | } | ||
1023 | |||
1024 | void i915_user_irq_put(struct drm_device *dev) | ||
1025 | { | ||
1026 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | ||
1027 | unsigned long irqflags; | ||
1028 | |||
1029 | spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); | ||
1030 | BUG_ON(dev->irq_enabled && dev_priv->user_irq_refcount <= 0); | ||
1031 | if (dev->irq_enabled && (--dev_priv->user_irq_refcount == 0)) { | ||
1032 | if (HAS_PCH_SPLIT(dev)) | ||
1033 | ironlake_disable_graphics_irq(dev_priv, GT_PIPE_NOTIFY); | ||
1034 | else | ||
1035 | i915_disable_irq(dev_priv, I915_USER_INTERRUPT); | ||
1036 | } | ||
1037 | spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); | ||
1038 | } | ||
1039 | |||
1040 | void i915_trace_irq_get(struct drm_device *dev, u32 seqno) | 1009 | void i915_trace_irq_get(struct drm_device *dev, u32 seqno) |
1041 | { | 1010 | { |
1042 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 1011 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |