aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-11-10 20:16:58 -0500
committerChris Wilson <chris@chris-wilson.co.uk>2010-11-10 20:16:58 -0500
commit527f9e907c39f7e88abb57eaa8bccb43c8706a3d (patch)
tree57d00d812c45db7c26703a395ca100145a1bb292 /drivers
parent5d97eb69bd4767ce9973360881fa6ad161510fb0 (diff)
drm/i915: Remove the global irq wait queue
... as it has been replaced by per-ring waiters. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/i915/i915_debugfs.c8
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h2
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c2
3 files changed, 3 insertions, 9 deletions
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 9cb6061bf9d5..4c8fae9baaad 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1022,7 +1022,6 @@ i915_wedged_write(struct file *filp,
1022 loff_t *ppos) 1022 loff_t *ppos)
1023{ 1023{
1024 struct drm_device *dev = filp->private_data; 1024 struct drm_device *dev = filp->private_data;
1025 drm_i915_private_t *dev_priv = dev->dev_private;
1026 char buf[20]; 1025 char buf[20];
1027 int val = 1; 1026 int val = 1;
1028 1027
@@ -1038,12 +1037,7 @@ i915_wedged_write(struct file *filp,
1038 } 1037 }
1039 1038
1040 DRM_INFO("Manually setting wedged to %d\n", val); 1039 DRM_INFO("Manually setting wedged to %d\n", val);
1041 1040 i915_handle_error(dev, val);
1042 atomic_set(&dev_priv->mm.wedged, val);
1043 if (val) {
1044 wake_up_all(&dev_priv->irq_queue);
1045 queue_work(dev_priv->wq, &dev_priv->error_work);
1046 }
1047 1041
1048 return cnt; 1042 return cnt;
1049} 1043}
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index ff7593f70f0f..30d7a7bc6f2e 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -289,7 +289,6 @@ typedef struct drm_i915_private {
289 int current_page; 289 int current_page;
290 int page_flipping; 290 int page_flipping;
291 291
292 wait_queue_head_t irq_queue;
293 atomic_t irq_received; 292 atomic_t irq_received;
294 /** Protects user_irq_refcount and irq_mask_reg */ 293 /** Protects user_irq_refcount and irq_mask_reg */
295 spinlock_t user_irq_lock; 294 spinlock_t user_irq_lock;
@@ -915,6 +914,7 @@ extern void i915_update_gfx_val(struct drm_i915_private *dev_priv);
915 914
916/* i915_irq.c */ 915/* i915_irq.c */
917void i915_hangcheck_elapsed(unsigned long data); 916void i915_hangcheck_elapsed(unsigned long data);
917void i915_handle_error(struct drm_device *dev, bool wedged);
918extern int i915_irq_emit(struct drm_device *dev, void *data, 918extern int i915_irq_emit(struct drm_device *dev, void *data,
919 struct drm_file *file_priv); 919 struct drm_file *file_priv);
920extern int i915_irq_wait(struct drm_device *dev, void *data, 920extern int i915_irq_wait(struct drm_device *dev, void *data,
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 3ec631f1129d..4a0664ea49b9 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -891,7 +891,7 @@ static void i915_report_and_clear_eir(struct drm_device *dev)
891 * so userspace knows something bad happened (should trigger collection 891 * so userspace knows something bad happened (should trigger collection
892 * of a ring dump etc.). 892 * of a ring dump etc.).
893 */ 893 */
894static void i915_handle_error(struct drm_device *dev, bool wedged) 894void i915_handle_error(struct drm_device *dev, bool wedged)
895{ 895{
896 struct drm_i915_private *dev_priv = dev->dev_private; 896 struct drm_i915_private *dev_priv = dev->dev_private;
897 897