Lines Matching refs:crtc

154 	if (dcrtc->crtc.mode.flags & DRM_MODE_FLAG_NCSYNC)  in armada_drm_crtc_update()
156 if (dcrtc->crtc.mode.flags & DRM_MODE_FLAG_NHSYNC) in armada_drm_crtc_update()
158 if (dcrtc->crtc.mode.flags & DRM_MODE_FLAG_NVSYNC) in armada_drm_crtc_update()
202 drm_vblank_put(dcrtc->crtc.dev, dcrtc->num); in armada_drm_plane_work_run()
213 ret = drm_vblank_get(dcrtc->crtc.dev, dcrtc->num); in armada_drm_plane_work_queue()
221 drm_vblank_put(dcrtc->crtc.dev, dcrtc->num); in armada_drm_plane_work_queue()
237 drm_vblank_put(dcrtc->crtc.dev, dcrtc->num); in armada_drm_plane_work_cancel()
245 struct armada_plane *plane = drm_to_armada_plane(dcrtc->crtc.primary); in armada_drm_crtc_queue_frame_work()
254 struct drm_device *dev = dcrtc->crtc.dev; in armada_drm_crtc_complete_frame_work()
268 __armada_drm_queue_unref_work(dcrtc->crtc.dev, fwork->old_fb); in armada_drm_crtc_complete_frame_work()
310 struct armada_plane *plane = drm_to_armada_plane(dcrtc->crtc.primary); in armada_drm_vblank_off()
316 drm_crtc_vblank_off(&dcrtc->crtc); in armada_drm_vblank_off()
320 void armada_drm_crtc_gamma_set(struct drm_crtc *crtc, u16 r, u16 g, u16 b, in armada_drm_crtc_gamma_set() argument
325 void armada_drm_crtc_gamma_get(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b, in armada_drm_crtc_gamma_get() argument
331 static void armada_drm_crtc_dpms(struct drm_crtc *crtc, int dpms) in armada_drm_crtc_dpms() argument
333 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_dpms()
345 drm_crtc_vblank_on(&dcrtc->crtc); in armada_drm_crtc_dpms()
356 static void armada_drm_crtc_prepare(struct drm_crtc *crtc) in armada_drm_crtc_prepare() argument
358 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_prepare()
372 static void armada_drm_crtc_commit(struct drm_crtc *crtc) in armada_drm_crtc_commit() argument
374 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_commit()
383 static bool armada_drm_crtc_mode_fixup(struct drm_crtc *crtc, in armada_drm_crtc_mode_fixup() argument
386 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_mode_fixup()
413 drm_handle_vblank(dcrtc->crtc.dev, dcrtc->num); in armada_drm_crtc_irq()
451 struct armada_plane *plane = drm_to_armada_plane(dcrtc->crtc.primary); in armada_drm_crtc_irq()
498 struct drm_display_mode *adj = &dcrtc->crtc.mode; in armada_drm_crtc_calculate_csc()
533 static int armada_drm_crtc_mode_set(struct drm_crtc *crtc, in armada_drm_crtc_mode_set() argument
537 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_mode_set()
544 drm_framebuffer_reference(crtc->primary->fb); in armada_drm_crtc_mode_set()
548 i = armada_drm_crtc_calc_fb(dcrtc->crtc.primary->fb, in armada_drm_crtc_mode_set()
568 armada_drm_plane_work_wait(drm_to_armada_plane(dcrtc->crtc.primary), in armada_drm_crtc_mode_set()
571 drm_crtc_vblank_off(crtc); in armada_drm_crtc_mode_set()
595 drm_vblank_get(dcrtc->crtc.dev, dcrtc->num); in armada_drm_crtc_mode_set()
597 drm_vblank_put(dcrtc->crtc.dev, dcrtc->num); in armada_drm_crtc_mode_set()
640 val |= CFG_GRA_FMT(drm_fb_to_armada_fb(dcrtc->crtc.primary->fb)->fmt); in armada_drm_crtc_mode_set()
641 val |= CFG_GRA_MOD(drm_fb_to_armada_fb(dcrtc->crtc.primary->fb)->mod); in armada_drm_crtc_mode_set()
643 if (drm_fb_to_armada_fb(dcrtc->crtc.primary->fb)->fmt > CFG_420) in armada_drm_crtc_mode_set()
667 drm_crtc_vblank_on(crtc); in armada_drm_crtc_mode_set()
674 static int armada_drm_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, in armada_drm_crtc_mode_set_base() argument
677 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_mode_set_base()
681 i = armada_drm_crtc_calc_fb(crtc->primary->fb, crtc->x, crtc->y, regs, in armada_drm_crtc_mode_set_base()
686 armada_drm_plane_work_wait(drm_to_armada_plane(dcrtc->crtc.primary), in armada_drm_crtc_mode_set_base()
690 drm_framebuffer_reference(crtc->primary->fb); in armada_drm_crtc_mode_set_base()
736 static void armada_drm_crtc_disable(struct drm_crtc *crtc) in armada_drm_crtc_disable() argument
738 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_disable()
740 armada_drm_crtc_dpms(crtc, DRM_MODE_DPMS_OFF); in armada_drm_crtc_disable()
741 armada_drm_crtc_plane_disable(dcrtc, crtc->primary); in armada_drm_crtc_disable()
812 } else if (dcrtc->cursor_x + w > dcrtc->crtc.mode.hdisplay) { in armada_drm_crtc_cursor_update()
815 w = max_t(int, dcrtc->crtc.mode.hdisplay - dcrtc->cursor_x, 0); in armada_drm_crtc_cursor_update()
825 } else if (dcrtc->cursor_y + h > dcrtc->crtc.mode.vdisplay) { in armada_drm_crtc_cursor_update()
828 h = max_t(int, dcrtc->crtc.mode.vdisplay - dcrtc->cursor_y, 0); in armada_drm_crtc_cursor_update()
897 static int armada_drm_crtc_cursor_set(struct drm_crtc *crtc, in armada_drm_crtc_cursor_set() argument
900 struct drm_device *dev = crtc->dev; in armada_drm_crtc_cursor_set()
901 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_cursor_set()
950 static int armada_drm_crtc_cursor_move(struct drm_crtc *crtc, int x, int y) in armada_drm_crtc_cursor_move() argument
952 struct drm_device *dev = crtc->dev; in armada_drm_crtc_cursor_move()
953 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_cursor_move()
969 static void armada_drm_crtc_destroy(struct drm_crtc *crtc) in armada_drm_crtc_destroy() argument
971 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_destroy()
972 struct armada_private *priv = crtc->dev->dev_private; in armada_drm_crtc_destroy()
978 drm_crtc_cleanup(&dcrtc->crtc); in armada_drm_crtc_destroy()
985 of_node_put(dcrtc->crtc.port); in armada_drm_crtc_destroy()
994 static int armada_drm_crtc_page_flip(struct drm_crtc *crtc, in armada_drm_crtc_page_flip() argument
997 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_page_flip()
1003 if (fb->pixel_format != crtc->primary->fb->pixel_format) 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()
1038 dcrtc->crtc.primary->fb = fb; in armada_drm_crtc_page_flip()
1045 armada_drm_plane_work_run(dcrtc, drm_to_armada_plane(dcrtc->crtc.primary)); in armada_drm_crtc_page_flip()
1051 armada_drm_crtc_set_property(struct drm_crtc *crtc, in armada_drm_crtc_set_property() argument
1054 struct armada_private *priv = crtc->dev->dev_private; in armada_drm_crtc_set_property()
1055 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_set_property()
1203 dcrtc->crtc.port = port; in armada_drm_crtc_create()
1225 ret = drm_crtc_init_with_planes(drm, &dcrtc->crtc, &primary->base, NULL, in armada_drm_crtc_create()
1230 drm_crtc_helper_add(&dcrtc->crtc, &armada_crtc_helper_funcs); in armada_drm_crtc_create()
1232 drm_object_attach_property(&dcrtc->crtc.base, priv->csc_yuv_prop, in armada_drm_crtc_create()
1234 drm_object_attach_property(&dcrtc->crtc.base, priv->csc_rgb_prop, in armada_drm_crtc_create()
1295 armada_drm_crtc_destroy(&dcrtc->crtc); in armada_lcd_unbind()