Lines Matching refs:tcrtc
24 static void tidss_crtc_finish_page_flip(struct tidss_crtc *tcrtc) in tidss_crtc_finish_page_flip() argument
26 struct drm_device *ddev = tcrtc->crtc.dev; in tidss_crtc_finish_page_flip()
40 busy = dispc_vp_go_busy(tidss->dispc, tcrtc->hw_videoport); in tidss_crtc_finish_page_flip()
46 event = tcrtc->event; in tidss_crtc_finish_page_flip()
47 tcrtc->event = NULL; in tidss_crtc_finish_page_flip()
54 drm_crtc_send_vblank_event(&tcrtc->crtc, event); in tidss_crtc_finish_page_flip()
58 drm_crtc_vblank_put(&tcrtc->crtc); in tidss_crtc_finish_page_flip()
63 struct tidss_crtc *tcrtc = to_tidss_crtc(crtc); in tidss_crtc_vblank_irq() local
67 tidss_crtc_finish_page_flip(tcrtc); in tidss_crtc_vblank_irq()
72 struct tidss_crtc *tcrtc = to_tidss_crtc(crtc); in tidss_crtc_framedone_irq() local
74 complete(&tcrtc->framedone_completion); in tidss_crtc_framedone_irq()
79 struct tidss_crtc *tcrtc = to_tidss_crtc(crtc); in tidss_crtc_error_irq() local
82 tcrtc->hw_videoport, irqstatus); in tidss_crtc_error_irq()
95 struct tidss_crtc *tcrtc = to_tidss_crtc(crtc); in tidss_crtc_atomic_check() local
96 u32 hw_videoport = tcrtc->hw_videoport; in tidss_crtc_atomic_check()
128 struct tidss_crtc *tcrtc = to_tidss_crtc(crtc); in tidss_crtc_position_planes() local
156 tcrtc->hw_videoport, in tidss_crtc_position_planes()
160 dispc_ovr_enable_layer(tidss->dispc, tcrtc->hw_videoport, layer, in tidss_crtc_position_planes()
170 struct tidss_crtc *tcrtc = to_tidss_crtc(crtc); in tidss_crtc_atomic_flush() local
192 if (WARN_ON(dispc_vp_go_busy(tidss->dispc, tcrtc->hw_videoport))) in tidss_crtc_atomic_flush()
200 dispc_vp_setup(tidss->dispc, tcrtc->hw_videoport, crtc->state, false); in tidss_crtc_atomic_flush()
208 dispc_vp_go(tidss->dispc, tcrtc->hw_videoport); in tidss_crtc_atomic_flush()
210 WARN_ON(tcrtc->event); in tidss_crtc_atomic_flush()
212 tcrtc->event = crtc->state->event; in tidss_crtc_atomic_flush()
223 struct tidss_crtc *tcrtc = to_tidss_crtc(crtc); in tidss_crtc_atomic_enable() local
234 r = dispc_vp_set_clk_rate(tidss->dispc, tcrtc->hw_videoport, in tidss_crtc_atomic_enable()
239 r = dispc_vp_enable_clk(tidss->dispc, tcrtc->hw_videoport); in tidss_crtc_atomic_enable()
243 dispc_vp_setup(tidss->dispc, tcrtc->hw_videoport, crtc->state, true); in tidss_crtc_atomic_enable()
249 dispc_vp_prepare(tidss->dispc, tcrtc->hw_videoport, crtc->state); in tidss_crtc_atomic_enable()
251 dispc_vp_enable(tidss->dispc, tcrtc->hw_videoport, crtc->state); in tidss_crtc_atomic_enable()
266 struct tidss_crtc *tcrtc = to_tidss_crtc(crtc); in tidss_crtc_atomic_disable() local
273 reinit_completion(&tcrtc->framedone_completion); in tidss_crtc_atomic_disable()
275 dispc_vp_disable(tidss->dispc, tcrtc->hw_videoport); in tidss_crtc_atomic_disable()
277 if (!wait_for_completion_timeout(&tcrtc->framedone_completion, in tidss_crtc_atomic_disable()
280 tcrtc->hw_videoport); in tidss_crtc_atomic_disable()
282 dispc_vp_unprepare(tidss->dispc, tcrtc->hw_videoport); in tidss_crtc_atomic_disable()
293 dispc_vp_disable_clk(tidss->dispc, tcrtc->hw_videoport); in tidss_crtc_atomic_disable()
302 struct tidss_crtc *tcrtc = to_tidss_crtc(crtc); in tidss_crtc_mode_valid() local
306 return dispc_vp_mode_valid(tidss->dispc, tcrtc->hw_videoport, mode); in tidss_crtc_mode_valid()
348 struct tidss_crtc_state *tcrtc; in tidss_crtc_reset() local
355 tcrtc = kzalloc(sizeof(*tcrtc), GFP_KERNEL); in tidss_crtc_reset()
356 if (!tcrtc) { in tidss_crtc_reset()
361 __drm_atomic_helper_crtc_reset(crtc, &tcrtc->base); in tidss_crtc_reset()
389 struct tidss_crtc *tcrtc = to_tidss_crtc(crtc); in tidss_crtc_destroy() local
392 kfree(tcrtc); in tidss_crtc_destroy()
410 struct tidss_crtc *tcrtc; in tidss_crtc_create() local
416 tcrtc = kzalloc(sizeof(*tcrtc), GFP_KERNEL); in tidss_crtc_create()
417 if (!tcrtc) in tidss_crtc_create()
420 tcrtc->hw_videoport = hw_videoport; in tidss_crtc_create()
421 init_completion(&tcrtc->framedone_completion); in tidss_crtc_create()
423 crtc = &tcrtc->crtc; in tidss_crtc_create()
428 kfree(tcrtc); in tidss_crtc_create()
446 return tcrtc; in tidss_crtc_create()