sa_manager 297 drivers/gpu/drm/amd/amdgpu/amdgpu_object.h struct amdgpu_sa_manager *sa_manager, sa_manager 300 drivers/gpu/drm/amd/amdgpu/amdgpu_object.h struct amdgpu_sa_manager *sa_manager); sa_manager 302 drivers/gpu/drm/amd/amdgpu/amdgpu_object.h struct amdgpu_sa_manager *sa_manager); sa_manager 303 drivers/gpu/drm/amd/amdgpu/amdgpu_object.h int amdgpu_sa_bo_new(struct amdgpu_sa_manager *sa_manager, sa_manager 310 drivers/gpu/drm/amd/amdgpu/amdgpu_object.h void amdgpu_sa_bo_dump_debug_info(struct amdgpu_sa_manager *sa_manager, sa_manager 48 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c static void amdgpu_sa_bo_try_free(struct amdgpu_sa_manager *sa_manager); sa_manager 51 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c struct amdgpu_sa_manager *sa_manager, sa_manager 56 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c init_waitqueue_head(&sa_manager->wq); sa_manager 57 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_manager->bo = NULL; sa_manager 58 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_manager->size = size; sa_manager 59 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_manager->domain = domain; sa_manager 60 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_manager->align = align; sa_manager 61 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_manager->hole = &sa_manager->olist; sa_manager 62 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c INIT_LIST_HEAD(&sa_manager->olist); sa_manager 64 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c INIT_LIST_HEAD(&sa_manager->flist[i]); sa_manager 66 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c r = amdgpu_bo_create_kernel(adev, size, align, domain, &sa_manager->bo, sa_manager 67 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c &sa_manager->gpu_addr, &sa_manager->cpu_ptr); sa_manager 73 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c memset(sa_manager->cpu_ptr, 0, sa_manager->size); sa_manager 78 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c struct amdgpu_sa_manager *sa_manager) sa_manager 82 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c if (sa_manager->bo == NULL) { sa_manager 87 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c if (!list_empty(&sa_manager->olist)) { sa_manager 88 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_manager->hole = &sa_manager->olist, sa_manager 89 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c amdgpu_sa_bo_try_free(sa_manager); sa_manager 90 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c if (!list_empty(&sa_manager->olist)) { sa_manager 94 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c list_for_each_entry_safe(sa_bo, tmp, &sa_manager->olist, olist) { sa_manager 98 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c amdgpu_bo_free_kernel(&sa_manager->bo, &sa_manager->gpu_addr, &sa_manager->cpu_ptr); sa_manager 99 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_manager->size = 0; sa_manager 104 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c struct amdgpu_sa_manager *sa_manager = sa_bo->manager; sa_manager 105 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c if (sa_manager->hole == &sa_bo->olist) { sa_manager 106 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_manager->hole = sa_bo->olist.prev; sa_manager 114 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c static void amdgpu_sa_bo_try_free(struct amdgpu_sa_manager *sa_manager) sa_manager 118 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c if (sa_manager->hole->next == &sa_manager->olist) sa_manager 121 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_bo = list_entry(sa_manager->hole->next, struct amdgpu_sa_bo, olist); sa_manager 122 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c list_for_each_entry_safe_from(sa_bo, tmp, &sa_manager->olist, olist) { sa_manager 131 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c static inline unsigned amdgpu_sa_bo_hole_soffset(struct amdgpu_sa_manager *sa_manager) sa_manager 133 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c struct list_head *hole = sa_manager->hole; sa_manager 135 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c if (hole != &sa_manager->olist) { sa_manager 141 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c static inline unsigned amdgpu_sa_bo_hole_eoffset(struct amdgpu_sa_manager *sa_manager) sa_manager 143 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c struct list_head *hole = sa_manager->hole; sa_manager 145 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c if (hole->next != &sa_manager->olist) { sa_manager 148 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c return sa_manager->size; sa_manager 151 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c static bool amdgpu_sa_bo_try_alloc(struct amdgpu_sa_manager *sa_manager, sa_manager 157 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c soffset = amdgpu_sa_bo_hole_soffset(sa_manager); sa_manager 158 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c eoffset = amdgpu_sa_bo_hole_eoffset(sa_manager); sa_manager 164 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_bo->manager = sa_manager; sa_manager 167 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c list_add(&sa_bo->olist, sa_manager->hole); sa_manager 169 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_manager->hole = &sa_bo->olist; sa_manager 185 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c static bool amdgpu_sa_event(struct amdgpu_sa_manager *sa_manager, sa_manager 192 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c if (!list_empty(&sa_manager->flist[i])) sa_manager 195 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c soffset = amdgpu_sa_bo_hole_soffset(sa_manager); sa_manager 196 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c eoffset = amdgpu_sa_bo_hole_eoffset(sa_manager); sa_manager 206 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c static bool amdgpu_sa_bo_next_hole(struct amdgpu_sa_manager *sa_manager, sa_manager 214 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c if (sa_manager->hole->next == &sa_manager->olist) { sa_manager 216 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_manager->hole = &sa_manager->olist; sa_manager 220 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c soffset = amdgpu_sa_bo_hole_soffset(sa_manager); sa_manager 222 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c best = sa_manager->size * 2; sa_manager 231 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c if (list_empty(&sa_manager->flist[i])) sa_manager 234 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_bo = list_first_entry(&sa_manager->flist[i], sa_manager 250 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c tmp += sa_manager->size; sa_manager 265 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_manager->hole = best_bo->olist.prev; sa_manager 275 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c int amdgpu_sa_bo_new(struct amdgpu_sa_manager *sa_manager, sa_manager 285 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c if (WARN_ON_ONCE(align > sa_manager->align)) sa_manager 288 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c if (WARN_ON_ONCE(size > sa_manager->size)) sa_manager 294 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c (*sa_bo)->manager = sa_manager; sa_manager 299 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c spin_lock(&sa_manager->wq.lock); sa_manager 305 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c amdgpu_sa_bo_try_free(sa_manager); sa_manager 307 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c if (amdgpu_sa_bo_try_alloc(sa_manager, *sa_bo, sa_manager 309 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c spin_unlock(&sa_manager->wq.lock); sa_manager 314 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c } while (amdgpu_sa_bo_next_hole(sa_manager, fences, tries)); sa_manager 321 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c spin_unlock(&sa_manager->wq.lock); sa_manager 329 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c spin_lock(&sa_manager->wq.lock); sa_manager 333 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_manager->wq, sa_manager 334 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c amdgpu_sa_event(sa_manager, size, align) sa_manager 340 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c spin_unlock(&sa_manager->wq.lock); sa_manager 349 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c struct amdgpu_sa_manager *sa_manager; sa_manager 355 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c sa_manager = (*sa_bo)->manager; sa_manager 356 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c spin_lock(&sa_manager->wq.lock); sa_manager 362 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c list_add_tail(&(*sa_bo)->flist, &sa_manager->flist[idx]); sa_manager 366 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c wake_up_all_locked(&sa_manager->wq); sa_manager 367 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c spin_unlock(&sa_manager->wq.lock); sa_manager 373 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c void amdgpu_sa_bo_dump_debug_info(struct amdgpu_sa_manager *sa_manager, sa_manager 378 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c spin_lock(&sa_manager->wq.lock); sa_manager 379 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c list_for_each_entry(i, &sa_manager->olist, olist) { sa_manager 380 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c uint64_t soffset = i->soffset + sa_manager->gpu_addr; sa_manager 381 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c uint64_t eoffset = i->eoffset + sa_manager->gpu_addr; sa_manager 382 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c if (&i->olist == sa_manager->hole) { sa_manager 396 drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c spin_unlock(&sa_manager->wq.lock); sa_manager 175 drivers/gpu/drm/radeon/radeon_object.h struct radeon_sa_manager *sa_manager, sa_manager 179 drivers/gpu/drm/radeon/radeon_object.h struct radeon_sa_manager *sa_manager); sa_manager 181 drivers/gpu/drm/radeon/radeon_object.h struct radeon_sa_manager *sa_manager); sa_manager 183 drivers/gpu/drm/radeon/radeon_object.h struct radeon_sa_manager *sa_manager); sa_manager 185 drivers/gpu/drm/radeon/radeon_object.h struct radeon_sa_manager *sa_manager, sa_manager 192 drivers/gpu/drm/radeon/radeon_object.h extern void radeon_sa_bo_dump_debug_info(struct radeon_sa_manager *sa_manager, sa_manager 48 drivers/gpu/drm/radeon/radeon_sa.c static void radeon_sa_bo_try_free(struct radeon_sa_manager *sa_manager); sa_manager 51 drivers/gpu/drm/radeon/radeon_sa.c struct radeon_sa_manager *sa_manager, sa_manager 56 drivers/gpu/drm/radeon/radeon_sa.c init_waitqueue_head(&sa_manager->wq); sa_manager 57 drivers/gpu/drm/radeon/radeon_sa.c sa_manager->bo = NULL; sa_manager 58 drivers/gpu/drm/radeon/radeon_sa.c sa_manager->size = size; sa_manager 59 drivers/gpu/drm/radeon/radeon_sa.c sa_manager->domain = domain; sa_manager 60 drivers/gpu/drm/radeon/radeon_sa.c sa_manager->align = align; sa_manager 61 drivers/gpu/drm/radeon/radeon_sa.c sa_manager->hole = &sa_manager->olist; sa_manager 62 drivers/gpu/drm/radeon/radeon_sa.c INIT_LIST_HEAD(&sa_manager->olist); sa_manager 64 drivers/gpu/drm/radeon/radeon_sa.c INIT_LIST_HEAD(&sa_manager->flist[i]); sa_manager 68 drivers/gpu/drm/radeon/radeon_sa.c domain, flags, NULL, NULL, &sa_manager->bo); sa_manager 78 drivers/gpu/drm/radeon/radeon_sa.c struct radeon_sa_manager *sa_manager) sa_manager 82 drivers/gpu/drm/radeon/radeon_sa.c if (!list_empty(&sa_manager->olist)) { sa_manager 83 drivers/gpu/drm/radeon/radeon_sa.c sa_manager->hole = &sa_manager->olist, sa_manager 84 drivers/gpu/drm/radeon/radeon_sa.c radeon_sa_bo_try_free(sa_manager); sa_manager 85 drivers/gpu/drm/radeon/radeon_sa.c if (!list_empty(&sa_manager->olist)) { sa_manager 89 drivers/gpu/drm/radeon/radeon_sa.c list_for_each_entry_safe(sa_bo, tmp, &sa_manager->olist, olist) { sa_manager 92 drivers/gpu/drm/radeon/radeon_sa.c radeon_bo_unref(&sa_manager->bo); sa_manager 93 drivers/gpu/drm/radeon/radeon_sa.c sa_manager->size = 0; sa_manager 97 drivers/gpu/drm/radeon/radeon_sa.c struct radeon_sa_manager *sa_manager) sa_manager 101 drivers/gpu/drm/radeon/radeon_sa.c if (sa_manager->bo == NULL) { sa_manager 107 drivers/gpu/drm/radeon/radeon_sa.c r = radeon_bo_reserve(sa_manager->bo, false); sa_manager 112 drivers/gpu/drm/radeon/radeon_sa.c r = radeon_bo_pin(sa_manager->bo, sa_manager->domain, &sa_manager->gpu_addr); sa_manager 114 drivers/gpu/drm/radeon/radeon_sa.c radeon_bo_unreserve(sa_manager->bo); sa_manager 118 drivers/gpu/drm/radeon/radeon_sa.c r = radeon_bo_kmap(sa_manager->bo, &sa_manager->cpu_ptr); sa_manager 119 drivers/gpu/drm/radeon/radeon_sa.c radeon_bo_unreserve(sa_manager->bo); sa_manager 124 drivers/gpu/drm/radeon/radeon_sa.c struct radeon_sa_manager *sa_manager) sa_manager 128 drivers/gpu/drm/radeon/radeon_sa.c if (sa_manager->bo == NULL) { sa_manager 133 drivers/gpu/drm/radeon/radeon_sa.c r = radeon_bo_reserve(sa_manager->bo, false); sa_manager 135 drivers/gpu/drm/radeon/radeon_sa.c radeon_bo_kunmap(sa_manager->bo); sa_manager 136 drivers/gpu/drm/radeon/radeon_sa.c radeon_bo_unpin(sa_manager->bo); sa_manager 137 drivers/gpu/drm/radeon/radeon_sa.c radeon_bo_unreserve(sa_manager->bo); sa_manager 144 drivers/gpu/drm/radeon/radeon_sa.c struct radeon_sa_manager *sa_manager = sa_bo->manager; sa_manager 145 drivers/gpu/drm/radeon/radeon_sa.c if (sa_manager->hole == &sa_bo->olist) { sa_manager 146 drivers/gpu/drm/radeon/radeon_sa.c sa_manager->hole = sa_bo->olist.prev; sa_manager 154 drivers/gpu/drm/radeon/radeon_sa.c static void radeon_sa_bo_try_free(struct radeon_sa_manager *sa_manager) sa_manager 158 drivers/gpu/drm/radeon/radeon_sa.c if (sa_manager->hole->next == &sa_manager->olist) sa_manager 161 drivers/gpu/drm/radeon/radeon_sa.c sa_bo = list_entry(sa_manager->hole->next, struct radeon_sa_bo, olist); sa_manager 162 drivers/gpu/drm/radeon/radeon_sa.c list_for_each_entry_safe_from(sa_bo, tmp, &sa_manager->olist, olist) { sa_manager 170 drivers/gpu/drm/radeon/radeon_sa.c static inline unsigned radeon_sa_bo_hole_soffset(struct radeon_sa_manager *sa_manager) sa_manager 172 drivers/gpu/drm/radeon/radeon_sa.c struct list_head *hole = sa_manager->hole; sa_manager 174 drivers/gpu/drm/radeon/radeon_sa.c if (hole != &sa_manager->olist) { sa_manager 180 drivers/gpu/drm/radeon/radeon_sa.c static inline unsigned radeon_sa_bo_hole_eoffset(struct radeon_sa_manager *sa_manager) sa_manager 182 drivers/gpu/drm/radeon/radeon_sa.c struct list_head *hole = sa_manager->hole; sa_manager 184 drivers/gpu/drm/radeon/radeon_sa.c if (hole->next != &sa_manager->olist) { sa_manager 187 drivers/gpu/drm/radeon/radeon_sa.c return sa_manager->size; sa_manager 190 drivers/gpu/drm/radeon/radeon_sa.c static bool radeon_sa_bo_try_alloc(struct radeon_sa_manager *sa_manager, sa_manager 196 drivers/gpu/drm/radeon/radeon_sa.c soffset = radeon_sa_bo_hole_soffset(sa_manager); sa_manager 197 drivers/gpu/drm/radeon/radeon_sa.c eoffset = radeon_sa_bo_hole_eoffset(sa_manager); sa_manager 203 drivers/gpu/drm/radeon/radeon_sa.c sa_bo->manager = sa_manager; sa_manager 206 drivers/gpu/drm/radeon/radeon_sa.c list_add(&sa_bo->olist, sa_manager->hole); sa_manager 208 drivers/gpu/drm/radeon/radeon_sa.c sa_manager->hole = &sa_bo->olist; sa_manager 224 drivers/gpu/drm/radeon/radeon_sa.c static bool radeon_sa_event(struct radeon_sa_manager *sa_manager, sa_manager 231 drivers/gpu/drm/radeon/radeon_sa.c if (!list_empty(&sa_manager->flist[i])) { sa_manager 236 drivers/gpu/drm/radeon/radeon_sa.c soffset = radeon_sa_bo_hole_soffset(sa_manager); sa_manager 237 drivers/gpu/drm/radeon/radeon_sa.c eoffset = radeon_sa_bo_hole_eoffset(sa_manager); sa_manager 247 drivers/gpu/drm/radeon/radeon_sa.c static bool radeon_sa_bo_next_hole(struct radeon_sa_manager *sa_manager, sa_manager 255 drivers/gpu/drm/radeon/radeon_sa.c if (sa_manager->hole->next == &sa_manager->olist) { sa_manager 257 drivers/gpu/drm/radeon/radeon_sa.c sa_manager->hole = &sa_manager->olist; sa_manager 261 drivers/gpu/drm/radeon/radeon_sa.c soffset = radeon_sa_bo_hole_soffset(sa_manager); sa_manager 263 drivers/gpu/drm/radeon/radeon_sa.c best = sa_manager->size * 2; sa_manager 270 drivers/gpu/drm/radeon/radeon_sa.c if (list_empty(&sa_manager->flist[i])) { sa_manager 274 drivers/gpu/drm/radeon/radeon_sa.c sa_bo = list_first_entry(&sa_manager->flist[i], sa_manager 290 drivers/gpu/drm/radeon/radeon_sa.c tmp += sa_manager->size; sa_manager 302 drivers/gpu/drm/radeon/radeon_sa.c sa_manager->hole = best_bo->olist.prev; sa_manager 313 drivers/gpu/drm/radeon/radeon_sa.c struct radeon_sa_manager *sa_manager, sa_manager 321 drivers/gpu/drm/radeon/radeon_sa.c BUG_ON(align > sa_manager->align); sa_manager 322 drivers/gpu/drm/radeon/radeon_sa.c BUG_ON(size > sa_manager->size); sa_manager 328 drivers/gpu/drm/radeon/radeon_sa.c (*sa_bo)->manager = sa_manager; sa_manager 333 drivers/gpu/drm/radeon/radeon_sa.c spin_lock(&sa_manager->wq.lock); sa_manager 341 drivers/gpu/drm/radeon/radeon_sa.c radeon_sa_bo_try_free(sa_manager); sa_manager 343 drivers/gpu/drm/radeon/radeon_sa.c if (radeon_sa_bo_try_alloc(sa_manager, *sa_bo, sa_manager 345 drivers/gpu/drm/radeon/radeon_sa.c spin_unlock(&sa_manager->wq.lock); sa_manager 350 drivers/gpu/drm/radeon/radeon_sa.c } while (radeon_sa_bo_next_hole(sa_manager, fences, tries)); sa_manager 355 drivers/gpu/drm/radeon/radeon_sa.c spin_unlock(&sa_manager->wq.lock); sa_manager 359 drivers/gpu/drm/radeon/radeon_sa.c spin_lock(&sa_manager->wq.lock); sa_manager 363 drivers/gpu/drm/radeon/radeon_sa.c sa_manager->wq, sa_manager 364 drivers/gpu/drm/radeon/radeon_sa.c radeon_sa_event(sa_manager, size, align) sa_manager 370 drivers/gpu/drm/radeon/radeon_sa.c spin_unlock(&sa_manager->wq.lock); sa_manager 379 drivers/gpu/drm/radeon/radeon_sa.c struct radeon_sa_manager *sa_manager; sa_manager 385 drivers/gpu/drm/radeon/radeon_sa.c sa_manager = (*sa_bo)->manager; sa_manager 386 drivers/gpu/drm/radeon/radeon_sa.c spin_lock(&sa_manager->wq.lock); sa_manager 390 drivers/gpu/drm/radeon/radeon_sa.c &sa_manager->flist[fence->ring]); sa_manager 394 drivers/gpu/drm/radeon/radeon_sa.c wake_up_all_locked(&sa_manager->wq); sa_manager 395 drivers/gpu/drm/radeon/radeon_sa.c spin_unlock(&sa_manager->wq.lock); sa_manager 400 drivers/gpu/drm/radeon/radeon_sa.c void radeon_sa_bo_dump_debug_info(struct radeon_sa_manager *sa_manager, sa_manager 405 drivers/gpu/drm/radeon/radeon_sa.c spin_lock(&sa_manager->wq.lock); sa_manager 406 drivers/gpu/drm/radeon/radeon_sa.c list_for_each_entry(i, &sa_manager->olist, olist) { sa_manager 407 drivers/gpu/drm/radeon/radeon_sa.c uint64_t soffset = i->soffset + sa_manager->gpu_addr; sa_manager 408 drivers/gpu/drm/radeon/radeon_sa.c uint64_t eoffset = i->eoffset + sa_manager->gpu_addr; sa_manager 409 drivers/gpu/drm/radeon/radeon_sa.c if (&i->olist == sa_manager->hole) { sa_manager 422 drivers/gpu/drm/radeon/radeon_sa.c spin_unlock(&sa_manager->wq.lock);