Lines Matching refs:dpu

128 static int dpu_wait_stop_done(struct sprd_dpu *dpu)  in dpu_wait_stop_done()  argument
130 struct dpu_context *ctx = &dpu->ctx; in dpu_wait_stop_done()
143 drm_err(dpu->drm, "dpu wait for stop done time out!\n"); in dpu_wait_stop_done()
150 static int dpu_wait_update_done(struct sprd_dpu *dpu) in dpu_wait_update_done() argument
152 struct dpu_context *ctx = &dpu->ctx; in dpu_wait_update_done()
161 drm_err(dpu->drm, "dpu wait for reg update done time out!\n"); in dpu_wait_update_done()
320 static void sprd_dpu_layer(struct sprd_dpu *dpu, struct drm_plane_state *state) in sprd_dpu_layer() argument
322 struct dpu_context *ctx = &dpu->ctx; in sprd_dpu_layer()
377 static void sprd_dpu_flip(struct sprd_dpu *dpu) in sprd_dpu_flip() argument
379 struct dpu_context *ctx = &dpu->ctx; in sprd_dpu_flip()
387 dpu_wait_stop_done(dpu); in sprd_dpu_flip()
393 dpu_wait_update_done(dpu); in sprd_dpu_flip()
404 static void sprd_dpu_init(struct sprd_dpu *dpu) in sprd_dpu_init() argument
406 struct dpu_context *ctx = &dpu->ctx; in sprd_dpu_init()
452 static void sprd_dpu_fini(struct sprd_dpu *dpu) in sprd_dpu_fini() argument
454 struct dpu_context *ctx = &dpu->ctx; in sprd_dpu_fini()
460 static void sprd_dpi_init(struct sprd_dpu *dpu) in sprd_dpi_init() argument
462 struct dpu_context *ctx = &dpu->ctx; in sprd_dpi_init()
484 void sprd_dpu_run(struct sprd_dpu *dpu) in sprd_dpu_run() argument
486 struct dpu_context *ctx = &dpu->ctx; in sprd_dpu_run()
493 void sprd_dpu_stop(struct sprd_dpu *dpu) in sprd_dpu_stop() argument
495 struct dpu_context *ctx = &dpu->ctx; in sprd_dpu_stop()
500 dpu_wait_stop_done(dpu); in sprd_dpu_stop()
533 struct sprd_dpu *dpu = to_sprd_crtc(new_state->crtc); in sprd_plane_atomic_update() local
536 sprd_dpu_layer(dpu, new_state); in sprd_plane_atomic_update()
544 struct sprd_dpu *dpu = to_sprd_crtc(old_state->crtc); in sprd_plane_atomic_disable() local
546 layer_reg_wr(&dpu->ctx, REG_LAY_CTRL, 0x00, old_state->zpos); in sprd_plane_atomic_disable()
618 struct sprd_dpu *dpu = to_sprd_crtc(crtc); in sprd_crtc_mode_set_nofb() local
623 drm_display_mode_to_videomode(mode, &dpu->ctx.vm); in sprd_crtc_mode_set_nofb()
630 dpu->ctx.if_type = SPRD_DPU_IF_DPI; in sprd_crtc_mode_set_nofb()
632 dpu->ctx.if_type = SPRD_DPU_IF_EDPI; in sprd_crtc_mode_set_nofb()
635 sprd_dpi_init(dpu); in sprd_crtc_mode_set_nofb()
641 struct sprd_dpu *dpu = to_sprd_crtc(crtc); in sprd_crtc_atomic_enable() local
643 sprd_dpu_init(dpu); in sprd_crtc_atomic_enable()
645 drm_crtc_vblank_on(&dpu->base); in sprd_crtc_atomic_enable()
651 struct sprd_dpu *dpu = to_sprd_crtc(crtc); in sprd_crtc_atomic_disable() local
652 struct drm_device *drm = dpu->base.dev; in sprd_crtc_atomic_disable()
654 drm_crtc_vblank_off(&dpu->base); in sprd_crtc_atomic_disable()
656 sprd_dpu_fini(dpu); in sprd_crtc_atomic_disable()
670 struct sprd_dpu *dpu = to_sprd_crtc(crtc); in sprd_crtc_atomic_flush() local
671 struct drm_device *drm = dpu->base.dev; in sprd_crtc_atomic_flush()
673 sprd_dpu_flip(dpu); in sprd_crtc_atomic_flush()
685 struct sprd_dpu *dpu = to_sprd_crtc(crtc); in sprd_crtc_enable_vblank() local
687 dpu_reg_set(&dpu->ctx, REG_DPU_INT_EN, BIT_DPU_INT_VSYNC); in sprd_crtc_enable_vblank()
694 struct sprd_dpu *dpu = to_sprd_crtc(crtc); in sprd_crtc_disable_vblank() local
696 dpu_reg_clr(&dpu->ctx, REG_DPU_INT_EN, BIT_DPU_INT_VSYNC); in sprd_crtc_disable_vblank()
721 struct sprd_dpu *dpu; in sprd_crtc_init() local
723 dpu = drmm_crtc_alloc_with_planes(drm, struct sprd_dpu, base, in sprd_crtc_init()
726 if (IS_ERR(dpu)) { in sprd_crtc_init()
728 return dpu; in sprd_crtc_init()
730 drm_crtc_helper_add(&dpu->base, &sprd_crtc_helper_funcs); in sprd_crtc_init()
741 dpu->base.port = port; in sprd_crtc_init()
744 return dpu; in sprd_crtc_init()
749 struct sprd_dpu *dpu = data; in sprd_dpu_isr() local
750 struct dpu_context *ctx = &dpu->ctx; in sprd_dpu_isr()
758 drm_warn(dpu->drm, "Warning: dpu underflow!\n"); in sprd_dpu_isr()
774 drm_crtc_handle_vblank(&dpu->base); in sprd_dpu_isr()
782 static int sprd_dpu_context_init(struct sprd_dpu *dpu, in sprd_dpu_context_init() argument
786 struct dpu_context *ctx = &dpu->ctx; in sprd_dpu_context_init()
811 IRQF_TRIGGER_NONE, "DPU", dpu); in sprd_dpu_context_init()
825 struct sprd_dpu *dpu; in sprd_dpu_bind() local
833 dpu = sprd_crtc_init(drm, &plane->base, dev); in sprd_dpu_bind()
834 if (IS_ERR(dpu)) in sprd_dpu_bind()
835 return PTR_ERR(dpu); in sprd_dpu_bind()
837 dpu->drm = drm; in sprd_dpu_bind()
838 dev_set_drvdata(dev, dpu); in sprd_dpu_bind()
840 ret = sprd_dpu_context_init(dpu, dev); in sprd_dpu_bind()