Home
last modified time | relevance | path

Searched full:v3d (Results 1 – 25 of 27) sorted by relevance

12

/linux/drivers/gpu/drm/v3d/
H A Dv3d_gem.c21 v3d_init_core(struct v3d_dev *v3d, int core) in v3d_init_core() argument
29 if (v3d->ver < V3D_GEN_41) in v3d_init_core()
40 v3d_idle_axi(struct v3d_dev *v3d, int core)
42 V3D_CORE_WRITE(core, V3D_GMP_CFG(v3d->ver), V3D_GMP_CFG_STOP_REQ); in v3d_init_hw_state()
44 if (wait_for((V3D_CORE_READ(core, V3D_GMP_STATUS(v3d->ver)) & in v3d_init_hw_state()
48 drm_err(&v3d->drm, "Failed to wait for safe GMP shutdown\n"); in v3d_idle_axi()
53 v3d_idle_gca(struct v3d_dev *v3d) in v3d_idle_axi()
55 if (v3d->ver >= V3D_GEN_41) in v3d_idle_axi()
63 drm_err(&v3d->drm, "Failed to wait for safe GCA shutdown\n"); in v3d_idle_gca()
68 v3d_reset_by_bridge(struct v3d_dev *v3d) in v3d_idle_gca()
41 v3d_init_hw_state(struct v3d_dev * v3d) v3d_init_hw_state() argument
47 v3d_idle_axi(struct v3d_dev * v3d,int core) v3d_idle_axi() argument
60 v3d_idle_gca(struct v3d_dev * v3d) v3d_idle_gca() argument
75 v3d_reset_by_bridge(struct v3d_dev * v3d) v3d_reset_by_bridge() argument
98 v3d_reset_v3d(struct v3d_dev * v3d) v3d_reset_v3d() argument
109 v3d_reset_sms(struct v3d_dev * v3d) v3d_reset_sms() argument
125 v3d_reset(struct v3d_dev * v3d) v3d_reset() argument
153 v3d_flush_l3(struct v3d_dev * v3d) v3d_flush_l3() argument
172 v3d_invalidate_l2c(struct v3d_dev * v3d,int core) v3d_invalidate_l2c() argument
184 v3d_flush_l2t(struct v3d_dev * v3d,int core) v3d_flush_l2t() argument
209 v3d_clean_caches(struct v3d_dev * v3d) v3d_clean_caches() argument
247 v3d_invalidate_slices(struct v3d_dev * v3d,int core) v3d_invalidate_slices() argument
257 v3d_invalidate_caches(struct v3d_dev * v3d) v3d_invalidate_caches() argument
271 v3d_huge_mnt_init(struct v3d_dev * v3d) v3d_huge_mnt_init() argument
291 struct v3d_dev *v3d = to_v3d_dev(dev); v3d_gem_init() local
364 struct v3d_dev *v3d = to_v3d_dev(dev); v3d_gem_destroy() local
[all...]
H A Dv3d_sched.c5 * DOC: Broadcom V3D scheduling
129 v3d_switch_perfmon(struct v3d_dev *v3d, struct v3d_job *job) in v3d_switch_perfmon() argument
131 struct v3d_perfmon *perfmon = v3d->global_perfmon; in v3d_switch_perfmon()
136 if (perfmon == v3d->active_perfmon) in v3d_switch_perfmon()
139 if (perfmon != v3d->active_perfmon) in v3d_switch_perfmon()
140 v3d_perfmon_stop(v3d, v3d->active_perfmon, true); in v3d_switch_perfmon()
142 if (perfmon && v3d->active_perfmon != perfmon) in v3d_switch_perfmon()
143 v3d_perfmon_start(v3d, perfmon); in v3d_switch_perfmon()
189 struct v3d_dev *v3d in v3d_bin_job_run() local
250 struct v3d_dev *v3d = job->base.v3d; v3d_render_job_run() local
298 struct v3d_dev *v3d = job->base.v3d; v3d_tfu_job_run() local
345 struct v3d_dev *v3d = job->base.v3d; v3d_csd_job_run() local
407 struct v3d_dev *v3d = job->base.v3d; v3d_rewrite_csd_job_wg_counts_from_indirect() local
551 struct v3d_dev *v3d = job->base.v3d; v3d_reset_performance_queries() local
583 struct v3d_dev *v3d = job->base.v3d; v3d_write_performance_query_result() local
661 struct v3d_dev *v3d = job->base.v3d; v3d_cpu_job_run() local
684 struct v3d_dev *v3d = job->v3d; v3d_cache_clean_job_run() local
697 v3d_gpu_reset_for_timeout(struct v3d_dev * v3d,struct drm_sched_job * sched_job,enum v3d_queue q) v3d_gpu_reset_for_timeout() argument
735 struct v3d_dev *v3d = job->v3d; v3d_cl_job_timedout() local
784 struct v3d_dev *v3d = job->base.v3d; v3d_csd_job_timedout() local
834 v3d_queue_sched_init(struct v3d_dev * v3d,const struct drm_sched_backend_ops * ops,enum v3d_queue queue,const char * name) v3d_queue_sched_init() argument
851 v3d_sched_init(struct v3d_dev * v3d) v3d_sched_init() argument
892 v3d_sched_fini(struct v3d_dev * v3d) v3d_sched_fini() argument
[all...]
H A Dv3d_submit.c20 * to v3d, so we don't attach dma-buf fences to them.
55 * @job: V3D job being set up
110 v3d_pm_runtime_put(job->v3d); in v3d_job_free()
165 v3d_job_allocate(struct v3d_dev *v3d, void **container, size_t size) in v3d_job_allocate()
169 drm_err(&v3d->drm, "Cannot allocate memory for V3D job.\n"); in v3d_job_allocate()
184 v3d_job_init(struct v3d_dev *v3d, struct drm_file *file_priv, in v3d_job_init()
192 job->v3d = v3d; in v3d_job_init()
210 drm_dbg(&v3d in v3d_job_init()
162 v3d_job_allocate(struct v3d_dev * v3d,void ** container,size_t size) v3d_job_allocate() argument
181 v3d_job_init(struct v3d_dev * v3d,struct drm_file * file_priv,struct v3d_job * job,void (* free)(struct kref * ref),u32 in_sync,struct v3d_submit_ext * se,enum v3d_queue queue) v3d_job_init() argument
294 v3d_setup_csd_jobs_and_bos(struct drm_file * file_priv,struct v3d_dev * v3d,struct drm_v3d_submit_csd * args,struct v3d_csd_job ** job,struct v3d_job ** clean_job,struct v3d_submit_ext * se,struct ww_acquire_ctx * acquire_ctx) v3d_setup_csd_jobs_and_bos() argument
354 struct v3d_dev *v3d = v3d_priv->v3d; v3d_get_multisync_post_deps() local
405 struct v3d_dev *v3d = v3d_priv->v3d; v3d_get_multisync_submit_deps() local
443 struct v3d_dev *v3d = v3d_priv->v3d; v3d_validate_cpu_job() local
465 struct v3d_dev *v3d = v3d_priv->v3d; v3d_get_cpu_indirect_csd_params() local
832 struct v3d_dev *v3d = v3d_priv->v3d; v3d_get_extensions() local
897 struct v3d_dev *v3d = to_v3d_dev(dev); v3d_submit_cl_ioctl() local
1072 struct v3d_dev *v3d = to_v3d_dev(dev); v3d_submit_tfu_ioctl() local
1170 struct v3d_dev *v3d = to_v3d_dev(dev); v3d_submit_csd_ioctl() local
1280 struct v3d_dev *v3d = to_v3d_dev(dev); v3d_submit_cpu_ioctl() local
[all...]
H A Dv3d_bo.c5 * DOC: V3D GEM BO management support
7 * Compared to VC4 (V3D 2.x), V3D 3.3 introduces an MMU between the
11 * Physically contiguous objects may still be imported to V3D, but the
15 * driver) for an example of how to integrate with V3D.
42 struct v3d_dev *v3d = to_v3d_dev(obj->dev); in v3d_free_object() local
50 mutex_lock(&v3d->bo_lock); in v3d_free_object()
51 v3d->bo_stats.num_allocated--; in v3d_free_object()
52 v3d->bo_stats.pages_allocated -= obj->size >> V3D_MMU_PAGE_SHIFT; in v3d_free_object()
53 mutex_unlock(&v3d->bo_lock); in v3d_free_object()
55 spin_lock(&v3d->mm_lock); in v3d_free_object()
[all …]
H A Dv3d_perfmon.c195 void v3d_perfmon_init(struct v3d_dev *v3d) in v3d_perfmon_init() argument
200 if (v3d->ver >= V3D_GEN_71) { in v3d_perfmon_init()
203 } else if (v3d->ver >= V3D_GEN_42) { in v3d_perfmon_init()
208 v3d->perfmon_info.max_counters = max; in v3d_perfmon_init()
209 v3d->perfmon_info.counters = counters; in v3d_perfmon_init()
226 void v3d_perfmon_start(struct v3d_dev *v3d, struct v3d_perfmon *perfmon) in v3d_perfmon_start() argument
232 if (WARN_ON_ONCE(!perfmon || v3d->active_perfmon)) in v3d_perfmon_start()
235 if (!pm_runtime_get_if_active(v3d->drm.dev)) in v3d_perfmon_start()
244 v3d->ver); in v3d_perfmon_start()
248 V3D_PCTR_S1, v3d in v3d_perfmon_start()
262 v3d_perfmon_stop(struct v3d_dev * v3d,struct v3d_perfmon * perfmon,bool capture) v3d_perfmon_stop() argument
306 struct v3d_dev *v3d = v3d_priv->v3d; v3d_perfmon_delete() local
337 struct v3d_dev *v3d = v3d_priv->v3d; v3d_perfmon_create_ioctl() local
398 struct v3d_dev *v3d = to_v3d_dev(dev); v3d_perfmon_get_values_ioctl() local
426 struct v3d_dev *v3d = to_v3d_dev(dev); v3d_perfmon_get_counter_ioctl() local
455 struct v3d_dev *v3d = to_v3d_dev(dev); v3d_perfmon_set_global_ioctl() local
[all...]
H A DKconfig3 tristate "Broadcom V3D 3.x and newer"
12 V3D 3.x or newer GPUs. SoCs supported include the BCM2711,
H A Dv3d_performance_counters.h24 /* Different revisions of V3D have different total number of
H A Dv3d_trace.h12 #define TRACE_SYSTEM v3d
/linux/drivers/gpu/drm/vc4/
H A Dvc4_v3d.c137 int ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev); in vc4_v3d_pm_get()
158 pm_runtime_mark_last_busy(&vc4->v3d->pdev->dev); in vc4_v3d_pm_put()
159 pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev); in vc4_v3d_pm_put()
227 * To work around this, we allocate a single large buffer while V3D is
241 struct vc4_v3d *v3d = vc4->v3d; in bin_bo_alloc() local
246 if (!v3d) in bin_bo_alloc()
264 dev_err(&v3d->pdev->dev, in bin_bo_alloc()
376 struct vc4_v3d *v3d = dev_get_drvdata(dev); in vc4_v3d_runtime_suspend() local
377 struct vc4_dev *vc4 = v3d->vc4; in vc4_v3d_runtime_suspend()
381 clk_disable_unprepare(v3d->clk); in vc4_v3d_runtime_suspend()
[all …]
H A Dvc4_drv.c11 * OpenGL ES 2.0-compatible 3D engine called V3D, and a highly
104 if (!vc4->v3d) in vc4_get_param_ioctl()
280 { .compatible = "brcm,bcm2835-v3d" },
281 { .compatible = "brcm,cygnus-v3d" },
282 { .compatible = "brcm,vc4-v3d" },
H A Dvc4_gem.c84 if (!vc4->v3d) { in vc4_get_hang_state_ioctl()
85 DRM_DEBUG("VC4_GET_HANG_STATE with no VC4 V3D probed\n"); in vc4_get_hang_state_ioctl()
304 pm_runtime_put_sync_suspend(&vc4->v3d->pdev->dev); in vc4_reset()
305 pm_runtime_get_sync(&vc4->v3d->pdev->dev); in vc4_reset()
673 * @exec: V3D job being set up
1030 if (!vc4->v3d) { in vc4_submit_cl_ioctl()
1031 DRM_DEBUG("VC4_SUBMIT_CL with no VC4 V3D probed\n"); in vc4_submit_cl_ioctl()
1198 * unregistering V3D. in vc4_gem_destroy()
1202 /* V3D should already have disabled its interrupt and cleared in vc4_gem_destroy()
H A Dvc4_fence.c33 return "vc4-v3d"; in vc4_fence_get_timeline_name()
H A Dvc4_bo.c30 "V3D",
31 "V3D shader",
478 * only on BOs that are exposed to userspace (V3D, V3D_SHADER and DUMB in vc4_bo_create()
770 if (!vc4->v3d) in vc4_grab_bin_bo()
997 if (!vc4->v3d) in vc4_bo_debugfs_init()
H A Dvc4_crtc.c890 /* Called when the V3D execution for the BO being flipped to is done, so that
1039 * when V3D is done with the BO being flipped to.
/linux/Documentation/gpu/
H A Dv3d.rst2 drm/v3d Broadcom V3D Graphics Driver
5 .. kernel-doc:: drivers/gpu/drm/v3d/v3d_drv.c
6 :doc: Broadcom V3D Graphics Driver
11 .. kernel-doc:: drivers/gpu/drm/v3d/v3d_bo.c
12 :doc: V3D GEM BO management support
16 .. kernel-doc:: drivers/gpu/drm/v3d/v3d_mmu.c
17 :doc: Broadcom V3D MMU
21 .. kernel-doc:: drivers/gpu/drm/v3d/v3d_sched.c
22 :doc: Broadcom V3D scheduling
27 .. kernel-doc:: drivers/gpu/drm/v3d/v3d_irq.c
[all …]
H A Dvc4.rst87 V3D binner command list (BCL) validation
93 V3D render command list (RCL) generation
104 V3D Interrupts
108 :doc: Interrupt management for the V3D engine
/linux/Documentation/devicetree/bindings/display/
H A Dbrcm,bcm2835-v3d.yaml4 $id: http://devicetree.org/schemas/display/brcm,bcm2835-v3d.yaml#
7 title: Broadcom VC4 (VideoCore4) V3D GPU
15 - brcm,bcm2835-v3d
16 - brcm,cygnus-v3d
39 v3d: v3d@7ec00000 {
40 compatible = "brcm,bcm2835-v3d";
/linux/arch/arm/boot/dts/broadcom/
H A Dbcm2835-rpi-common.dtsi21 clock-names = "v3d", "peri_image", "h264", "isp";
24 &v3d {
H A Dbcm2711-rpi.dtsi85 clock-names = "v3d", "peri_image", "h264", "isp";
104 &v3d {
H A Dbcm911360_entphn.dts73 &v3d {
H A Dbcm-cygnus.dtsi502 v3d: v3d@180a2000 { label
503 compatible = "brcm,cygnus-v3d";
/linux/drivers/pmdomain/bcm/
H A Draspberrypi-power.c213 rpi_init_power_domain(rpi_domains, RPI_POWER_DOMAIN_V3D, "V3D"); in rpi_power_probe()
H A Dbcm2835-power.c589 [BCM2835_POWER_DOMAIN_GRAFX_V3D] = "v3d",
/linux/drivers/clk/bcm/
H A Dclk-raspberrypi.c26 [RPI_FIRMWARE_V3D_CLK_ID] = "v3d",
/linux/include/uapi/drm/
H A Ddrm_fourcc.h1103 * This is the primary layout that the V3D GPU can texture from (it
1170 * blocks, including V3D 3.x and newer, newer video codecs, and

12