Lines Matching full:pipe
24 struct lima_sched_pipe *pipe = dev->pipe + lima_pipe_pp; in lima_pp_handle_irq() local
32 pipe->error = true; in lima_pp_handle_irq()
45 struct lima_sched_pipe *pipe = dev->pipe + lima_pipe_pp; in lima_pp_irq_handler() local
54 if (atomic_dec_and_test(&pipe->task)) in lima_pp_irq_handler()
55 lima_sched_pipe_task_done(pipe); in lima_pp_irq_handler()
66 struct lima_sched_pipe *pipe = dev->pipe + lima_pipe_pp; in lima_pp_bcast_irq_handler() local
70 if (!pipe->current_task) in lima_pp_bcast_irq_handler()
73 frame = pipe->current_task->frame; in lima_pp_bcast_irq_handler()
76 struct lima_ip *ip = pipe->processor[i]; in lima_pp_bcast_irq_handler()
79 if (pipe->done & (1 << i)) in lima_pp_bcast_irq_handler()
96 pipe->done |= (1 << i); in lima_pp_bcast_irq_handler()
97 if (atomic_dec_and_test(&pipe->task)) in lima_pp_bcast_irq_handler()
98 lima_sched_pipe_task_done(pipe); in lima_pp_bcast_irq_handler()
146 struct lima_sched_pipe *pipe = dev->pipe + lima_pipe_pp; in lima_pp_soft_reset_async_wait() local
147 struct drm_lima_m450_pp_frame *frame = pipe->current_task->frame; in lima_pp_soft_reset_async_wait()
150 err |= lima_pp_soft_reset_async_wait_one(pipe->processor[i]); in lima_pp_soft_reset_async_wait()
329 static int lima_pp_task_validate(struct lima_sched_pipe *pipe, in lima_pp_task_validate() argument
334 if (pipe->bcast_processor) { in lima_pp_task_validate()
347 if (num_pp == 0 || num_pp > pipe->num_processor) in lima_pp_task_validate()
353 static void lima_pp_task_run(struct lima_sched_pipe *pipe, in lima_pp_task_run() argument
356 if (pipe->bcast_processor) { in lima_pp_task_run()
358 struct lima_device *dev = pipe->bcast_processor->dev; in lima_pp_task_run()
359 struct lima_ip *ip = pipe->bcast_processor; in lima_pp_task_run()
362 pipe->done = 0; in lima_pp_task_run()
363 atomic_set(&pipe->task, frame->num_pp); in lima_pp_task_run()
380 struct lima_ip *ip = pipe->processor[i]; in lima_pp_task_run()
392 atomic_set(&pipe->task, frame->num_pp); in lima_pp_task_run()
395 struct lima_ip *ip = pipe->processor[i]; in lima_pp_task_run()
411 static void lima_pp_task_fini(struct lima_sched_pipe *pipe) in lima_pp_task_fini() argument
413 if (pipe->bcast_processor) in lima_pp_task_fini()
414 lima_pp_soft_reset_async(pipe->bcast_processor); in lima_pp_task_fini()
418 for (i = 0; i < pipe->num_processor; i++) in lima_pp_task_fini()
419 lima_pp_soft_reset_async(pipe->processor[i]); in lima_pp_task_fini()
423 static void lima_pp_task_error(struct lima_sched_pipe *pipe) in lima_pp_task_error() argument
427 for (i = 0; i < pipe->num_processor; i++) { in lima_pp_task_error()
428 struct lima_ip *ip = pipe->processor[i]; in lima_pp_task_error()
437 if (pipe->bcast_processor) in lima_pp_task_error()
438 lima_bcast_reset(pipe->bcast_processor); in lima_pp_task_error()
441 static void lima_pp_task_mmu_error(struct lima_sched_pipe *pipe) in lima_pp_task_mmu_error() argument
443 if (atomic_dec_and_test(&pipe->task)) in lima_pp_task_mmu_error()
444 lima_sched_pipe_task_done(pipe); in lima_pp_task_mmu_error()
447 static void lima_pp_task_mask_irq(struct lima_sched_pipe *pipe) in lima_pp_task_mask_irq() argument
451 for (i = 0; i < pipe->num_processor; i++) { in lima_pp_task_mask_irq()
452 struct lima_ip *ip = pipe->processor[i]; in lima_pp_task_mask_irq()
457 if (pipe->bcast_processor) in lima_pp_task_mask_irq()
458 lima_bcast_mask_irq(pipe->bcast_processor); in lima_pp_task_mask_irq()
467 struct lima_sched_pipe *pipe = dev->pipe + lima_pipe_pp; in lima_pp_pipe_init() local
484 pipe->frame_size = frame_size; in lima_pp_pipe_init()
485 pipe->task_slab = lima_pp_task_slab; in lima_pp_pipe_init()
487 pipe->task_validate = lima_pp_task_validate; in lima_pp_pipe_init()
488 pipe->task_run = lima_pp_task_run; in lima_pp_pipe_init()
489 pipe->task_fini = lima_pp_task_fini; in lima_pp_pipe_init()
490 pipe->task_error = lima_pp_task_error; in lima_pp_pipe_init()
491 pipe->task_mmu_error = lima_pp_task_mmu_error; in lima_pp_pipe_init()
492 pipe->task_mask_irq = lima_pp_task_mask_irq; in lima_pp_pipe_init()