aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/drm/drm_lock.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@starflyer.(none)>2006-01-02 05:32:48 -0500
committerDave Airlie <airlied@linux.ie>2006-01-02 05:32:48 -0500
commitd985c1088146607532093d9eaaaf99758f6a4d21 (patch)
treea289ae9a79e694ef1f0cf3b0a153c6d1258b7aa8 /drivers/char/drm/drm_lock.c
parentb0cae664ebc85f2431c5a7c9e192a2a2ef72ecc7 (diff)
drm: major update from CVS for radeon and core
This patch pull in a lot of changes from CVS to the main core DRM, and updates the radeon driver to 1.21.0 that supports r300 texrect and radeon card type ioctl. Signed-off-by: Dave Airlie <airlied@linux.ie>
Diffstat (limited to 'drivers/char/drm/drm_lock.c')
-rw-r--r--drivers/char/drm/drm_lock.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/char/drm/drm_lock.c b/drivers/char/drm/drm_lock.c
index b276ae8a6633..f970dc36c18f 100644
--- a/drivers/char/drm/drm_lock.c
+++ b/drivers/char/drm/drm_lock.c
@@ -104,6 +104,9 @@ int drm_lock(struct inode *inode, struct file *filp,
104 __set_current_state(TASK_RUNNING); 104 __set_current_state(TASK_RUNNING);
105 remove_wait_queue(&dev->lock.lock_queue, &entry); 105 remove_wait_queue(&dev->lock.lock_queue, &entry);
106 106
107 DRM_DEBUG( "%d %s\n", lock.context, ret ? "interrupted" : "has lock" );
108 if (ret) return ret;
109
107 sigemptyset(&dev->sigmask); 110 sigemptyset(&dev->sigmask);
108 sigaddset(&dev->sigmask, SIGSTOP); 111 sigaddset(&dev->sigmask, SIGSTOP);
109 sigaddset(&dev->sigmask, SIGTSTP); 112 sigaddset(&dev->sigmask, SIGTSTP);
@@ -116,21 +119,20 @@ int drm_lock(struct inode *inode, struct file *filp,
116 if (dev->driver->dma_ready && (lock.flags & _DRM_LOCK_READY)) 119 if (dev->driver->dma_ready && (lock.flags & _DRM_LOCK_READY))
117 dev->driver->dma_ready(dev); 120 dev->driver->dma_ready(dev);
118 121
119 if (dev->driver->dma_quiescent && (lock.flags & _DRM_LOCK_QUIESCENT)) 122 if (dev->driver->dma_quiescent && (lock.flags & _DRM_LOCK_QUIESCENT)) {
120 return dev->driver->dma_quiescent(dev); 123 if (dev->driver->dma_quiescent(dev)) {
121 124 DRM_DEBUG( "%d waiting for DMA quiescent\n", lock.context);
122 /* dev->driver->kernel_context_switch isn't used by any of the x86 125 return DRM_ERR(EBUSY);
123 * drivers but is used by the Sparc driver. 126 }
124 */ 127 }
125 128
126 if (dev->driver->kernel_context_switch && 129 if (dev->driver->kernel_context_switch &&
127 dev->last_context != lock.context) { 130 dev->last_context != lock.context) {
128 dev->driver->kernel_context_switch(dev, dev->last_context, 131 dev->driver->kernel_context_switch(dev, dev->last_context,
129 lock.context); 132 lock.context);
130 } 133 }
131 DRM_DEBUG("%d %s\n", lock.context, ret ? "interrupted" : "has lock");
132 134
133 return ret; 135 return 0;
134} 136}
135 137
136/** 138/**