diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-11-10 20:16:58 -0500 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-11-10 20:16:58 -0500 |
commit | 527f9e907c39f7e88abb57eaa8bccb43c8706a3d (patch) | |
tree | 57d00d812c45db7c26703a395ca100145a1bb292 /drivers | |
parent | 5d97eb69bd4767ce9973360881fa6ad161510fb0 (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.c | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_irq.c | 2 |
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 */ |
917 | void i915_hangcheck_elapsed(unsigned long data); | 916 | void i915_hangcheck_elapsed(unsigned long data); |
917 | void i915_handle_error(struct drm_device *dev, bool wedged); | ||
918 | extern int i915_irq_emit(struct drm_device *dev, void *data, | 918 | extern int i915_irq_emit(struct drm_device *dev, void *data, |
919 | struct drm_file *file_priv); | 919 | struct drm_file *file_priv); |
920 | extern int i915_irq_wait(struct drm_device *dev, void *data, | 920 | extern 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 | */ |
894 | static void i915_handle_error(struct drm_device *dev, bool wedged) | 894 | void 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 | ||