Lines Matching refs:work

267 	struct radeon_flip_work *work =  in radeon_unpin_work_func()  local
272 r = radeon_bo_reserve(work->old_rbo, false); in radeon_unpin_work_func()
274 r = radeon_bo_unpin(work->old_rbo); in radeon_unpin_work_func()
278 radeon_bo_unreserve(work->old_rbo); in radeon_unpin_work_func()
282 drm_gem_object_unreference_unlocked(&work->old_rbo->gem_base); in radeon_unpin_work_func()
283 kfree(work); in radeon_unpin_work_func()
353 struct radeon_flip_work *work; in radeon_crtc_handle_flip() local
361 work = radeon_crtc->flip_work; in radeon_crtc_handle_flip()
376 if (work->event) in radeon_crtc_handle_flip()
377 drm_send_vblank_event(rdev->ddev, crtc_id, work->event); in radeon_crtc_handle_flip()
382 radeon_irq_kms_pflip_irq_put(rdev, work->crtc_id); in radeon_crtc_handle_flip()
383 queue_work(radeon_crtc->flip_queue, &work->unpin_work); in radeon_crtc_handle_flip()
395 struct radeon_flip_work *work = in radeon_flip_work_func() local
397 struct radeon_device *rdev = work->rdev; in radeon_flip_work_func()
398 struct radeon_crtc *radeon_crtc = rdev->mode_info.crtcs[work->crtc_id]; in radeon_flip_work_func()
405 if (work->fence) { in radeon_flip_work_func()
408 fence = to_radeon_fence(work->fence); in radeon_flip_work_func()
419 r = fence_wait(work->fence, false); in radeon_flip_work_func()
429 fence_put(work->fence); in radeon_flip_work_func()
430 work->fence = NULL; in radeon_flip_work_func()
440 radeon_page_flip(rdev, radeon_crtc->crtc_id, work->base); in radeon_flip_work_func()
458 struct radeon_flip_work *work; in radeon_crtc_page_flip() local
465 work = kzalloc(sizeof *work, GFP_KERNEL); in radeon_crtc_page_flip()
466 if (work == NULL) in radeon_crtc_page_flip()
469 INIT_WORK(&work->flip_work, radeon_flip_work_func); in radeon_crtc_page_flip()
470 INIT_WORK(&work->unpin_work, radeon_unpin_work_func); in radeon_crtc_page_flip()
472 work->rdev = rdev; in radeon_crtc_page_flip()
473 work->crtc_id = radeon_crtc->crtc_id; in radeon_crtc_page_flip()
474 work->event = event; in radeon_crtc_page_flip()
482 work->old_rbo = gem_to_radeon_bo(obj); in radeon_crtc_page_flip()
490 work->old_rbo, new_rbo); in radeon_crtc_page_flip()
506 work->fence = fence_get(reservation_object_get_excl(new_rbo->tbo.resv)); in radeon_crtc_page_flip()
545 work->base = base; in radeon_crtc_page_flip()
563 radeon_crtc->flip_work = work; in radeon_crtc_page_flip()
570 queue_work(radeon_crtc->flip_queue, &work->flip_work); in radeon_crtc_page_flip()
587 drm_gem_object_unreference_unlocked(&work->old_rbo->gem_base); in radeon_crtc_page_flip()
588 fence_put(work->fence); in radeon_crtc_page_flip()
589 kfree(work); in radeon_crtc_page_flip()