Lines Matching refs:crtc

136 	if (dcrtc->crtc.mode.flags & DRM_MODE_FLAG_NCSYNC)  in armada_drm_crtc_update()
138 if (dcrtc->crtc.mode.flags & DRM_MODE_FLAG_NHSYNC) in armada_drm_crtc_update()
140 if (dcrtc->crtc.mode.flags & DRM_MODE_FLAG_NVSYNC) in armada_drm_crtc_update()
179 struct drm_device *dev = dcrtc->crtc.dev; in armada_drm_crtc_queue_frame_work()
204 struct drm_device *dev = dcrtc->crtc.dev; in armada_drm_crtc_complete_frame_work()
217 __armada_drm_queue_unref_work(dcrtc->crtc.dev, work->old_fb); in armada_drm_crtc_complete_frame_work()
258 struct drm_device *dev = dcrtc->crtc.dev; in armada_drm_vblank_off()
264 drm_crtc_vblank_off(&dcrtc->crtc); in armada_drm_vblank_off()
273 void armada_drm_crtc_gamma_set(struct drm_crtc *crtc, u16 r, u16 g, u16 b, in armada_drm_crtc_gamma_set() argument
278 void armada_drm_crtc_gamma_get(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b, in armada_drm_crtc_gamma_get() argument
284 static void armada_drm_crtc_dpms(struct drm_crtc *crtc, int dpms) in armada_drm_crtc_dpms() argument
286 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_dpms()
294 drm_crtc_vblank_on(&dcrtc->crtc); in armada_drm_crtc_dpms()
305 static void armada_drm_crtc_prepare(struct drm_crtc *crtc) in armada_drm_crtc_prepare() argument
307 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_prepare()
321 plane->crtc = NULL; in armada_drm_crtc_prepare()
327 static void armada_drm_crtc_commit(struct drm_crtc *crtc) in armada_drm_crtc_commit() argument
329 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_commit()
338 static bool armada_drm_crtc_mode_fixup(struct drm_crtc *crtc, in armada_drm_crtc_mode_fixup() argument
341 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_mode_fixup()
368 drm_handle_vblank(dcrtc->crtc.dev, dcrtc->num); in armada_drm_crtc_irq()
374 drm_vblank_put(dcrtc->crtc.dev, dcrtc->num); in armada_drm_crtc_irq()
407 struct drm_device *dev = dcrtc->crtc.dev; in armada_drm_crtc_irq()
460 struct drm_display_mode *adj = &dcrtc->crtc.mode; in armada_drm_crtc_calculate_csc()
495 static int armada_drm_crtc_mode_set(struct drm_crtc *crtc, in armada_drm_crtc_mode_set() argument
499 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_mode_set()
506 drm_framebuffer_reference(crtc->primary->fb); in armada_drm_crtc_mode_set()
510 i = armada_drm_crtc_calc_fb(dcrtc->crtc.primary->fb, in armada_drm_crtc_mode_set()
532 drm_crtc_vblank_off(crtc); in armada_drm_crtc_mode_set()
534 crtc->mode = *adj; in armada_drm_crtc_mode_set()
551 drm_vblank_get(dcrtc->crtc.dev, dcrtc->num); in armada_drm_crtc_mode_set()
553 drm_vblank_put(dcrtc->crtc.dev, dcrtc->num); in armada_drm_crtc_mode_set()
596 val |= CFG_GRA_FMT(drm_fb_to_armada_fb(dcrtc->crtc.primary->fb)->fmt); in armada_drm_crtc_mode_set()
597 val |= CFG_GRA_MOD(drm_fb_to_armada_fb(dcrtc->crtc.primary->fb)->mod); in armada_drm_crtc_mode_set()
599 if (drm_fb_to_armada_fb(dcrtc->crtc.primary->fb)->fmt > CFG_420) in armada_drm_crtc_mode_set()
623 drm_crtc_vblank_on(crtc); in armada_drm_crtc_mode_set()
630 static int armada_drm_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, in armada_drm_crtc_mode_set_base() argument
633 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_mode_set_base()
637 i = armada_drm_crtc_calc_fb(crtc->primary->fb, crtc->x, crtc->y, regs, in armada_drm_crtc_mode_set_base()
645 drm_framebuffer_reference(crtc->primary->fb); in armada_drm_crtc_mode_set_base()
657 static void armada_drm_crtc_disable(struct drm_crtc *crtc) in armada_drm_crtc_disable() argument
659 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_disable()
661 armada_drm_crtc_dpms(crtc, DRM_MODE_DPMS_OFF); in armada_drm_crtc_disable()
662 armada_drm_crtc_finish_fb(dcrtc, crtc->primary->fb, true); in armada_drm_crtc_disable()
738 } else if (dcrtc->cursor_x + w > dcrtc->crtc.mode.hdisplay) { in armada_drm_crtc_cursor_update()
741 w = max_t(int, dcrtc->crtc.mode.hdisplay - dcrtc->cursor_x, 0); in armada_drm_crtc_cursor_update()
751 } else if (dcrtc->cursor_y + h > dcrtc->crtc.mode.vdisplay) { in armada_drm_crtc_cursor_update()
754 h = max_t(int, dcrtc->crtc.mode.vdisplay - dcrtc->cursor_y, 0); in armada_drm_crtc_cursor_update()
823 static int armada_drm_crtc_cursor_set(struct drm_crtc *crtc, in armada_drm_crtc_cursor_set() argument
826 struct drm_device *dev = crtc->dev; in armada_drm_crtc_cursor_set()
827 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_cursor_set()
876 static int armada_drm_crtc_cursor_move(struct drm_crtc *crtc, int x, int y) in armada_drm_crtc_cursor_move() argument
878 struct drm_device *dev = crtc->dev; in armada_drm_crtc_cursor_move()
879 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_cursor_move()
895 static void armada_drm_crtc_destroy(struct drm_crtc *crtc) in armada_drm_crtc_destroy() argument
897 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_destroy()
898 struct armada_private *priv = crtc->dev->dev_private; in armada_drm_crtc_destroy()
904 drm_crtc_cleanup(&dcrtc->crtc); in armada_drm_crtc_destroy()
911 of_node_put(dcrtc->crtc.port); in armada_drm_crtc_destroy()
920 static int armada_drm_crtc_page_flip(struct drm_crtc *crtc, in armada_drm_crtc_page_flip() argument
923 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_page_flip()
925 struct drm_device *dev = crtc->dev; in armada_drm_crtc_page_flip()
931 if (fb->pixel_format != crtc->primary->fb->pixel_format) in armada_drm_crtc_page_flip()
939 work->old_fb = dcrtc->crtc.primary->fb; in armada_drm_crtc_page_flip()
941 i = armada_drm_crtc_calc_fb(fb, crtc->x, crtc->y, work->regs, in armada_drm_crtc_page_flip()
965 dcrtc->crtc.primary->fb = fb; in armada_drm_crtc_page_flip()
982 armada_drm_crtc_set_property(struct drm_crtc *crtc, in armada_drm_crtc_set_property() argument
985 struct armada_private *priv = crtc->dev->dev_private; in armada_drm_crtc_set_property()
986 struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc); in armada_drm_crtc_set_property()
1122 dcrtc->crtc.port = port; in armada_drm_crtc_create()
1123 drm_crtc_init(drm, &dcrtc->crtc, &armada_crtc_funcs); in armada_drm_crtc_create()
1124 drm_crtc_helper_add(&dcrtc->crtc, &armada_crtc_helper_funcs); in armada_drm_crtc_create()
1126 drm_object_attach_property(&dcrtc->crtc.base, priv->csc_yuv_prop, in armada_drm_crtc_create()
1128 drm_object_attach_property(&dcrtc->crtc.base, priv->csc_rgb_prop, in armada_drm_crtc_create()
1185 armada_drm_crtc_destroy(&dcrtc->crtc); in armada_lcd_unbind()