diff options
author | Dave Airlie <airlied@starflyer.(none)> | 2006-01-02 05:32:48 -0500 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2006-01-02 05:32:48 -0500 |
commit | d985c1088146607532093d9eaaaf99758f6a4d21 (patch) | |
tree | a289ae9a79e694ef1f0cf3b0a153c6d1258b7aa8 /drivers/char/drm/drm_lock.c | |
parent | b0cae664ebc85f2431c5a7c9e192a2a2ef72ecc7 (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.c | 18 |
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 | /** |