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()
356 struct radeon_flip_work *work; in radeon_crtc_handle_flip() local
364 work = radeon_crtc->flip_work; in radeon_crtc_handle_flip()
379 if (work->event) in radeon_crtc_handle_flip()
380 drm_send_vblank_event(rdev->ddev, crtc_id, work->event); in radeon_crtc_handle_flip()
385 radeon_irq_kms_pflip_irq_put(rdev, work->crtc_id); in radeon_crtc_handle_flip()
386 queue_work(radeon_crtc->flip_queue, &work->unpin_work); in radeon_crtc_handle_flip()
398 struct radeon_flip_work *work = in radeon_flip_work_func() local
400 struct radeon_device *rdev = work->rdev; in radeon_flip_work_func()
401 struct radeon_crtc *radeon_crtc = rdev->mode_info.crtcs[work->crtc_id]; in radeon_flip_work_func()
408 struct drm_vblank_crtc *vblank = &crtc->dev->vblank[work->crtc_id]; in radeon_flip_work_func()
411 if (work->fence) { in radeon_flip_work_func()
414 fence = to_radeon_fence(work->fence); in radeon_flip_work_func()
425 r = fence_wait(work->fence, false); in radeon_flip_work_func()
435 fence_put(work->fence); in radeon_flip_work_func()
436 work->fence = NULL; in radeon_flip_work_func()
463 stat = radeon_get_crtc_scanoutpos(rdev->ddev, work->crtc_id, in radeon_flip_work_func()
488 "hpos %d\n", work->crtc_id, min_udelay, in radeon_flip_work_func()
493 radeon_page_flip(rdev, radeon_crtc->crtc_id, work->base); in radeon_flip_work_func()
511 struct radeon_flip_work *work; in radeon_crtc_page_flip() local
518 work = kzalloc(sizeof *work, GFP_KERNEL); in radeon_crtc_page_flip()
519 if (work == NULL) in radeon_crtc_page_flip()
522 INIT_WORK(&work->flip_work, radeon_flip_work_func); in radeon_crtc_page_flip()
523 INIT_WORK(&work->unpin_work, radeon_unpin_work_func); in radeon_crtc_page_flip()
525 work->rdev = rdev; in radeon_crtc_page_flip()
526 work->crtc_id = radeon_crtc->crtc_id; in radeon_crtc_page_flip()
527 work->event = event; in radeon_crtc_page_flip()
535 work->old_rbo = gem_to_radeon_bo(obj); in radeon_crtc_page_flip()
543 work->old_rbo, new_rbo); in radeon_crtc_page_flip()
559 work->fence = fence_get(reservation_object_get_excl(new_rbo->tbo.resv)); in radeon_crtc_page_flip()
598 work->base = base; in radeon_crtc_page_flip()
616 radeon_crtc->flip_work = work; in radeon_crtc_page_flip()
623 queue_work(radeon_crtc->flip_queue, &work->flip_work); in radeon_crtc_page_flip()
640 drm_gem_object_unreference_unlocked(&work->old_rbo->gem_base); in radeon_crtc_page_flip()
641 fence_put(work->fence); in radeon_crtc_page_flip()
642 kfree(work); in radeon_crtc_page_flip()