Lines Matching refs:vc4_crtc

53 #define CRTC_WRITE(offset, val) writel(val, vc4_crtc->regs + (offset))
54 #define CRTC_READ(offset) readl(vc4_crtc->regs + (offset))
96 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_get_scanout_position() local
184 *stime = vc4_crtc->t_vblank; in vc4_crtc_get_scanout_position()
186 *etime = vc4_crtc->t_vblank; in vc4_crtc_get_scanout_position()
210 static u32 vc4_get_fifo_full_level(struct vc4_crtc *vc4_crtc, u32 format) in vc4_get_fifo_full_level() argument
212 const struct vc4_crtc_data *crtc_data = vc4_crtc_to_vc4_crtc_data(vc4_crtc); in vc4_get_fifo_full_level()
213 const struct vc4_pv_data *pv_data = vc4_crtc_to_vc4_pv_data(vc4_crtc); in vc4_get_fifo_full_level()
214 struct vc4_dev *vc4 = to_vc4_dev(vc4_crtc->base.dev); in vc4_get_fifo_full_level()
263 static u32 vc4_crtc_get_fifo_full_level_bits(struct vc4_crtc *vc4_crtc, in vc4_crtc_get_fifo_full_level_bits() argument
266 u32 level = vc4_get_fifo_full_level(vc4_crtc, format); in vc4_crtc_get_fifo_full_level_bits()
298 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_pixelvalve_reset() local
318 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_config_pv() local
319 const struct vc4_pv_data *pv_data = vc4_crtc_to_vc4_pv_data(vc4_crtc); in vc4_crtc_config_pv()
338 struct drm_printer p = drm_info_printer(&vc4_crtc->pdev->dev); in vc4_crtc_config_pv()
339 dev_info(&vc4_crtc->pdev->dev, "CRTC %d regs before:\n", in vc4_crtc_config_pv()
341 drm_print_regset32(&p, &vc4_crtc->regset); in vc4_crtc_config_pv()
410 vc4_crtc_get_fifo_full_level_bits(vc4_crtc, format) | in vc4_crtc_config_pv()
420 struct drm_printer p = drm_info_printer(&vc4_crtc->pdev->dev); in vc4_crtc_config_pv()
421 dev_info(&vc4_crtc->pdev->dev, "CRTC %d regs after:\n", in vc4_crtc_config_pv()
423 drm_print_regset32(&p, &vc4_crtc->regset); in vc4_crtc_config_pv()
444 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_disable() local
508 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_disable_at_boot() local
517 if (!(of_device_is_compatible(vc4_crtc->pdev->dev.of_node, in vc4_crtc_disable_at_boot()
519 of_device_is_compatible(vc4_crtc->pdev->dev.of_node, in vc4_crtc_disable_at_boot()
529 channel = vc4_hvs_get_fifo_from_output(vc4->hvs, vc4_crtc->data->hvs_output); in vc4_crtc_disable_at_boot()
537 pv_data = vc4_crtc_to_vc4_pv_data(vc4_crtc); in vc4_crtc_disable_at_boot()
607 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_atomic_enable() local
738 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_enable_vblank() local
754 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_disable_vblank() local
766 static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc) in vc4_crtc_handle_page_flip() argument
768 struct drm_crtc *crtc = &vc4_crtc->base; in vc4_crtc_handle_page_flip()
772 u32 chan = vc4_crtc->current_hvs_channel; in vc4_crtc_handle_page_flip()
776 spin_lock(&vc4_crtc->irq_lock); in vc4_crtc_handle_page_flip()
777 if (vc4_crtc->event && in vc4_crtc_handle_page_flip()
778 (vc4_crtc->current_dlist == HVS_READ(SCALER_DISPLACTX(chan)) || in vc4_crtc_handle_page_flip()
779 vc4_crtc->feeds_txp)) { in vc4_crtc_handle_page_flip()
780 drm_crtc_send_vblank_event(crtc, vc4_crtc->event); in vc4_crtc_handle_page_flip()
781 vc4_crtc->event = NULL; in vc4_crtc_handle_page_flip()
792 spin_unlock(&vc4_crtc->irq_lock); in vc4_crtc_handle_page_flip()
796 void vc4_crtc_handle_vblank(struct vc4_crtc *crtc) in vc4_crtc_handle_vblank()
805 struct vc4_crtc *vc4_crtc = data; in vc4_crtc_irq_handler() local
811 vc4_crtc_handle_vblank(vc4_crtc); in vc4_crtc_irq_handler()
1097 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_late_register() local
1098 const struct vc4_crtc_data *crtc_data = vc4_crtc_to_vc4_crtc_data(vc4_crtc); in vc4_crtc_late_register()
1102 &vc4_crtc->regset); in vc4_crtc_late_register()
1258 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_set_crtc_possible_masks() local
1259 const struct vc4_pv_data *pv_data = vc4_crtc_to_vc4_pv_data(vc4_crtc); in vc4_set_crtc_possible_masks()
1281 int vc4_crtc_init(struct drm_device *drm, struct vc4_crtc *vc4_crtc, in vc4_crtc_init() argument
1286 struct drm_crtc *crtc = &vc4_crtc->base; in vc4_crtc_init()
1303 spin_lock_init(&vc4_crtc->irq_lock); in vc4_crtc_init()
1312 drm_mode_crtc_set_gamma_size(crtc, ARRAY_SIZE(vc4_crtc->lut_r)); in vc4_crtc_init()
1323 vc4_crtc->lut_r[i] = i; in vc4_crtc_init()
1324 vc4_crtc->lut_g[i] = i; in vc4_crtc_init()
1325 vc4_crtc->lut_b[i] = i; in vc4_crtc_init()
1336 struct vc4_crtc *vc4_crtc; in vc4_crtc_bind() local
1340 vc4_crtc = drmm_kzalloc(drm, sizeof(*vc4_crtc), GFP_KERNEL); in vc4_crtc_bind()
1341 if (!vc4_crtc) in vc4_crtc_bind()
1343 crtc = &vc4_crtc->base; in vc4_crtc_bind()
1348 vc4_crtc->data = &pv_data->base; in vc4_crtc_bind()
1349 vc4_crtc->pdev = pdev; in vc4_crtc_bind()
1351 vc4_crtc->regs = vc4_ioremap_regs(pdev, 0); in vc4_crtc_bind()
1352 if (IS_ERR(vc4_crtc->regs)) in vc4_crtc_bind()
1353 return PTR_ERR(vc4_crtc->regs); in vc4_crtc_bind()
1355 vc4_crtc->regset.base = vc4_crtc->regs; in vc4_crtc_bind()
1356 vc4_crtc->regset.regs = crtc_regs; in vc4_crtc_bind()
1357 vc4_crtc->regset.nregs = ARRAY_SIZE(crtc_regs); in vc4_crtc_bind()
1359 ret = vc4_crtc_init(drm, vc4_crtc, in vc4_crtc_bind()
1370 "vc4 crtc", vc4_crtc); in vc4_crtc_bind()
1374 platform_set_drvdata(pdev, vc4_crtc); in vc4_crtc_bind()
1383 struct vc4_crtc *vc4_crtc = dev_get_drvdata(dev); in vc4_crtc_unbind() local