summaryrefslogtreecommitdiff
path: root/shared-core/via_drv.c
diff options
context:
space:
mode:
authorThomas Hellstrom <thomas-at-tungstengraphics-dot-com>2007-02-11 20:33:57 +0100
committerThomas Hellstrom <thomas-at-tungstengraphics-dot-com>2007-02-13 20:47:30 +0100
commite1460426b885ab656e3cda3fd3841d64260434c5 (patch)
tree1a53dce1fbacbfb0df953fbc8f282eeb335cedf4 /shared-core/via_drv.c
parent5bd13c5e15a14d34356f2363c55b1d4c7ca3269a (diff)
Bugzilla Bug #9457
Add refcounting of user waiters to the DRM hardware lock, so that we can use the DRM_LOCK_CONT flag more conservatively. Also add a kernel waiter refcount that if nonzero transfers the lock for the kernel context, when it is released. This is useful when waiting for idle and can be used for very simple fence object driver implementations for the new memory manager. It also resolves the AIGLX startup deadlock for the sis and the via drivers. i810, i830 still require that the hardware lock is really taken so the deadlock remains for those two. I'm not sure about ffb. Anyone familiar with that code?
Diffstat (limited to 'shared-core/via_drv.c')
-rw-r--r--shared-core/via_drv.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/shared-core/via_drv.c b/shared-core/via_drv.c
index 33b0a42d..1446af2c 100644
--- a/shared-core/via_drv.c
+++ b/shared-core/via_drv.c
@@ -57,8 +57,9 @@ static struct drm_driver driver = {
.dma_quiescent = via_driver_dma_quiescent,
.dri_library_name = dri_library_name,
.reclaim_buffers = drm_core_reclaim_buffers,
+ .reclaim_buffers_locked = NULL,
#ifdef VIA_HAVE_CORE_MM
- .reclaim_buffers_locked = via_reclaim_buffers_locked,
+ .reclaim_buffers_idlelocked = via_reclaim_buffers_locked,
.lastclose = via_lastclose,
#endif
.get_map_ofs = drm_core_get_map_ofs,