• Home
  • Raw
  • Download

Lines Matching refs:hvs

70 	struct drm_printer p = drm_info_printer(&vc4->hvs->pdev->dev);  in vc4_hvs_dump_state()
73 drm_print_regset32(&p, &vc4->hvs->regset); in vc4_hvs_dump_state()
79 readl((u32 __iomem *)vc4->hvs->dlist + i + 0), in vc4_hvs_dump_state()
80 readl((u32 __iomem *)vc4->hvs->dlist + i + 1), in vc4_hvs_dump_state()
81 readl((u32 __iomem *)vc4->hvs->dlist + i + 2), in vc4_hvs_dump_state()
82 readl((u32 __iomem *)vc4->hvs->dlist + i + 3)); in vc4_hvs_dump_state()
132 static int vc4_hvs_upload_linear_kernel(struct vc4_hvs *hvs, in vc4_hvs_upload_linear_kernel() argument
139 ret = drm_mm_insert_node(&hvs->dlist_mm, space, VC4_KERNEL_DWORDS); in vc4_hvs_upload_linear_kernel()
146 dst_kernel = hvs->dlist + space->start; in vc4_hvs_upload_linear_kernel()
229 if (!vc4->hvs->hvs5) in vc4_hvs_get_fifo_from_output()
296 if (!vc4->hvs->hvs5) in vc4_hvs_init_channel()
317 ((!vc4->hvs->hvs5) ? SCALER_DISPBKGND_GAMMA : 0) | in vc4_hvs_init_channel()
375 spin_lock_irqsave(&vc4->hvs->mm_lock, flags); in vc4_hvs_atomic_check()
376 ret = drm_mm_insert_node(&vc4->hvs->dlist_mm, &vc4_state->mm, in vc4_hvs_atomic_check()
378 spin_unlock_irqrestore(&vc4->hvs->mm_lock, flags); in vc4_hvs_atomic_check()
467 u32 __iomem *dlist_start = vc4->hvs->dlist + vc4_state->mm.start; in vc4_hvs_atomic_flush()
605 struct vc4_hvs *hvs = NULL; in vc4_hvs_bind() local
610 hvs = devm_kzalloc(&pdev->dev, sizeof(*hvs), GFP_KERNEL); in vc4_hvs_bind()
611 if (!hvs) in vc4_hvs_bind()
614 hvs->pdev = pdev; in vc4_hvs_bind()
617 hvs->hvs5 = true; in vc4_hvs_bind()
619 hvs->regs = vc4_ioremap_regs(pdev, 0); in vc4_hvs_bind()
620 if (IS_ERR(hvs->regs)) in vc4_hvs_bind()
621 return PTR_ERR(hvs->regs); in vc4_hvs_bind()
623 hvs->regset.base = hvs->regs; in vc4_hvs_bind()
624 hvs->regset.regs = hvs_regs; in vc4_hvs_bind()
625 hvs->regset.nregs = ARRAY_SIZE(hvs_regs); in vc4_hvs_bind()
627 if (hvs->hvs5) { in vc4_hvs_bind()
628 hvs->core_clk = devm_clk_get(&pdev->dev, NULL); in vc4_hvs_bind()
629 if (IS_ERR(hvs->core_clk)) { in vc4_hvs_bind()
631 return PTR_ERR(hvs->core_clk); in vc4_hvs_bind()
634 ret = clk_prepare_enable(hvs->core_clk); in vc4_hvs_bind()
641 if (!hvs->hvs5) in vc4_hvs_bind()
642 hvs->dlist = hvs->regs + SCALER_DLIST_START; in vc4_hvs_bind()
644 hvs->dlist = hvs->regs + SCALER5_DLIST_START; in vc4_hvs_bind()
646 spin_lock_init(&hvs->mm_lock); in vc4_hvs_bind()
653 drm_mm_init(&hvs->dlist_mm, in vc4_hvs_bind()
662 if (!hvs->hvs5) in vc4_hvs_bind()
664 drm_mm_init(&hvs->lbm_mm, 0, 48 * 1024); in vc4_hvs_bind()
667 drm_mm_init(&hvs->lbm_mm, 0, 60 * 1024); in vc4_hvs_bind()
672 ret = vc4_hvs_upload_linear_kernel(hvs, in vc4_hvs_bind()
673 &hvs->mitchell_netravali_filter, in vc4_hvs_bind()
678 vc4->hvs = hvs; in vc4_hvs_bind()
739 vc4_debugfs_add_regset32(drm, "hvs_regs", &hvs->regset); in vc4_hvs_bind()
751 struct vc4_hvs *hvs = vc4->hvs; in vc4_hvs_unbind() local
753 if (drm_mm_node_allocated(&vc4->hvs->mitchell_netravali_filter)) in vc4_hvs_unbind()
754 drm_mm_remove_node(&vc4->hvs->mitchell_netravali_filter); in vc4_hvs_unbind()
756 drm_mm_takedown(&vc4->hvs->dlist_mm); in vc4_hvs_unbind()
757 drm_mm_takedown(&vc4->hvs->lbm_mm); in vc4_hvs_unbind()
759 clk_disable_unprepare(hvs->core_clk); in vc4_hvs_unbind()
761 vc4->hvs = NULL; in vc4_hvs_unbind()