diff options
Diffstat (limited to 'sys/dev/pci/drm/radeon')
-rw-r--r-- | sys/dev/pci/drm/radeon/r100.c | 13 | ||||
-rw-r--r-- | sys/dev/pci/drm/radeon/radeon_device.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/drm/radeon/radeon_display.c | 28 | ||||
-rw-r--r-- | sys/dev/pci/drm/radeon/radeon_irq_kms.c | 58 | ||||
-rw-r--r-- | sys/dev/pci/drm/radeon/radeon_kms.c | 12 | ||||
-rw-r--r-- | sys/dev/pci/drm/radeon/radeon_object.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/drm/radeon/radeon_sa.c | 20 | ||||
-rw-r--r-- | sys/dev/pci/drm/radeon/radeon_ttm.c | 6 |
8 files changed, 86 insertions, 63 deletions
diff --git a/sys/dev/pci/drm/radeon/r100.c b/sys/dev/pci/drm/radeon/r100.c index f26029c7ed1..38d9dc8e035 100644 --- a/sys/dev/pci/drm/radeon/r100.c +++ b/sys/dev/pci/drm/radeon/r100.c @@ -1,4 +1,4 @@ -/* $OpenBSD: r100.c,v 1.8 2014/07/12 18:48:52 tedu Exp $ */ +/* $OpenBSD: r100.c,v 1.9 2015/02/10 10:50:49 jsg Exp $ */ /* * Copyright 2008 Advanced Micro Devices, Inc. * Copyright 2008 Red Hat Inc. @@ -4196,14 +4196,15 @@ uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg, return bus_space_read_4(rdev->memt, rdev->rmmio, reg); else { + unsigned long flags; uint32_t ret; - mtx_enter(&rdev->mmio_idx_lock); + spin_lock_irqsave(&rdev->mmio_idx_lock, flags); bus_space_write_4(rdev->memt, rdev->rmmio, RADEON_MM_INDEX, reg); ret = bus_space_read_4(rdev->memt, rdev->rmmio, RADEON_MM_DATA); - mtx_leave(&rdev->mmio_idx_lock); + spin_unlock_irqrestore(&rdev->mmio_idx_lock, flags); return ret; } @@ -4215,12 +4216,14 @@ void r100_mm_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v, if (reg < rdev->rmmio_size && !always_indirect) bus_space_write_4(rdev->memt, rdev->rmmio, reg, v); else { - mtx_enter(&rdev->mmio_idx_lock); + unsigned long flags; + + spin_lock_irqsave(&rdev->mmio_idx_lock, flags); bus_space_write_4(rdev->memt, rdev->rmmio, RADEON_MM_INDEX, reg); bus_space_write_4(rdev->memt, rdev->rmmio, RADEON_MM_DATA, v); - mtx_leave(&rdev->mmio_idx_lock); + spin_unlock_irqrestore(&rdev->mmio_idx_lock, flags); } } diff --git a/sys/dev/pci/drm/radeon/radeon_device.c b/sys/dev/pci/drm/radeon/radeon_device.c index 5e095dbbeb2..b476e5e4db7 100644 --- a/sys/dev/pci/drm/radeon/radeon_device.c +++ b/sys/dev/pci/drm/radeon/radeon_device.c @@ -1,4 +1,4 @@ -/* $OpenBSD: radeon_device.c,v 1.7 2015/02/10 06:19:36 jsg Exp $ */ +/* $OpenBSD: radeon_device.c,v 1.8 2015/02/10 10:50:49 jsg Exp $ */ /* * Copyright 2008 Advanced Micro Devices, Inc. * Copyright 2008 Red Hat Inc. @@ -986,9 +986,9 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev) struct drm_device *dev = pci_get_drvdata(pdev); bool can_switch; - mtx_enter(&dev->count_lock); + spin_lock(&dev->count_lock); can_switch = (dev->open_count == 0); - mtx_leave(&dev->count_lock); + spin_unlock(&dev->count_lock); return can_switch; } diff --git a/sys/dev/pci/drm/radeon/radeon_display.c b/sys/dev/pci/drm/radeon/radeon_display.c index 17b2f9bb367..b634e82630b 100644 --- a/sys/dev/pci/drm/radeon/radeon_display.c +++ b/sys/dev/pci/drm/radeon/radeon_display.c @@ -1,4 +1,4 @@ -/* $OpenBSD: radeon_display.c,v 1.8 2015/01/27 03:17:36 dlg Exp $ */ +/* $OpenBSD: radeon_display.c,v 1.9 2015/02/10 10:50:49 jsg Exp $ */ /* * Copyright 2007-8 Advanced Micro Devices, Inc. * Copyright 2008 Red Hat Inc. @@ -275,15 +275,16 @@ void radeon_crtc_handle_flip(struct radeon_device *rdev, int crtc_id) struct radeon_unpin_work *work; struct drm_pending_vblank_event *e; struct timeval now; + unsigned long flags; struct drm_file *file_priv; u32 update_pending; int vpos, hpos; - mtx_enter(&rdev->ddev->event_lock); + spin_lock_irqsave(&rdev->ddev->event_lock, flags); work = radeon_crtc->unpin_work; if (work == NULL || (work->fence && !radeon_fence_signaled(work->fence))) { - mtx_leave(&rdev->ddev->event_lock); + spin_unlock_irqrestore(&rdev->ddev->event_lock, flags); return; } /* New pageflip, or just completion of a previous one? */ @@ -322,7 +323,7 @@ void radeon_crtc_handle_flip(struct radeon_device *rdev, int crtc_id) * next vblank irq. */ radeon_crtc->deferred_flip_completion = 1; - mtx_leave(&rdev->ddev->event_lock); + spin_unlock_irqrestore(&rdev->ddev->event_lock, flags); return; } @@ -340,7 +341,7 @@ void radeon_crtc_handle_flip(struct radeon_device *rdev, int crtc_id) wakeup(&file_priv->evlist); selwakeup(&file_priv->rsel); } - mtx_leave(&rdev->ddev->event_lock); + spin_unlock_irqrestore(&rdev->ddev->event_lock, flags); drm_vblank_put(rdev->ddev, radeon_crtc->crtc_id); radeon_fence_unref(&work->fence); @@ -360,6 +361,7 @@ static int radeon_crtc_page_flip(struct drm_crtc *crtc, struct drm_gem_object *obj; struct radeon_bo *rbo; struct radeon_unpin_work *work; + unsigned long flags; u32 tiling_flags, pitch_pixels; u64 base; int r; @@ -382,15 +384,15 @@ static int radeon_crtc_page_flip(struct drm_crtc *crtc, obj = new_radeon_fb->obj; rbo = gem_to_radeon_bo(obj); - mtx_enter(&rbo->tbo.bdev->fence_lock); + spin_lock(&rbo->tbo.bdev->fence_lock); if (rbo->tbo.sync_obj) work->fence = radeon_fence_ref(rbo->tbo.sync_obj); - mtx_leave(&rbo->tbo.bdev->fence_lock); + spin_unlock(&rbo->tbo.bdev->fence_lock); task_set(&work->task, radeon_unpin_work_func, work); /* We borrow the event spin lock for protecting unpin_work */ - mtx_enter(&dev->event_lock); + spin_lock_irqsave(&dev->event_lock, flags); if (radeon_crtc->unpin_work) { DRM_DEBUG_DRIVER("flip queue: crtc already busy\n"); r = -EBUSY; @@ -398,7 +400,7 @@ static int radeon_crtc_page_flip(struct drm_crtc *crtc, } radeon_crtc->unpin_work = work; radeon_crtc->deferred_flip_completion = 0; - mtx_leave(&dev->event_lock); + spin_unlock_irqrestore(&dev->event_lock, flags); /* pin the new buffer */ DRM_DEBUG_DRIVER("flip-ioctl() cur_fbo = %p, cur_bbo = %p\n", @@ -457,9 +459,9 @@ static int radeon_crtc_page_flip(struct drm_crtc *crtc, base &= ~7; } - mtx_enter(&dev->event_lock); + spin_lock_irqsave(&dev->event_lock, flags); work->new_crtc_base = base; - mtx_leave(&dev->event_lock); + spin_unlock_irqrestore(&dev->event_lock, flags); /* update crtc fb */ crtc->fb = fb; @@ -486,10 +488,10 @@ pflip_cleanup1: radeon_bo_unreserve(rbo); pflip_cleanup: - mtx_enter(&dev->event_lock); + spin_lock_irqsave(&dev->event_lock, flags); radeon_crtc->unpin_work = NULL; unlock_free: - mtx_leave(&dev->event_lock); + spin_unlock_irqrestore(&dev->event_lock, flags); drm_gem_object_unreference_unlocked(old_radeon_fb->obj); radeon_fence_unref(&work->fence); kfree(work); diff --git a/sys/dev/pci/drm/radeon/radeon_irq_kms.c b/sys/dev/pci/drm/radeon/radeon_irq_kms.c index affdcfd95de..31754dd2114 100644 --- a/sys/dev/pci/drm/radeon/radeon_irq_kms.c +++ b/sys/dev/pci/drm/radeon/radeon_irq_kms.c @@ -1,4 +1,4 @@ -/* $OpenBSD: radeon_irq_kms.c,v 1.5 2015/01/27 03:17:36 dlg Exp $ */ +/* $OpenBSD: radeon_irq_kms.c,v 1.6 2015/02/10 10:50:49 jsg Exp $ */ /* * Copyright 2008 Advanced Micro Devices, Inc. * Copyright 2008 Red Hat Inc. @@ -102,9 +102,10 @@ radeon_hotplug_work_func(void *arg1) void radeon_driver_irq_preinstall_kms(struct drm_device *dev) { struct radeon_device *rdev = dev->dev_private; + unsigned long irqflags; unsigned i; - mtx_enter(&rdev->irq.lock); + spin_lock_irqsave(&rdev->irq.lock, irqflags); /* Disable *all* interrupts */ for (i = 0; i < RADEON_NUM_RINGS; i++) atomic_set(&rdev->irq.ring_int[i], 0); @@ -116,7 +117,7 @@ void radeon_driver_irq_preinstall_kms(struct drm_device *dev) rdev->irq.afmt[i] = false; } radeon_irq_set(rdev); - mtx_leave(&rdev->irq.lock); + spin_unlock_irqrestore(&rdev->irq.lock, irqflags); /* Clear bits */ radeon_irq_process(rdev); } @@ -145,12 +146,13 @@ int radeon_driver_irq_postinstall_kms(struct drm_device *dev) void radeon_driver_irq_uninstall_kms(struct drm_device *dev) { struct radeon_device *rdev = dev->dev_private; + unsigned long irqflags; unsigned i; if (rdev == NULL) { return; } - mtx_enter(&rdev->irq.lock); + spin_lock_irqsave(&rdev->irq.lock, irqflags); /* Disable *all* interrupts */ for (i = 0; i < RADEON_NUM_RINGS; i++) atomic_set(&rdev->irq.ring_int[i], 0); @@ -162,7 +164,7 @@ void radeon_driver_irq_uninstall_kms(struct drm_device *dev) rdev->irq.afmt[i] = false; } radeon_irq_set(rdev); - mtx_leave(&rdev->irq.lock); + spin_unlock_irqrestore(&rdev->irq.lock, irqflags); } /** @@ -315,13 +317,15 @@ void radeon_irq_kms_fini(struct radeon_device *rdev) */ void radeon_irq_kms_sw_irq_get(struct radeon_device *rdev, int ring) { + unsigned long irqflags; + if (!rdev->ddev->irq_enabled) return; if (atomic_inc_return(&rdev->irq.ring_int[ring]) == 1) { - mtx_enter(&rdev->irq.lock); + spin_lock_irqsave(&rdev->irq.lock, irqflags); radeon_irq_set(rdev); - mtx_leave(&rdev->irq.lock); + spin_unlock_irqrestore(&rdev->irq.lock, irqflags); } } @@ -337,13 +341,15 @@ void radeon_irq_kms_sw_irq_get(struct radeon_device *rdev, int ring) */ void radeon_irq_kms_sw_irq_put(struct radeon_device *rdev, int ring) { + unsigned long irqflags; + if (!rdev->ddev->irq_enabled) return; if (atomic_dec_and_test(&rdev->irq.ring_int[ring])) { - mtx_enter(&rdev->irq.lock); + spin_lock_irqsave(&rdev->irq.lock, irqflags); radeon_irq_set(rdev); - mtx_leave(&rdev->irq.lock); + spin_unlock_irqrestore(&rdev->irq.lock, irqflags); } } @@ -358,6 +364,8 @@ void radeon_irq_kms_sw_irq_put(struct radeon_device *rdev, int ring) */ void radeon_irq_kms_pflip_irq_get(struct radeon_device *rdev, int crtc) { + unsigned long irqflags; + if (crtc < 0 || crtc >= rdev->num_crtc) return; @@ -365,9 +373,9 @@ void radeon_irq_kms_pflip_irq_get(struct radeon_device *rdev, int crtc) return; if (atomic_inc_return(&rdev->irq.pflip[crtc]) == 1) { - mtx_enter(&rdev->irq.lock); + spin_lock_irqsave(&rdev->irq.lock, irqflags); radeon_irq_set(rdev); - mtx_leave(&rdev->irq.lock); + spin_unlock_irqrestore(&rdev->irq.lock, irqflags); } } @@ -382,6 +390,8 @@ void radeon_irq_kms_pflip_irq_get(struct radeon_device *rdev, int crtc) */ void radeon_irq_kms_pflip_irq_put(struct radeon_device *rdev, int crtc) { + unsigned long irqflags; + if (crtc < 0 || crtc >= rdev->num_crtc) return; @@ -389,9 +399,9 @@ void radeon_irq_kms_pflip_irq_put(struct radeon_device *rdev, int crtc) return; if (atomic_dec_and_test(&rdev->irq.pflip[crtc])) { - mtx_enter(&rdev->irq.lock); + spin_lock_irqsave(&rdev->irq.lock, irqflags); radeon_irq_set(rdev); - mtx_leave(&rdev->irq.lock); + spin_unlock_irqrestore(&rdev->irq.lock, irqflags); } } @@ -405,13 +415,15 @@ void radeon_irq_kms_pflip_irq_put(struct radeon_device *rdev, int crtc) */ void radeon_irq_kms_enable_afmt(struct radeon_device *rdev, int block) { + unsigned long irqflags; + if (!rdev->ddev->irq_enabled) return; - mtx_enter(&rdev->irq.lock); + spin_lock_irqsave(&rdev->irq.lock, irqflags); rdev->irq.afmt[block] = true; radeon_irq_set(rdev); - mtx_leave(&rdev->irq.lock); + spin_unlock_irqrestore(&rdev->irq.lock, irqflags); } @@ -425,13 +437,15 @@ void radeon_irq_kms_enable_afmt(struct radeon_device *rdev, int block) */ void radeon_irq_kms_disable_afmt(struct radeon_device *rdev, int block) { + unsigned long irqflags; + if (!rdev->ddev->irq_enabled) return; - mtx_enter(&rdev->irq.lock); + spin_lock_irqsave(&rdev->irq.lock, irqflags); rdev->irq.afmt[block] = false; radeon_irq_set(rdev); - mtx_leave(&rdev->irq.lock); + spin_unlock_irqrestore(&rdev->irq.lock, irqflags); } /** @@ -444,16 +458,17 @@ void radeon_irq_kms_disable_afmt(struct radeon_device *rdev, int block) */ void radeon_irq_kms_enable_hpd(struct radeon_device *rdev, unsigned hpd_mask) { + unsigned long irqflags; int i; if (!rdev->ddev->irq_enabled) return; - mtx_enter(&rdev->irq.lock); + spin_lock_irqsave(&rdev->irq.lock, irqflags); for (i = 0; i < RADEON_MAX_HPD_PINS; ++i) rdev->irq.hpd[i] |= !!(hpd_mask & (1 << i)); radeon_irq_set(rdev); - mtx_leave(&rdev->irq.lock); + spin_unlock_irqrestore(&rdev->irq.lock, irqflags); } /** @@ -466,15 +481,16 @@ void radeon_irq_kms_enable_hpd(struct radeon_device *rdev, unsigned hpd_mask) */ void radeon_irq_kms_disable_hpd(struct radeon_device *rdev, unsigned hpd_mask) { + unsigned long irqflags; int i; if (!rdev->ddev->irq_enabled) return; - mtx_enter(&rdev->irq.lock); + spin_lock_irqsave(&rdev->irq.lock, irqflags); for (i = 0; i < RADEON_MAX_HPD_PINS; ++i) rdev->irq.hpd[i] &= !(hpd_mask & (1 << i)); radeon_irq_set(rdev); - mtx_leave(&rdev->irq.lock); + spin_unlock_irqrestore(&rdev->irq.lock, irqflags); } diff --git a/sys/dev/pci/drm/radeon/radeon_kms.c b/sys/dev/pci/drm/radeon/radeon_kms.c index 700c510e486..05a6a359db8 100644 --- a/sys/dev/pci/drm/radeon/radeon_kms.c +++ b/sys/dev/pci/drm/radeon/radeon_kms.c @@ -1,4 +1,4 @@ -/* $OpenBSD: radeon_kms.c,v 1.33 2015/02/10 01:39:32 jsg Exp $ */ +/* $OpenBSD: radeon_kms.c,v 1.34 2015/02/10 10:50:49 jsg Exp $ */ /* * Copyright 2008 Advanced Micro Devices, Inc. * Copyright 2008 Red Hat Inc. @@ -1235,6 +1235,7 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc) int radeon_enable_vblank_kms(struct drm_device *dev, int crtc) { struct radeon_device *rdev = dev->dev_private; + unsigned long irqflags; int r; if (crtc < 0 || crtc >= rdev->num_crtc) { @@ -1242,10 +1243,10 @@ int radeon_enable_vblank_kms(struct drm_device *dev, int crtc) return -EINVAL; } - mtx_enter(&rdev->irq.lock); + spin_lock_irqsave(&rdev->irq.lock, irqflags); rdev->irq.crtc_vblank_int[crtc] = true; r = radeon_irq_set(rdev); - mtx_leave(&rdev->irq.lock); + spin_unlock_irqrestore(&rdev->irq.lock, irqflags); return r; } @@ -1260,16 +1261,17 @@ int radeon_enable_vblank_kms(struct drm_device *dev, int crtc) void radeon_disable_vblank_kms(struct drm_device *dev, int crtc) { struct radeon_device *rdev = dev->dev_private; + unsigned long irqflags; if (crtc < 0 || crtc >= rdev->num_crtc) { DRM_ERROR("Invalid crtc %d\n", crtc); return; } - mtx_enter(&rdev->irq.lock); + spin_lock_irqsave(&rdev->irq.lock, irqflags); rdev->irq.crtc_vblank_int[crtc] = false; radeon_irq_set(rdev); - mtx_leave(&rdev->irq.lock); + spin_unlock_irqrestore(&rdev->irq.lock, irqflags); } /** diff --git a/sys/dev/pci/drm/radeon/radeon_object.c b/sys/dev/pci/drm/radeon/radeon_object.c index deb435fd547..e34be49f99f 100644 --- a/sys/dev/pci/drm/radeon/radeon_object.c +++ b/sys/dev/pci/drm/radeon/radeon_object.c @@ -1,4 +1,4 @@ -/* $OpenBSD: radeon_object.c,v 1.6 2015/02/10 06:19:36 jsg Exp $ */ +/* $OpenBSD: radeon_object.c,v 1.7 2015/02/10 10:50:49 jsg Exp $ */ /* * Copyright 2009 Jerome Glisse. * All Rights Reserved. @@ -632,12 +632,12 @@ int radeon_bo_wait(struct radeon_bo *bo, u32 *mem_type, bool no_wait) r = ttm_bo_reserve(&bo->tbo, true, no_wait, false, 0); if (unlikely(r != 0)) return r; - mtx_enter(&bo->tbo.bdev->fence_lock); + spin_lock(&bo->tbo.bdev->fence_lock); if (mem_type) *mem_type = bo->tbo.mem.mem_type; if (bo->tbo.sync_obj) r = ttm_bo_wait(&bo->tbo, true, true, no_wait); - mtx_leave(&bo->tbo.bdev->fence_lock); + spin_unlock(&bo->tbo.bdev->fence_lock); ttm_bo_unreserve(&bo->tbo); return r; } diff --git a/sys/dev/pci/drm/radeon/radeon_sa.c b/sys/dev/pci/drm/radeon/radeon_sa.c index 55682dfd9ce..e43b2608ddb 100644 --- a/sys/dev/pci/drm/radeon/radeon_sa.c +++ b/sys/dev/pci/drm/radeon/radeon_sa.c @@ -1,4 +1,4 @@ -/* $OpenBSD: radeon_sa.c,v 1.4 2014/02/09 23:57:04 jsg Exp $ */ +/* $OpenBSD: radeon_sa.c,v 1.5 2015/02/10 10:50:49 jsg Exp $ */ /* * Copyright 2011 Red Hat Inc. * All Rights Reserved. @@ -342,7 +342,7 @@ int radeon_sa_bo_new(struct radeon_device *rdev, INIT_LIST_HEAD(&(*sa_bo)->olist); INIT_LIST_HEAD(&(*sa_bo)->flist); - mtx_enter(&sa_manager->wq_lock); + spin_lock(&sa_manager->wq_lock); do { for (i = 0; i < RADEON_NUM_RINGS; ++i) { fences[i] = NULL; @@ -354,16 +354,16 @@ int radeon_sa_bo_new(struct radeon_device *rdev, if (radeon_sa_bo_try_alloc(sa_manager, *sa_bo, size, align)) { - mtx_leave(&sa_manager->wq_lock); + spin_unlock(&sa_manager->wq_lock); return 0; } /* see if we can skip over some allocations */ } while (radeon_sa_bo_next_hole(sa_manager, fences, tries)); - mtx_leave(&sa_manager->wq_lock); + spin_unlock(&sa_manager->wq_lock); r = radeon_fence_wait_any(rdev, fences, false); - mtx_enter(&sa_manager->wq_lock); + spin_lock(&sa_manager->wq_lock); /* if we have nothing to wait for block */ if (r == -ENOENT && block) { r = 0; @@ -383,7 +383,7 @@ int radeon_sa_bo_new(struct radeon_device *rdev, } while (!r); - mtx_leave(&sa_manager->wq_lock); + spin_unlock(&sa_manager->wq_lock); kfree(*sa_bo); *sa_bo = NULL; return r; @@ -399,7 +399,7 @@ void radeon_sa_bo_free(struct radeon_device *rdev, struct radeon_sa_bo **sa_bo, } sa_manager = (*sa_bo)->manager; - mtx_enter(&sa_manager->wq_lock); + spin_lock(&sa_manager->wq_lock); if (fence && !radeon_fence_signaled(fence)) { (*sa_bo)->fence = radeon_fence_ref(fence); list_add_tail(&(*sa_bo)->flist, @@ -408,7 +408,7 @@ void radeon_sa_bo_free(struct radeon_device *rdev, struct radeon_sa_bo **sa_bo, radeon_sa_bo_remove_locked(*sa_bo); } wakeup(&sa_manager->wq); - mtx_leave(&sa_manager->wq_lock); + spin_unlock(&sa_manager->wq_lock); *sa_bo = NULL; } @@ -418,7 +418,7 @@ void radeon_sa_bo_dump_debug_info(struct radeon_sa_manager *sa_manager, { struct radeon_sa_bo *i; - mtx_enter(&sa_manager->wq.lock); + spin_lock(&sa_manager->wq_lock); list_for_each_entry(i, &sa_manager->olist, olist) { if (&i->olist == sa_manager->hole) { seq_printf(m, ">"); @@ -433,6 +433,6 @@ void radeon_sa_bo_dump_debug_info(struct radeon_sa_manager *sa_manager, } seq_printf(m, "\n"); } - mtx_leave(&sa_manager->wq.lock); + spin_unlock(&sa_manager->wq_lock); } #endif diff --git a/sys/dev/pci/drm/radeon/radeon_ttm.c b/sys/dev/pci/drm/radeon/radeon_ttm.c index ba223e7db5d..925bf63f376 100644 --- a/sys/dev/pci/drm/radeon/radeon_ttm.c +++ b/sys/dev/pci/drm/radeon/radeon_ttm.c @@ -1,4 +1,4 @@ -/* $OpenBSD: radeon_ttm.c,v 1.8 2015/02/10 06:19:36 jsg Exp $ */ +/* $OpenBSD: radeon_ttm.c,v 1.9 2015/02/10 10:50:49 jsg Exp $ */ /* * Copyright 2009 Jerome Glisse. * All Rights Reserved. @@ -944,9 +944,9 @@ static int radeon_mm_dump_table(struct seq_file *m, void *data) int ret; struct ttm_bo_global *glob = rdev->mman.bdev.glob; - mtx_enter(&glob->lru_lock); + spin_lock(&glob->lru_lock); ret = drm_mm_dump_table(m, mm); - mtx_leave(&glob->lru_lock); + spin_unlock(&glob->lru_lock); return ret; } #endif |