Lines Matching refs:output
188 if (vfe->line[i].output.state == VFE_OUTPUT_RESERVED || in vfe_enable_lines_irq()
189 vfe->line[i].output.state == VFE_OUTPUT_ON) { in vfe_enable_lines_irq()
255 struct vfe_output *output; in vfe_get_output() local
260 output = &line->output; in vfe_get_output()
261 if (output->state > VFE_OUTPUT_RESERVED) { in vfe_get_output()
266 output->wm_num = 1; in vfe_get_output()
272 output->wm_idx[0] = line->id; in vfe_get_output()
275 output->drop_update_idx = 0; in vfe_get_output()
283 output->state = VFE_OUTPUT_OFF; in vfe_get_output()
291 struct vfe_output *output = &line->output; in vfe_enable_output() local
299 if (output->state > VFE_OUTPUT_RESERVED) { in vfe_enable_output()
301 output->state); in vfe_enable_output()
306 WARN_ON(output->gen2.active_num); in vfe_enable_output()
308 output->state = VFE_OUTPUT_ON; in vfe_enable_output()
310 output->sequence = 0; in vfe_enable_output()
311 output->wait_reg_update = 0; in vfe_enable_output()
312 reinit_completion(&output->reg_update); in vfe_enable_output()
314 vfe_wm_start(vfe, output->wm_idx[0], line); in vfe_enable_output()
317 output->buf[i] = vfe_buf_get_pending(output); in vfe_enable_output()
318 if (!output->buf[i]) in vfe_enable_output()
320 output->gen2.active_num++; in vfe_enable_output()
321 vfe_wm_update(vfe, output->wm_idx[0], output->buf[i]->addr[0], line); in vfe_enable_output()
334 struct vfe_output *output = &line->output; in vfe_disable_output() local
342 done = !output->gen2.active_num; in vfe_disable_output()
349 output->gen2.active_num = 0; in vfe_disable_output()
355 for (i = 0; i < output->wm_num; i++) in vfe_disable_output()
356 vfe_wm_stop(vfe, output->wm_idx[i]); in vfe_disable_output()
439 struct vfe_output *output; in vfe_isr_reg_update() local
445 output = &vfe->line[line_id].output; in vfe_isr_reg_update()
447 if (output->wait_reg_update) { in vfe_isr_reg_update()
448 output->wait_reg_update = 0; in vfe_isr_reg_update()
449 complete(&output->reg_update); in vfe_isr_reg_update()
464 struct vfe_output *output; in vfe_isr_wm_done() local
476 output = &vfe->line[vfe->wm_output_map[wm]].output; in vfe_isr_wm_done()
478 ready_buf = output->buf[0]; in vfe_isr_wm_done()
481 "Missing ready buf %d!\n", output->state); in vfe_isr_wm_done()
486 ready_buf->vb.sequence = output->sequence++; in vfe_isr_wm_done()
489 output->buf[0] = output->buf[1]; in vfe_isr_wm_done()
490 if (output->buf[0]) in vfe_isr_wm_done()
493 output->buf[index] = vfe_buf_get_pending(output); in vfe_isr_wm_done()
495 if (output->buf[index]) in vfe_isr_wm_done()
496 vfe_wm_update(vfe, output->wm_idx[0], output->buf[index]->addr[0], line); in vfe_isr_wm_done()
498 output->gen2.active_num--; in vfe_isr_wm_done()
561 struct vfe_output *output; in vfe_queue_buffer() local
564 output = &line->output; in vfe_queue_buffer()
568 if (output->state == VFE_OUTPUT_ON && output->gen2.active_num < 2) { in vfe_queue_buffer()
569 output->buf[output->gen2.active_num++] = buf; in vfe_queue_buffer()
570 vfe_wm_update(vfe, output->wm_idx[0], buf->addr[0], line); in vfe_queue_buffer()
572 vfe_buf_add_pending(output, buf); in vfe_queue_buffer()