/Linux-v4.19/drivers/gpu/drm/v3d/ |
D | v3d_drv.c | 40 struct v3d_dev *v3d = to_v3d_dev(drm); in v3d_runtime_suspend() local 42 v3d_irq_disable(v3d); in v3d_runtime_suspend() 44 clk_disable_unprepare(v3d->clk); in v3d_runtime_suspend() 52 struct v3d_dev *v3d = to_v3d_dev(drm); in v3d_runtime_resume() local 55 ret = clk_prepare_enable(v3d->clk); in v3d_runtime_resume() 61 v3d_mmu_set_page_table(v3d); in v3d_runtime_resume() 62 v3d_irq_enable(v3d); in v3d_runtime_resume() 75 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_get_param_ioctl() local 103 ret = pm_runtime_get_sync(v3d->dev); in v3d_get_param_ioctl() 110 pm_runtime_mark_last_busy(v3d->dev); in v3d_get_param_ioctl() [all …]
|
D | v3d_irq.c | 31 struct v3d_dev *v3d = in v3d_overflow_mem_work() local 33 struct drm_device *dev = &v3d->drm; in v3d_overflow_mem_work() 51 spin_lock_irqsave(&v3d->job_lock, irqflags); in v3d_overflow_mem_work() 52 if (!v3d->bin_job) { in v3d_overflow_mem_work() 53 spin_unlock_irqrestore(&v3d->job_lock, irqflags); in v3d_overflow_mem_work() 58 list_add_tail(&bo->unref_head, &v3d->bin_job->unref_list); in v3d_overflow_mem_work() 59 spin_unlock_irqrestore(&v3d->job_lock, irqflags); in v3d_overflow_mem_work() 71 struct v3d_dev *v3d = arg; in v3d_irq() local 85 schedule_work(&v3d->overflow_mem_work); in v3d_irq() 90 dma_fence_signal(v3d->bin_job->bin.done_fence); in v3d_irq() [all …]
|
D | v3d_gem.c | 19 v3d_init_core(struct v3d_dev *v3d, int core) in v3d_init_core() argument 38 v3d_init_hw_state(struct v3d_dev *v3d) in v3d_init_hw_state() argument 40 v3d_init_core(v3d, 0); in v3d_init_hw_state() 44 v3d_idle_axi(struct v3d_dev *v3d, int core) in v3d_idle_axi() argument 57 v3d_idle_gca(struct v3d_dev *v3d) in v3d_idle_gca() argument 59 if (v3d->ver >= 41) in v3d_idle_gca() 72 v3d_reset_v3d(struct v3d_dev *v3d) in v3d_reset_v3d() argument 93 v3d_init_hw_state(v3d); in v3d_reset_v3d() 97 v3d_reset(struct v3d_dev *v3d) in v3d_reset() argument 99 struct drm_device *dev = &v3d->drm; in v3d_reset() [all …]
|
D | v3d_sched.c | 84 struct v3d_dev *v3d = exec->v3d; in v3d_job_run() local 85 struct drm_device *dev = &v3d->drm; in v3d_job_run() 95 spin_lock_irqsave(&v3d->job_lock, irqflags); in v3d_job_run() 97 v3d->bin_job = job->exec; in v3d_job_run() 104 v3d->render_job = job->exec; in v3d_job_run() 106 spin_unlock_irqrestore(&v3d->job_lock, irqflags); in v3d_job_run() 114 v3d_invalidate_caches(v3d); in v3d_job_run() 116 fence = v3d_fence_create(v3d, q); in v3d_job_run() 155 struct v3d_dev *v3d = exec->v3d; in v3d_job_timedout() local 176 mutex_lock(&v3d->reset_lock); in v3d_job_timedout() [all …]
|
D | v3d_mmu.c | 33 static int v3d_mmu_flush_all(struct v3d_dev *v3d) in v3d_mmu_flush_all() argument 43 dev_err(v3d->dev, "TLB clear wait idle pre-wait failed\n"); in v3d_mmu_flush_all() 55 dev_err(v3d->dev, "TLB clear wait idle failed\n"); in v3d_mmu_flush_all() 62 dev_err(v3d->dev, "MMUC flush wait idle failed\n"); in v3d_mmu_flush_all() 67 int v3d_mmu_set_page_table(struct v3d_dev *v3d) in v3d_mmu_set_page_table() argument 69 V3D_WRITE(V3D_MMU_PT_PA_BASE, v3d->pt_paddr >> V3D_MMU_PAGE_SHIFT); in v3d_mmu_set_page_table() 77 (v3d->mmu_scratch_paddr >> V3D_MMU_PAGE_SHIFT) | in v3d_mmu_set_page_table() 81 return v3d_mmu_flush_all(v3d); in v3d_mmu_set_page_table() 86 struct v3d_dev *v3d = to_v3d_dev(bo->base.dev); in v3d_mmu_insert_ptes() local 101 v3d->pt[page++] = pte + i; in v3d_mmu_insert_ptes() [all …]
|
D | v3d_drv.h | 107 struct v3d_dev *v3d; member 162 #define V3D_READ(offset) readl(v3d->hub_regs + offset) 163 #define V3D_WRITE(offset, val) writel(val, v3d->hub_regs + offset) 165 #define V3D_BRIDGE_READ(offset) readl(v3d->bridge_regs + offset) 166 #define V3D_BRIDGE_WRITE(offset, val) writel(val, v3d->bridge_regs + offset) 168 #define V3D_GCA_READ(offset) readl(v3d->gca_regs + offset) 169 #define V3D_GCA_WRITE(offset, val) writel(val, v3d->gca_regs + offset) 171 #define V3D_CORE_READ(core, offset) readl(v3d->core_regs[core] + offset) 172 #define V3D_CORE_WRITE(core, offset, val) writel(val, v3d->core_regs[core] + offset) 192 struct v3d_dev *v3d; member [all …]
|
D | v3d_bo.c | 106 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_bo_create_struct() local 128 spin_lock(&v3d->mm_lock); in v3d_bo_create_struct() 129 ret = drm_mm_insert_node_generic(&v3d->mm, &bo->node, in v3d_bo_create_struct() 132 spin_unlock(&v3d->mm_lock); in v3d_bo_create_struct() 148 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_bo_create() local 167 mutex_lock(&v3d->bo_lock); in v3d_bo_create() 168 v3d->bo_stats.num_allocated++; in v3d_bo_create() 169 v3d->bo_stats.pages_allocated += obj->size >> PAGE_SHIFT; in v3d_bo_create() 170 mutex_unlock(&v3d->bo_lock); in v3d_bo_create() 175 spin_lock(&v3d->mm_lock); in v3d_bo_create() [all …]
|
D | v3d_debugfs.c | 65 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_v3d_debugfs_regs() local 80 for (core = 0; core < v3d->cores; core++) { in v3d_v3d_debugfs_regs() 98 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_v3d_debugfs_ident() local 102 ret = pm_runtime_get_sync(v3d->dev); in v3d_v3d_debugfs_ident() 157 pm_runtime_mark_last_busy(v3d->dev); in v3d_v3d_debugfs_ident() 158 pm_runtime_put_autosuspend(v3d->dev); in v3d_v3d_debugfs_ident() 167 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_debugfs_bo_stats() local 169 mutex_lock(&v3d->bo_lock); in v3d_debugfs_bo_stats() 171 v3d->bo_stats.num_allocated); in v3d_debugfs_bo_stats() 173 (long)v3d->bo_stats.pages_allocated << (PAGE_SHIFT - 10)); in v3d_debugfs_bo_stats() [all …]
|
D | v3d_fence.c | 6 struct dma_fence *v3d_fence_create(struct v3d_dev *v3d, enum v3d_queue queue) in v3d_fence_create() argument 14 fence->dev = &v3d->drm; in v3d_fence_create() 16 fence->seqno = ++v3d->queue[queue].emit_seqno; in v3d_fence_create() 17 dma_fence_init(&fence->base, &v3d_fence_ops, &v3d->job_lock, in v3d_fence_create() 18 v3d->queue[queue].fence_context, fence->seqno); in v3d_fence_create()
|
D | Makefile | 4 v3d-y := \ 14 v3d-$(CONFIG_DEBUG_FS) += v3d_debugfs.o 16 obj-$(CONFIG_DRM_V3D) += v3d.o
|
D | v3d_trace.h | 12 #define TRACE_SYSTEM v3d
|
/Linux-v4.19/drivers/gpu/drm/vc4/ |
D | vc4_v3d.c | 224 struct vc4_v3d *v3d = vc4->v3d; in vc4_allocate_bin_bo() local 244 dev_err(&v3d->pdev->dev, in vc4_allocate_bin_bo() 301 struct vc4_v3d *v3d = dev_get_drvdata(dev); in vc4_v3d_runtime_suspend() local 302 struct vc4_dev *vc4 = v3d->vc4; in vc4_v3d_runtime_suspend() 309 clk_disable_unprepare(v3d->clk); in vc4_v3d_runtime_suspend() 316 struct vc4_v3d *v3d = dev_get_drvdata(dev); in vc4_v3d_runtime_resume() local 317 struct vc4_dev *vc4 = v3d->vc4; in vc4_v3d_runtime_resume() 324 ret = clk_prepare_enable(v3d->clk); in vc4_v3d_runtime_resume() 343 struct vc4_v3d *v3d = NULL; in vc4_v3d_bind() local 346 v3d = devm_kzalloc(&pdev->dev, sizeof(*v3d), GFP_KERNEL); in vc4_v3d_bind() [all …]
|
D | vc4_drv.c | 76 ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev); in vc4_get_param_ioctl() 80 pm_runtime_mark_last_busy(&vc4->v3d->pdev->dev); in vc4_get_param_ioctl() 81 pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev); in vc4_get_param_ioctl() 84 ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev); in vc4_get_param_ioctl() 88 pm_runtime_mark_last_busy(&vc4->v3d->pdev->dev); in vc4_get_param_ioctl() 89 pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev); in vc4_get_param_ioctl() 92 ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev); in vc4_get_param_ioctl() 96 pm_runtime_mark_last_busy(&vc4->v3d->pdev->dev); in vc4_get_param_ioctl() 97 pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev); in vc4_get_param_ioctl()
|
D | vc4_drv.h | 72 struct vc4_v3d *v3d; member 435 #define V3D_READ(offset) readl(vc4->v3d->regs + offset) 436 #define V3D_WRITE(offset, val) writel(val, vc4->v3d->regs + offset)
|
D | vc4_gem.c | 290 pm_runtime_put_sync_suspend(&vc4->v3d->pdev->dev); in vc4_reset() 291 pm_runtime_get_sync(&vc4->v3d->pdev->dev); in vc4_reset() 969 pm_runtime_mark_last_busy(&vc4->v3d->pdev->dev); in vc4_complete_exec() 970 pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev); in vc4_complete_exec() 1148 ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev); in vc4_submit_cl_ioctl()
|
/Linux-v4.19/Documentation/gpu/ |
D | v3d.rst | 2 drm/v3d Broadcom V3D Graphics Driver 5 .. kernel-doc:: drivers/gpu/drm/v3d/v3d_drv.c 11 .. kernel-doc:: drivers/gpu/drm/v3d/v3d_bo.c 16 .. kernel-doc:: drivers/gpu/drm/v3d/v3d_mmu.c 21 .. kernel-doc:: drivers/gpu/drm/v3d/v3d_sched.c 27 .. kernel-doc:: drivers/gpu/drm/v3d/v3d_irq.c
|
D | drivers.rst | 14 v3d
|
/Linux-v4.19/Documentation/devicetree/bindings/gpu/ |
D | brcm,bcm-v3d.txt | 7 - compatible: Should be "brcm,7268-v3d" or "brcm,7278-v3d" 19 v3d { 20 compatible = "brcm,7268-v3d";
|
/Linux-v4.19/Documentation/devicetree/bindings/display/ |
D | brcm,bcm-vc4.txt | 57 - compatible: Should be "brcm,bcm2835-v3d" or "brcm,cygnus-v3d" 156 v3d: v3d@7ec00000 { 157 compatible = "brcm,bcm2835-v3d";
|
/Linux-v4.19/arch/arm/boot/dts/ |
D | bcm2835-rpi.dtsi | 90 &v3d {
|
D | bcm-cygnus.dtsi | 495 v3d: v3d@180a2000 { label 496 compatible = "brcm,cygnus-v3d";
|
D | bcm283x.dtsi | 628 v3d: v3d@7ec00000 { label 629 compatible = "brcm,bcm2835-v3d";
|
D | bcm911360_entphn.dts | 75 &v3d {
|
/Linux-v4.19/drivers/gpu/drm/ |
D | Makefile | 65 obj-$(CONFIG_DRM_V3D) += v3d/
|
D | Kconfig | 292 source "drivers/gpu/drm/v3d/Kconfig"
|