Lines Matching refs:vc4_crtc

43 struct vc4_crtc {  struct
61 static inline struct vc4_crtc * argument
64 return (struct vc4_crtc *)crtc; in to_vc4_crtc()
75 #define CRTC_WRITE(offset, val) writel(val, vc4_crtc->regs + (offset))
76 #define CRTC_READ(offset) readl(vc4_crtc->regs + (offset))
98 static void vc4_crtc_dump_regs(struct vc4_crtc *vc4_crtc) in vc4_crtc_dump_regs() argument
116 struct vc4_crtc *vc4_crtc; in vc4_crtc_debugfs_regs() local
127 vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_debugfs_regs()
185 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_mode_set_nofb() local
196 vc4_crtc_dump_regs(vc4_crtc); in vc4_crtc_mode_set_nofb()
245 vc4_crtc_dump_regs(vc4_crtc); in vc4_crtc_mode_set_nofb()
261 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_disable() local
262 u32 chan = vc4_crtc->channel; in vc4_crtc_disable()
299 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_enable() local
308 HVS_WRITE(SCALER_DISPCTRLX(vc4_crtc->channel), in vc4_crtc_enable()
324 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_atomic_check() local
348 if (!vc4_crtc->dlist || dlist_count > vc4_crtc->dlist_size) { in vc4_crtc_atomic_check()
349 vc4_crtc->dlist = ((u32 __iomem *)vc4->hvs->dlist + in vc4_crtc_atomic_check()
351 vc4_crtc->dlist_size = ((SCALER_DLIST_SIZE >> 2) - in vc4_crtc_atomic_check()
354 if (dlist_count > vc4_crtc->dlist_size) { in vc4_crtc_atomic_check()
356 dlist_count, vc4_crtc->dlist_size); in vc4_crtc_atomic_check()
369 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_atomic_flush() local
372 u32 __iomem *dlist_next = vc4_crtc->dlist; in vc4_crtc_atomic_flush()
391 if (dlist_next == vc4_crtc->dlist) { in vc4_crtc_atomic_flush()
398 HVS_WRITE(SCALER_DISPLISTX(vc4_crtc->channel), 0); in vc4_crtc_atomic_flush()
403 HVS_WRITE(SCALER_DISPLISTX(vc4_crtc->channel), in vc4_crtc_atomic_flush()
404 (u32 __iomem *)vc4_crtc->dlist - in vc4_crtc_atomic_flush()
408 vc4_crtc->dlist_size -= (dlist_next - vc4_crtc->dlist); in vc4_crtc_atomic_flush()
409 vc4_crtc->dlist = dlist_next; in vc4_crtc_atomic_flush()
425 vc4_crtc->event = crtc->state->event; in vc4_crtc_atomic_flush()
434 struct vc4_crtc *vc4_crtc = vc4->crtc[crtc_id]; in vc4_enable_vblank() local
444 struct vc4_crtc *vc4_crtc = vc4->crtc[crtc_id]; in vc4_disable_vblank() local
449 static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc) in vc4_crtc_handle_page_flip() argument
451 struct drm_crtc *crtc = &vc4_crtc->base; in vc4_crtc_handle_page_flip()
456 if (vc4_crtc->event) { in vc4_crtc_handle_page_flip()
457 drm_crtc_send_vblank_event(crtc, vc4_crtc->event); in vc4_crtc_handle_page_flip()
458 vc4_crtc->event = NULL; in vc4_crtc_handle_page_flip()
465 struct vc4_crtc *vc4_crtc = data; in vc4_crtc_irq_handler() local
471 drm_crtc_handle_vblank(&vc4_crtc->base); in vc4_crtc_irq_handler()
472 vc4_crtc_handle_page_flip(vc4_crtc); in vc4_crtc_irq_handler()
504 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_cancel_page_flip() local
510 if (vc4_crtc->event && vc4_crtc->event->base.file_priv == file) { in vc4_cancel_page_flip()
511 vc4_crtc->event->base.destroy(&vc4_crtc->event->base); in vc4_cancel_page_flip()
513 vc4_crtc->event = NULL; in vc4_cancel_page_flip()
547 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_set_crtc_possible_masks() local
553 if (vc4_encoder->type == vc4_crtc->data->encoder0_type) { in vc4_set_crtc_possible_masks()
556 } else if (vc4_encoder->type == vc4_crtc->data->encoder1_type) { in vc4_set_crtc_possible_masks()
568 struct vc4_crtc *vc4_crtc; in vc4_crtc_bind() local
574 vc4_crtc = devm_kzalloc(dev, sizeof(*vc4_crtc), GFP_KERNEL); in vc4_crtc_bind()
575 if (!vc4_crtc) in vc4_crtc_bind()
577 crtc = &vc4_crtc->base; in vc4_crtc_bind()
582 vc4_crtc->data = match->data; in vc4_crtc_bind()
584 vc4_crtc->regs = vc4_ioremap_regs(pdev, 0); in vc4_crtc_bind()
585 if (IS_ERR(vc4_crtc->regs)) in vc4_crtc_bind()
586 return PTR_ERR(vc4_crtc->regs); in vc4_crtc_bind()
613 vc4->crtc[drm_crtc_index(crtc)] = vc4_crtc; in vc4_crtc_bind()
614 vc4_crtc->channel = vc4_crtc->data->hvs_channel; in vc4_crtc_bind()
619 vc4_crtc_irq_handler, 0, "vc4 crtc", vc4_crtc); in vc4_crtc_bind()
625 platform_set_drvdata(pdev, vc4_crtc); in vc4_crtc_bind()
641 struct vc4_crtc *vc4_crtc = dev_get_drvdata(dev); in vc4_crtc_unbind() local
643 vc4_crtc_destroy(&vc4_crtc->base); in vc4_crtc_unbind()