/linux-6.3-rc2/drivers/gpu/drm/v3d/ |
A D | v3d_irq.c | 39 struct v3d_dev *v3d = in v3d_overflow_mem_work() local 62 if (!v3d->bin_job) { in v3d_overflow_mem_work() 81 struct v3d_dev *v3d = arg; in v3d_irq() local 145 struct v3d_dev *v3d = arg; in v3d_hub_irq() local 168 (v3d->va_width - 32)); in v3d_hub_irq() 183 if (v3d->ver >= 41) { in v3d_hub_irq() 223 "v3d_core0", v3d); in v3d_irq_init() 229 "v3d_hub", v3d); in v3d_irq_init() 238 "v3d", v3d); in v3d_irq_init() 243 v3d_irq_enable(v3d); in v3d_irq_init() [all …]
|
A D | v3d_sched.c | 69 v3d_perfmon_stop(v3d, v3d->active_perfmon, true); in v3d_switch_perfmon() 78 struct v3d_dev *v3d = job->base.v3d; in v3d_bin_job_run() local 90 v3d->bin_job = job; in v3d_bin_job_run() 133 struct v3d_dev *v3d = job->base.v3d; in v3d_render_job_run() local 178 struct v3d_dev *v3d = job->base.v3d; in v3d_tfu_job_run() local 186 v3d->tfu_job = job; in v3d_tfu_job_run() 215 struct v3d_dev *v3d = job->base.v3d; in v3d_csd_job_run() local 248 struct v3d_dev *v3d = job->v3d; in v3d_cache_clean_job_run() local 270 v3d_reset(v3d); in v3d_gpu_reset_for_timeout() 295 struct v3d_dev *v3d = job->v3d; in v3d_cl_job_timedout() local [all …]
|
A D | v3d_drv.c | 111 v3d_priv->v3d = v3d; in v3d_open() 217 if (IS_ERR(v3d)) in v3d_platform_drm_probe() 220 drm = &v3d->drm; in v3d_platform_drm_probe() 224 ret = map_regs(v3d, &v3d->hub_regs, "hub"); in v3d_platform_drm_probe() 228 ret = map_regs(v3d, &v3d->core_regs[0], "core0"); in v3d_platform_drm_probe() 253 v3d->reset = NULL; in v3d_platform_drm_probe() 254 ret = map_regs(v3d, &v3d->bridge_regs, "bridge"); in v3d_platform_drm_probe() 263 ret = map_regs(v3d, &v3d->gca_regs, "gca"); in v3d_platform_drm_probe() 268 v3d->mmu_scratch = dma_alloc_wc(dev, 4096, &v3d->mmu_scratch_paddr, in v3d_platform_drm_probe() 294 dma_free_wc(dev, 4096, v3d->mmu_scratch, v3d->mmu_scratch_paddr); in v3d_platform_drm_probe() [all …]
|
A D | v3d_gem.c | 30 if (v3d->ver < 40) in v3d_init_core() 63 if (v3d->ver >= 41) in v3d_idle_gca() 101 if (v3d->reset) in v3d_reset_v3d() 123 v3d_idle_gca(v3d); in v3d_reset() 129 v3d_perfmon_stop(v3d, v3d->active_perfmon, false); in v3d_reset() 156 if (v3d->ver > 32) in v3d_invalidate_l2c() 430 job->v3d = v3d; in v3d_job_init() 1050 v3d->pt = dma_alloc_wc(v3d->drm.dev, pt_size, in v3d_gem_init() 1053 if (!v3d->pt) { in v3d_gem_init() 1066 dma_free_coherent(v3d->drm.dev, 4096 * 1024, (void *)v3d->pt, in v3d_gem_init() [all …]
|
A D | v3d_mmu.c | 33 static int v3d_mmu_flush_all(struct v3d_dev *v3d) in v3d_mmu_flush_all() argument 67 int v3d_mmu_set_page_table(struct v3d_dev *v3d) in v3d_mmu_set_page_table() argument 80 (v3d->mmu_scratch_paddr >> V3D_MMU_PAGE_SHIFT) | in v3d_mmu_set_page_table() 84 return v3d_mmu_flush_all(v3d); in v3d_mmu_set_page_table() 104 v3d->pt[page++] = pte + i; in v3d_mmu_insert_ptes() 110 if (v3d_mmu_flush_all(v3d)) in v3d_mmu_insert_ptes() 111 dev_err(v3d->drm.dev, "MMU flush timeout\n"); in v3d_mmu_insert_ptes() 116 struct v3d_dev *v3d = to_v3d_dev(bo->base.base.dev); in v3d_mmu_remove_ptes() local 121 v3d->pt[page] = 0; in v3d_mmu_remove_ptes() 123 if (v3d_mmu_flush_all(v3d)) in v3d_mmu_remove_ptes() [all …]
|
A D | v3d_drv.h | 153 v3d_has_csd(struct v3d_dev *v3d) in v3d_has_csd() argument 155 return v3d->ver >= 41; in v3d_has_csd() 158 #define v3d_to_pdev(v3d) to_platform_device((v3d)->drm.dev) argument 162 struct v3d_dev *v3d; member 220 struct v3d_dev *v3d; member 385 void v3d_reset(struct v3d_dev *v3d); 390 int v3d_irq_init(struct v3d_dev *v3d); 391 void v3d_irq_enable(struct v3d_dev *v3d); 393 void v3d_irq_reset(struct v3d_dev *v3d); 403 int v3d_sched_init(struct v3d_dev *v3d); [all …]
|
A D | v3d_bo.c | 33 struct v3d_dev *v3d = to_v3d_dev(obj->dev); in v3d_free_object() local 38 mutex_lock(&v3d->bo_lock); in v3d_free_object() 39 v3d->bo_stats.num_allocated--; in v3d_free_object() 41 mutex_unlock(&v3d->bo_lock); in v3d_free_object() 43 spin_lock(&v3d->mm_lock); in v3d_free_object() 45 spin_unlock(&v3d->mm_lock); in v3d_free_object() 103 spin_lock(&v3d->mm_lock); in v3d_bo_create_finish() 111 spin_unlock(&v3d->mm_lock); in v3d_bo_create_finish() 116 mutex_lock(&v3d->bo_lock); in v3d_bo_create_finish() 117 v3d->bo_stats.num_allocated++; in v3d_bo_create_finish() [all …]
|
A D | v3d_debugfs.c | 84 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_v3d_debugfs_regs() local 93 if (v3d->ver < 41) { in v3d_v3d_debugfs_regs() 102 for (core = 0; core < v3d->cores; core++) { in v3d_v3d_debugfs_regs() 112 if (v3d_has_csd(v3d)) { in v3d_v3d_debugfs_regs() 131 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_v3d_debugfs_ident() local 193 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_debugfs_bo_stats() local 195 mutex_lock(&v3d->bo_lock); in v3d_debugfs_bo_stats() 197 v3d->bo_stats.num_allocated); in v3d_debugfs_bo_stats() 200 mutex_unlock(&v3d->bo_lock); in v3d_debugfs_bo_stats() 209 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_measure_clock() local [all …]
|
A 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()
|
A D | v3d_perfmon.c | 26 void v3d_perfmon_start(struct v3d_dev *v3d, struct v3d_perfmon *perfmon) in v3d_perfmon_start() argument 32 if (WARN_ON_ONCE(!perfmon || v3d->active_perfmon)) in v3d_perfmon_start() 58 v3d->active_perfmon = perfmon; in v3d_perfmon_start() 61 void v3d_perfmon_stop(struct v3d_dev *v3d, struct v3d_perfmon *perfmon, in v3d_perfmon_stop() argument 66 if (!perfmon || !v3d->active_perfmon) in v3d_perfmon_stop() 70 if (perfmon != v3d->active_perfmon) { in v3d_perfmon_stop() 81 v3d->active_perfmon = NULL; in v3d_perfmon_stop() 192 struct v3d_dev *v3d = to_v3d_dev(dev); in v3d_perfmon_get_values_ioctl() local 209 v3d_perfmon_stop(v3d, perfmon, true); in v3d_perfmon_get_values_ioctl()
|
A D | Makefile | 5 v3d-y := \ 16 v3d-$(CONFIG_DEBUG_FS) += v3d_debugfs.o 18 obj-$(CONFIG_DRM_V3D) += v3d.o
|
/linux-6.3-rc2/drivers/gpu/drm/vc4/ |
A D | vc4_v3d.c | 239 struct vc4_v3d *v3d = vc4->v3d; in bin_bo_alloc() local 244 if (!v3d) in bin_bo_alloc() 406 struct vc4_v3d *v3d = vc4->v3d; in vc4_v3d_debugfs_init() local 408 if (!vc4->v3d) in vc4_v3d_debugfs_init() 426 v3d = devm_kzalloc(&pdev->dev, sizeof(*v3d), GFP_KERNEL); in vc4_v3d_bind() 427 if (!v3d) in vc4_v3d_bind() 432 v3d->pdev = pdev; in vc4_v3d_bind() 437 v3d->regset.base = v3d->regs; in vc4_v3d_bind() 441 vc4->v3d = v3d; in vc4_v3d_bind() 442 v3d->vc4 = vc4; in vc4_v3d_bind() [all …]
|
A D | vc4_irq.c | 251 if (!vc4->v3d) in vc4_irq_prepare() 271 if (!vc4->v3d) in vc4_irq_enable() 288 if (!vc4->v3d) in vc4_irq_disable()
|
A D | vc4_perfmon.c | 152 if (!vc4->v3d) { in vc4_perfmon_create_ioctl() 206 if (!vc4->v3d) { in vc4_perfmon_destroy_ioctl() 234 if (!vc4->v3d) { in vc4_perfmon_get_values_ioctl()
|
A D | vc4_debugfs.c | 29 if (vc4->v3d) { in vc4_debugfs_init()
|
A D | vc4_drv.h | 91 struct vc4_v3d *v3d; member 648 readl(vc4->v3d->regs + (offset)); \ 654 writel(val, vc4->v3d->regs + (offset)); \
|
/linux-6.3-rc2/Documentation/devicetree/bindings/display/ |
A D | brcm,bcm2835-v3d.yaml | 4 $id: http://devicetree.org/schemas/display/brcm,bcm2835-v3d.yaml# 15 - brcm,bcm2835-v3d 16 - brcm,cygnus-v3d 39 v3d: v3d@7ec00000 { 40 compatible = "brcm,bcm2835-v3d";
|
/linux-6.3-rc2/Documentation/gpu/ |
A 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
|
A D | drivers.rst | 14 v3d
|
/linux-6.3-rc2/Documentation/devicetree/bindings/gpu/ |
A D | brcm,bcm-v3d.yaml | 4 $id: http://devicetree.org/schemas/gpu/brcm,bcm-v3d.yaml# 19 - brcm,2711-v3d 20 - brcm,7268-v3d 21 - brcm,7278-v3d 65 compatible = "brcm,7268-v3d";
|
/linux-6.3-rc2/arch/arm/boot/dts/ |
A D | bcm2835-common.dtsi | 70 clock-names = "v3d", "peri_image", "h264", "isp"; 138 v3d: v3d@7ec00000 { label 139 compatible = "brcm,bcm2835-v3d";
|
A D | bcm2835-rpi-common.dtsi | 23 &v3d {
|
A D | bcm2711-rpi.dtsi | 72 &v3d {
|
A D | bcm-cygnus.dtsi | 500 v3d: v3d@180a2000 { label 501 compatible = "brcm,cygnus-v3d";
|
/linux-6.3-rc2/Documentation/devicetree/bindings/soc/bcm/ |
A D | brcm,bcm2835-pm.yaml | 50 - const: v3d 84 clock-names = "v3d", "peri_image", "h264", "isp";
|