Lines Matching refs:vc4_crtc

59 #define CRTC_WRITE(offset, val) writel(val, vc4_crtc->regs + (offset))
60 #define CRTC_READ(offset) readl(vc4_crtc->regs + (offset))
82 static void vc4_crtc_dump_regs(struct vc4_crtc *vc4_crtc) in vc4_crtc_dump_regs() argument
100 struct vc4_crtc *vc4_crtc; in vc4_crtc_debugfs_regs() local
111 vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_debugfs_regs()
130 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_get_scanoutpos() local
146 val = HVS_READ(SCALER_DISPSTATX(vc4_crtc->channel)); in vc4_crtc_get_scanoutpos()
167 fifo_lines = vc4_crtc->cob_size / mode->crtc_hdisplay; in vc4_crtc_get_scanoutpos()
215 *stime = vc4_crtc->t_vblank; in vc4_crtc_get_scanoutpos()
217 *etime = vc4_crtc->t_vblank; in vc4_crtc_get_scanoutpos()
251 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_lut_load() local
260 (vc4_crtc->channel * 3 * crtc->gamma_size)); in vc4_crtc_lut_load()
263 HVS_WRITE(SCALER_GAMDATA, vc4_crtc->lut_r[i]); in vc4_crtc_lut_load()
265 HVS_WRITE(SCALER_GAMDATA, vc4_crtc->lut_g[i]); in vc4_crtc_lut_load()
267 HVS_WRITE(SCALER_GAMDATA, vc4_crtc->lut_b[i]); in vc4_crtc_lut_load()
273 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_update_gamma_lut() local
279 vc4_crtc->lut_r[i] = drm_color_lut_extract(lut[i].red, 8); in vc4_crtc_update_gamma_lut()
280 vc4_crtc->lut_g[i] = drm_color_lut_extract(lut[i].green, 8); in vc4_crtc_update_gamma_lut()
281 vc4_crtc->lut_b[i] = drm_color_lut_extract(lut[i].blue, 8); in vc4_crtc_update_gamma_lut()
333 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_config_pv() local
422 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_mode_set_nofb() local
430 vc4_crtc_dump_regs(vc4_crtc); in vc4_crtc_mode_set_nofb()
433 if (vc4_crtc->channel == 2) { in vc4_crtc_mode_set_nofb()
460 HVS_WRITE(SCALER_DISPBKGNDX(vc4_crtc->channel), in vc4_crtc_mode_set_nofb()
472 vc4_crtc_dump_regs(vc4_crtc); in vc4_crtc_mode_set_nofb()
489 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_atomic_disable() local
490 u32 chan = vc4_crtc->channel; in vc4_crtc_atomic_disable()
550 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_update_dlist() local
563 vc4_crtc->event = crtc->state->event; in vc4_crtc_update_dlist()
567 HVS_WRITE(SCALER_DISPLISTX(vc4_crtc->channel), in vc4_crtc_update_dlist()
572 HVS_WRITE(SCALER_DISPLISTX(vc4_crtc->channel), in vc4_crtc_update_dlist()
582 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_atomic_enable() local
599 HVS_WRITE(SCALER_DISPCTRLX(vc4_crtc->channel), in vc4_crtc_atomic_enable()
684 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_atomic_flush() local
726 HVS_WRITE(SCALER_DISPBKGNDX(vc4_crtc->channel), in vc4_crtc_atomic_flush()
727 HVS_READ(SCALER_DISPBKGNDX(vc4_crtc->channel)) | in vc4_crtc_atomic_flush()
741 u32 dispbkgndx = HVS_READ(SCALER_DISPBKGNDX(vc4_crtc->channel)); in vc4_crtc_atomic_flush()
753 HVS_WRITE(SCALER_DISPBKGNDX(vc4_crtc->channel), dispbkgndx); in vc4_crtc_atomic_flush()
764 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_enable_vblank() local
773 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_disable_vblank() local
778 static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc) in vc4_crtc_handle_page_flip() argument
780 struct drm_crtc *crtc = &vc4_crtc->base; in vc4_crtc_handle_page_flip()
784 u32 chan = vc4_crtc->channel; in vc4_crtc_handle_page_flip()
788 if (vc4_crtc->event && in vc4_crtc_handle_page_flip()
791 drm_crtc_send_vblank_event(crtc, vc4_crtc->event); in vc4_crtc_handle_page_flip()
792 vc4_crtc->event = NULL; in vc4_crtc_handle_page_flip()
798 void vc4_crtc_handle_vblank(struct vc4_crtc *crtc) in vc4_crtc_handle_vblank()
807 struct vc4_crtc *vc4_crtc = data; in vc4_crtc_irq_handler() local
813 vc4_crtc_handle_vblank(vc4_crtc); in vc4_crtc_irq_handler()
1066 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_set_crtc_possible_masks() local
1067 const struct vc4_crtc_data *crtc_data = vc4_crtc->data; in vc4_set_crtc_possible_masks()
1094 vc4_crtc_get_cob_allocation(struct vc4_crtc *vc4_crtc) in vc4_crtc_get_cob_allocation() argument
1096 struct drm_device *drm = vc4_crtc->base.dev; in vc4_crtc_get_cob_allocation()
1098 u32 dispbase = HVS_READ(SCALER_DISPBASEX(vc4_crtc->channel)); in vc4_crtc_get_cob_allocation()
1106 vc4_crtc->cob_size = top - base + 4; in vc4_crtc_get_cob_allocation()
1113 struct vc4_crtc *vc4_crtc; in vc4_crtc_bind() local
1119 vc4_crtc = devm_kzalloc(dev, sizeof(*vc4_crtc), GFP_KERNEL); in vc4_crtc_bind()
1120 if (!vc4_crtc) in vc4_crtc_bind()
1122 crtc = &vc4_crtc->base; in vc4_crtc_bind()
1127 vc4_crtc->data = match->data; in vc4_crtc_bind()
1129 vc4_crtc->regs = vc4_ioremap_regs(pdev, 0); in vc4_crtc_bind()
1130 if (IS_ERR(vc4_crtc->regs)) in vc4_crtc_bind()
1131 return PTR_ERR(vc4_crtc->regs); in vc4_crtc_bind()
1149 vc4_crtc->channel = vc4_crtc->data->hvs_channel; in vc4_crtc_bind()
1150 drm_mode_crtc_set_gamma_size(crtc, ARRAY_SIZE(vc4_crtc->lut_r)); in vc4_crtc_bind()
1187 vc4_crtc_get_cob_allocation(vc4_crtc); in vc4_crtc_bind()
1192 vc4_crtc_irq_handler, 0, "vc4 crtc", vc4_crtc); in vc4_crtc_bind()
1199 vc4_crtc->lut_r[i] = i; in vc4_crtc_bind()
1200 vc4_crtc->lut_g[i] = i; in vc4_crtc_bind()
1201 vc4_crtc->lut_b[i] = i; in vc4_crtc_bind()
1204 platform_set_drvdata(pdev, vc4_crtc); in vc4_crtc_bind()
1222 struct vc4_crtc *vc4_crtc = dev_get_drvdata(dev); in vc4_crtc_unbind() local
1224 vc4_crtc_destroy(&vc4_crtc->base); in vc4_crtc_unbind()