summaryrefslogtreecommitdiff
path: root/linux-core/drm_lock.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2008-06-11 16:19:23 -0700
committerEric Anholt <eric@anholt.net>2008-06-11 16:19:23 -0700
commitb2606e325ac02782297def5ce27028c7fe2287c8 (patch)
treea263ce59974aacbff791b3d170b5ca76ef95ea12 /linux-core/drm_lock.c
parent57b4c4c32d3b474939775042bb8a17423def446d (diff)
[gem] Remove the drm_client_lock_take in set_domain.
We no longer need to use it to protect against shared ringbuffer access.
Diffstat (limited to 'linux-core/drm_lock.c')
-rw-r--r--linux-core/drm_lock.c56
1 files changed, 0 insertions, 56 deletions
diff --git a/linux-core/drm_lock.c b/linux-core/drm_lock.c
index e6eae42b..e8496a25 100644
--- a/linux-core/drm_lock.c
+++ b/linux-core/drm_lock.c
@@ -375,62 +375,6 @@ void drm_idlelock_release(struct drm_lock_data *lock_data)
}
EXPORT_SYMBOL(drm_idlelock_release);
-/**
- * Takes the lock on behalf of the client if needed, using the kernel context.
- *
- * This allows us to hide the hardware lock when it's required for protection
- * of data structures (such as command ringbuffer) shared with the X Server, and
- * a way for us to transition to lockless for those requests when the X Server
- * stops accessing the ringbuffer directly, without having to update the
- * other userland clients.
- */
-int drm_client_lock_take(struct drm_device *dev, struct drm_file *file_priv)
-{
- int ret;
- unsigned long irqflags;
-
- /* If the client has the lock, we're already done. */
- if (drm_i_have_hw_lock(dev, file_priv))
- return 0;
-
- mutex_unlock (&dev->struct_mutex);
- /* Client doesn't hold the lock. Block taking the lock with the kernel
- * context on behalf of the client, and return whether we were
- * successful.
- */
- spin_lock_irqsave(&dev->lock.spinlock, irqflags);
- dev->lock.user_waiters++;
- spin_unlock_irqrestore(&dev->lock.spinlock, irqflags);
- ret = wait_event_interruptible(dev->lock.lock_queue,
- drm_lock_take(&dev->lock,
- DRM_KERNEL_CONTEXT));
- spin_lock_irqsave(&dev->lock.spinlock, irqflags);
- dev->lock.user_waiters--;
- if (ret != 0) {
- spin_unlock_irqrestore(&dev->lock.spinlock, irqflags);
- } else {
- dev->lock.file_priv = file_priv;
- dev->lock.lock_time = jiffies;
- dev->lock.kernel_held = 1;
- file_priv->lock_count++;
- spin_unlock_irqrestore(&dev->lock.spinlock, irqflags);
- }
- mutex_lock (&dev->struct_mutex);
- return ret;
-}
-EXPORT_SYMBOL(drm_client_lock_take);
-
-void drm_client_lock_release(struct drm_device *dev)
-{
- if (dev->lock.kernel_held) {
- dev->lock.kernel_held = 0;
- dev->lock.file_priv = NULL;
- drm_lock_free(&dev->lock, DRM_KERNEL_CONTEXT);
- }
-}
-EXPORT_SYMBOL(drm_client_lock_release);
-
-
int drm_i_have_hw_lock(struct drm_device *dev, struct drm_file *file_priv)
{