Lines Matching refs:hvs

70 	struct drm_printer p = drm_info_printer(&vc4->hvs->pdev->dev);
73 drm_print_regset32(&p, &vc4->hvs->regset);
79 readl((u32 __iomem *)vc4->hvs->dlist + i + 0),
80 readl((u32 __iomem *)vc4->hvs->dlist + i + 1),
81 readl((u32 __iomem *)vc4->hvs->dlist + i + 2),
82 readl((u32 __iomem *)vc4->hvs->dlist + i + 3));
132 static int vc4_hvs_upload_linear_kernel(struct vc4_hvs *hvs,
139 ret = drm_mm_insert_node(&hvs->dlist_mm, space, VC4_KERNEL_DWORDS);
146 dst_kernel = hvs->dlist + space->start;
206 if (!vc4->hvs->hvs5)
273 if (!vc4->hvs->hvs5)
294 ((!vc4->hvs->hvs5) ? SCALER_DISPBKGND_GAMMA : 0) |
352 spin_lock_irqsave(&vc4->hvs->mm_lock, flags);
353 ret = drm_mm_insert_node(&vc4->hvs->dlist_mm, &vc4_state->mm,
355 spin_unlock_irqrestore(&vc4->hvs->mm_lock, flags);
426 u32 __iomem *dlist_start = vc4->hvs->dlist + vc4_state->mm.start;
564 struct vc4_hvs *hvs = NULL;
569 hvs = devm_kzalloc(&pdev->dev, sizeof(*hvs), GFP_KERNEL);
570 if (!hvs)
573 hvs->pdev = pdev;
575 if (of_device_is_compatible(pdev->dev.of_node, "brcm,bcm2711-hvs"))
576 hvs->hvs5 = true;
578 hvs->regs = vc4_ioremap_regs(pdev, 0);
579 if (IS_ERR(hvs->regs))
580 return PTR_ERR(hvs->regs);
582 hvs->regset.base = hvs->regs;
583 hvs->regset.regs = hvs_regs;
584 hvs->regset.nregs = ARRAY_SIZE(hvs_regs);
586 if (hvs->hvs5) {
587 hvs->core_clk = devm_clk_get(&pdev->dev, NULL);
588 if (IS_ERR(hvs->core_clk)) {
590 return PTR_ERR(hvs->core_clk);
593 ret = clk_prepare_enable(hvs->core_clk);
600 if (!hvs->hvs5)
601 hvs->dlist = hvs->regs + SCALER_DLIST_START;
603 hvs->dlist = hvs->regs + SCALER5_DLIST_START;
605 spin_lock_init(&hvs->mm_lock);
612 drm_mm_init(&hvs->dlist_mm,
621 if (!hvs->hvs5)
623 drm_mm_init(&hvs->lbm_mm, 0, 48 * 1024);
626 drm_mm_init(&hvs->lbm_mm, 0, 60 * 1024);
631 ret = vc4_hvs_upload_linear_kernel(hvs,
632 &hvs->mitchell_netravali_filter,
637 vc4->hvs = hvs;
694 vc4_hvs_irq_handler, 0, "vc4 hvs", drm);
698 vc4_debugfs_add_regset32(drm, "hvs_regs", &hvs->regset);
710 struct vc4_hvs *hvs = vc4->hvs;
712 if (drm_mm_node_allocated(&vc4->hvs->mitchell_netravali_filter))
713 drm_mm_remove_node(&vc4->hvs->mitchell_netravali_filter);
715 drm_mm_takedown(&vc4->hvs->dlist_mm);
716 drm_mm_takedown(&vc4->hvs->lbm_mm);
718 clk_disable_unprepare(hvs->core_clk);
720 vc4->hvs = NULL;
740 { .compatible = "brcm,bcm2711-hvs" },
741 { .compatible = "brcm,bcm2835-hvs" },