Lines Matching refs:work

23 	struct armada_plane_work work;  member
197 struct armada_plane_work *work = xchg(&plane->work, NULL); in armada_drm_plane_work_run() local
200 if (work) { in armada_drm_plane_work_run()
201 work->fn(dcrtc, plane, work); in armada_drm_plane_work_run()
209 struct armada_plane *plane, struct armada_plane_work *work) in armada_drm_plane_work_queue() argument
219 ret = cmpxchg(&plane->work, NULL, work) ? -EBUSY : 0; in armada_drm_plane_work_queue()
228 return wait_event_timeout(plane->frame_wait, !plane->work, timeout); in armada_drm_plane_work_wait()
234 struct armada_plane_work *work = xchg(&plane->work, NULL); in armada_drm_plane_work_cancel() local
236 if (work) in armada_drm_plane_work_cancel()
239 return work; in armada_drm_plane_work_cancel()
243 struct armada_frame_work *work) in armada_drm_crtc_queue_frame_work() argument
247 return armada_drm_plane_work_queue(dcrtc, plane, &work->work); in armada_drm_crtc_queue_frame_work()
251 struct armada_plane *plane, struct armada_plane_work *work) in armada_drm_crtc_complete_frame_work() argument
253 struct armada_frame_work *fwork = container_of(work, struct armada_frame_work, work); in armada_drm_crtc_complete_frame_work()
275 struct armada_frame_work *work; in armada_drm_crtc_finish_fb() local
286 work = kmalloc(sizeof(*work), GFP_KERNEL); in armada_drm_crtc_finish_fb()
287 if (work) { in armada_drm_crtc_finish_fb()
289 work->work.fn = armada_drm_crtc_complete_frame_work; in armada_drm_crtc_finish_fb()
290 work->event = NULL; in armada_drm_crtc_finish_fb()
291 work->old_fb = fb; in armada_drm_crtc_finish_fb()
292 armada_reg_queue_end(work->regs, i); in armada_drm_crtc_finish_fb()
294 if (armada_drm_crtc_queue_frame_work(dcrtc, work) == 0) in armada_drm_crtc_finish_fb()
297 kfree(work); in armada_drm_crtc_finish_fb()
998 struct armada_frame_work *work; in armada_drm_crtc_page_flip() local
1006 work = kmalloc(sizeof(*work), GFP_KERNEL); in armada_drm_crtc_page_flip()
1007 if (!work) in armada_drm_crtc_page_flip()
1010 work->work.fn = armada_drm_crtc_complete_frame_work; in armada_drm_crtc_page_flip()
1011 work->event = event; in armada_drm_crtc_page_flip()
1012 work->old_fb = dcrtc->crtc.primary->fb; in armada_drm_crtc_page_flip()
1014 i = armada_drm_crtc_calc_fb(fb, crtc->x, crtc->y, work->regs, in armada_drm_crtc_page_flip()
1016 armada_reg_queue_end(work->regs, i); in armada_drm_crtc_page_flip()
1024 ret = armada_drm_crtc_queue_frame_work(dcrtc, work); in armada_drm_crtc_page_flip()
1028 kfree(work); in armada_drm_crtc_page_flip()