Home
last modified time | relevance | path

Searched refs:vc4 (Results 1 – 25 of 35) sorted by relevance

12

/linux-6.6.21/drivers/gpu/drm/vc4/
Dvc4_irq.c63 struct vc4_dev *vc4 = in vc4_overflow_mem_work() local
70 mutex_lock(&vc4->bin_bo_lock); in vc4_overflow_mem_work()
72 if (!vc4->bin_bo) in vc4_overflow_mem_work()
75 bo = vc4->bin_bo; in vc4_overflow_mem_work()
77 bin_bo_slot = vc4_v3d_get_bin_slot(vc4); in vc4_overflow_mem_work()
83 spin_lock_irqsave(&vc4->job_lock, irqflags); in vc4_overflow_mem_work()
85 if (vc4->bin_alloc_overflow) { in vc4_overflow_mem_work()
92 exec = vc4_first_bin_job(vc4); in vc4_overflow_mem_work()
94 exec = vc4_last_render_job(vc4); in vc4_overflow_mem_work()
96 exec->bin_slots |= vc4->bin_alloc_overflow; in vc4_overflow_mem_work()
[all …]
Dvc4_bo.c44 static void vc4_bo_stats_print(struct drm_printer *p, struct vc4_dev *vc4) in vc4_bo_stats_print() argument
48 for (i = 0; i < vc4->num_labels; i++) { in vc4_bo_stats_print()
49 if (!vc4->bo_labels[i].num_allocated) in vc4_bo_stats_print()
53 vc4->bo_labels[i].name, in vc4_bo_stats_print()
54 vc4->bo_labels[i].size_allocated / 1024, in vc4_bo_stats_print()
55 vc4->bo_labels[i].num_allocated); in vc4_bo_stats_print()
58 mutex_lock(&vc4->purgeable.lock); in vc4_bo_stats_print()
59 if (vc4->purgeable.num) in vc4_bo_stats_print()
61 vc4->purgeable.size / 1024, vc4->purgeable.num); in vc4_bo_stats_print()
63 if (vc4->purgeable.purged_num) in vc4_bo_stats_print()
[all …]
Dvc4_v3d.c101 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_v3d_debugfs_ident() local
102 int ret = vc4_v3d_pm_get(vc4); in vc4_v3d_debugfs_ident()
117 vc4_v3d_pm_put(vc4); in vc4_v3d_debugfs_ident()
128 vc4_v3d_pm_get(struct vc4_dev *vc4) in vc4_v3d_pm_get() argument
130 if (WARN_ON_ONCE(vc4->is_vc5)) in vc4_v3d_pm_get()
133 mutex_lock(&vc4->power_lock); in vc4_v3d_pm_get()
134 if (vc4->power_refcount++ == 0) { in vc4_v3d_pm_get()
135 int ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev); in vc4_v3d_pm_get()
138 vc4->power_refcount--; in vc4_v3d_pm_get()
139 mutex_unlock(&vc4->power_lock); in vc4_v3d_pm_get()
[all …]
Dvc4_gem.c42 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_queue_hangcheck() local
44 mod_timer(&vc4->hangcheck.timer, in vc4_queue_hangcheck()
74 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_get_hang_state_ioctl() local
79 if (WARN_ON_ONCE(vc4->is_vc5)) in vc4_get_hang_state_ioctl()
82 if (!vc4->v3d) { in vc4_get_hang_state_ioctl()
87 spin_lock_irqsave(&vc4->job_lock, irqflags); in vc4_get_hang_state_ioctl()
88 kernel_state = vc4->hang_state; in vc4_get_hang_state_ioctl()
90 spin_unlock_irqrestore(&vc4->job_lock, irqflags); in vc4_get_hang_state_ioctl()
100 spin_unlock_irqrestore(&vc4->job_lock, irqflags); in vc4_get_hang_state_ioctl()
104 vc4->hang_state = NULL; in vc4_get_hang_state_ioctl()
[all …]
Dvc4_perfmon.c20 struct vc4_dev *vc4; in vc4_perfmon_get() local
25 vc4 = perfmon->dev; in vc4_perfmon_get()
26 if (WARN_ON_ONCE(vc4->is_vc5)) in vc4_perfmon_get()
34 struct vc4_dev *vc4; in vc4_perfmon_put() local
39 vc4 = perfmon->dev; in vc4_perfmon_put()
40 if (WARN_ON_ONCE(vc4->is_vc5)) in vc4_perfmon_put()
47 void vc4_perfmon_start(struct vc4_dev *vc4, struct vc4_perfmon *perfmon) in vc4_perfmon_start() argument
52 if (WARN_ON_ONCE(vc4->is_vc5)) in vc4_perfmon_start()
55 if (WARN_ON_ONCE(!perfmon || vc4->active_perfmon)) in vc4_perfmon_start()
64 vc4->active_perfmon = perfmon; in vc4_perfmon_start()
[all …]
Dvc4_kms.c50 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_get_ctm_state() local
54 ret = drm_modeset_lock(&vc4->ctm_state_lock, state->acquire_ctx); in vc4_get_ctm_state()
94 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_ctm_obj_fini() local
96 drm_atomic_private_obj_fini(&vc4->ctm_manager); in vc4_ctm_obj_fini()
99 static int vc4_ctm_obj_init(struct vc4_dev *vc4) in vc4_ctm_obj_init() argument
103 drm_modeset_lock_init(&vc4->ctm_state_lock); in vc4_ctm_obj_init()
109 drm_atomic_private_obj_init(&vc4->base, &vc4->ctm_manager, &ctm_state->base, in vc4_ctm_obj_init()
112 return drmm_add_action_or_reset(&vc4->base, vc4_ctm_obj_fini, NULL); in vc4_ctm_obj_init()
135 vc4_ctm_commit(struct vc4_dev *vc4, struct drm_atomic_state *state) in vc4_ctm_commit() argument
137 struct vc4_hvs *hvs = vc4->hvs; in vc4_ctm_commit()
[all …]
Dvc4_hvs.c72 struct drm_device *drm = &hvs->vc4->base; in vc4_hvs_dump_state()
98 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_hvs_debugfs_underrun() local
101 drm_printf(&p, "%d\n", atomic_read(&vc4->underrun)); in vc4_hvs_debugfs_underrun()
110 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_hvs_debugfs_dlist() local
111 struct vc4_hvs *hvs = vc4->hvs; in vc4_hvs_debugfs_dlist()
129 dlist_word = readl((u32 __iomem *)vc4->hvs->dlist + j); in vc4_hvs_debugfs_dlist()
216 struct drm_device *drm = &hvs->vc4->base; in vc4_hvs_lut_load()
262 struct drm_device *drm = &hvs->vc4->base; in vc4_hvs_get_fifo_frame_count()
290 struct vc4_dev *vc4 = hvs->vc4; in vc4_hvs_get_fifo_from_output() local
294 if (!vc4->is_vc5) in vc4_hvs_get_fifo_from_output()
[all …]
Dvc4_drv.c94 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_get_param_ioctl() local
101 if (WARN_ON_ONCE(vc4->is_vc5)) in vc4_get_param_ioctl()
104 if (!vc4->v3d) in vc4_get_param_ioctl()
109 ret = vc4_v3d_pm_get(vc4); in vc4_get_param_ioctl()
113 vc4_v3d_pm_put(vc4); in vc4_get_param_ioctl()
116 ret = vc4_v3d_pm_get(vc4); in vc4_get_param_ioctl()
120 vc4_v3d_pm_put(vc4); in vc4_get_param_ioctl()
123 ret = vc4_v3d_pm_get(vc4); in vc4_get_param_ioctl()
127 vc4_v3d_pm_put(vc4); in vc4_get_param_ioctl()
147 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_open() local
[all …]
Dvc4_drv.h305 struct vc4_dev *vc4; member
313 struct vc4_dev *vc4; member
621 readl(vc4->v3d->regs + (offset)); \
627 writel(val, vc4->v3d->regs + (offset)); \
779 vc4_first_bin_job(struct vc4_dev *vc4) in vc4_first_bin_job() argument
781 return list_first_entry_or_null(&vc4->bin_job_list, in vc4_first_bin_job()
786 vc4_first_render_job(struct vc4_dev *vc4) in vc4_first_render_job() argument
788 return list_first_entry_or_null(&vc4->render_job_list, in vc4_first_render_job()
793 vc4_last_render_job(struct vc4_dev *vc4) in vc4_last_render_job() argument
795 if (list_empty(&vc4->render_job_list)) in vc4_last_render_job()
[all …]
DMakefile5 vc4-y := \
28 vc4-$(CONFIG_DRM_VC4_KUNIT_TEST) += \
35 vc4-$(CONFIG_DEBUG_FS) += vc4_debugfs.o
37 obj-$(CONFIG_DRM_VC4) += vc4.o
Dvc4_crtc.c83 vc4_crtc_get_cob_allocation(struct vc4_dev *vc4, unsigned int channel) in vc4_crtc_get_cob_allocation() argument
85 struct vc4_hvs *hvs = vc4->hvs; in vc4_crtc_get_cob_allocation()
104 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_crtc_get_scanout_position() local
105 struct vc4_hvs *hvs = vc4->hvs; in vc4_crtc_get_scanout_position()
144 cob_size = vc4_crtc_get_cob_allocation(vc4, vc4_crtc_state->assigned_channel); in vc4_crtc_get_scanout_position()
224 struct vc4_dev *vc4 = to_vc4_dev(vc4_crtc->base.dev); in vc4_get_fifo_full_level() local
266 if (!vc4->is_vc5) in vc4_get_fifo_full_level()
326 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_crtc_config_pv() local
431 if (vc4->is_vc5) in vc4_crtc_config_pv()
458 struct vc4_dev *vc4 = to_vc4_dev(dev); in require_hvs_enabled() local
[all …]
Dvc4_debugfs.c24 struct vc4_dev *vc4 = to_vc4_dev(minor->dev); in vc4_debugfs_init() local
25 struct drm_device *drm = &vc4->base; in vc4_debugfs_init()
29 if (vc4->v3d) { in vc4_debugfs_init()
Dvc4_validate.c108 struct vc4_dev *vc4 = exec->dev; in vc4_use_bo() local
112 if (WARN_ON_ONCE(vc4->is_vc5)) in vc4_use_bo()
167 struct vc4_dev *vc4 = exec->dev; in vc4_check_tex_size() local
172 if (WARN_ON_ONCE(vc4->is_vc5)) in vc4_check_tex_size()
360 struct vc4_dev *vc4 = to_vc4_dev(dev); in validate_tile_binning_config() local
390 bin_slot = vc4_v3d_get_bin_slot(vc4); in validate_tile_binning_config()
403 bin_addr = vc4->bin_bo->base.dma_addr + bin_slot * vc4->bin_alloc_size; in validate_tile_binning_config()
425 *(uint32_t *)(validated + 4) = (bin_addr + vc4->bin_alloc_size - in validate_tile_binning_config()
493 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_validate_bin_cl() local
498 if (WARN_ON_ONCE(vc4->is_vc5)) in vc4_validate_bin_cl()
[all …]
Dvc4_fence.c39 struct vc4_dev *vc4 = to_vc4_dev(f->dev); in vc4_fence_signaled() local
41 return vc4->finished_seqno >= f->seqno; in vc4_fence_signaled()
Dvc4_plane.c300 struct vc4_dev *vc4 = to_vc4_dev(plane->dev); in vc4_plane_destroy_state() local
306 spin_lock_irqsave(&vc4->hvs->mm_lock, irqflags); in vc4_plane_destroy_state()
308 spin_unlock_irqrestore(&vc4->hvs->mm_lock, irqflags); in vc4_plane_destroy_state()
553 struct vc4_dev *vc4 = to_vc4_dev(state->plane->dev); in vc4_lbm_size() local
590 lbm = roundup(lbm, vc4->is_vc5 ? 128 : 64); in vc4_lbm_size()
593 lbm /= vc4->is_vc5 ? 4 : 2; in vc4_lbm_size()
687 struct vc4_dev *vc4 = to_vc4_dev(state->plane->dev); in vc4_plane_allocate_lbm() local
705 spin_lock_irqsave(&vc4->hvs->mm_lock, irqflags); in vc4_plane_allocate_lbm()
706 ret = drm_mm_insert_node_generic(&vc4->hvs->lbm_mm, in vc4_plane_allocate_lbm()
709 vc4->is_vc5 ? 64 : 32, in vc4_plane_allocate_lbm()
[all …]
Dvc4_trace.h14 #define TRACE_SYSTEM vc4
154 #define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/vc4
/linux-6.6.21/Documentation/gpu/
Dvc4.rst2 drm/vc4 Broadcom VC4 Graphics Driver
5 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_drv.c
18 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_crtc.c
24 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_hvs.c
30 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_plane.c
36 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_hdmi.c
42 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_dsi.c
48 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_dpi.c
54 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_vec.c
69 --kunitconfig=drivers/gpu/drm/vc4/tests/.kunitconfig \
[all …]
Ddrivers.rst15 vc4
/linux-6.6.21/drivers/gpu/drm/vc4/tests/
Dvc4_mock.c168 struct vc4_dev *vc4; in __mock_device() local
175 vc4 = drm_kunit_helper_alloc_drm_device_with_driver(test, dev, in __mock_device()
178 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, vc4); in __mock_device()
180 vc4->dev = dev; in __mock_device()
181 vc4->is_vc5 = is_vc5; in __mock_device()
183 vc4->hvs = __vc4_hvs_alloc(vc4, NULL); in __mock_device()
184 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, vc4->hvs); in __mock_device()
186 drm = &vc4->base; in __mock_device()
201 return vc4; in __mock_device()
Dvc4_test_pv_muxing.c22 struct vc4_dev *vc4; member
730 struct vc4_dev *vc4; in vc4_pv_muxing_test_init() local
736 vc4 = params->mock_fn(test); in vc4_pv_muxing_test_init()
737 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, vc4); in vc4_pv_muxing_test_init()
738 priv->vc4 = vc4; in vc4_pv_muxing_test_init()
743 drm = &vc4->base; in vc4_pv_muxing_test_init()
792 struct vc4_dev *vc4; in drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable() local
795 vc4 = vc5_mock_device(test); in drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable()
796 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, vc4); in drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable()
801 drm = &vc4->base; in drm_test_vc5_pv_muxing_bugs_subsequent_crtc_enable()
[all …]
/linux-6.6.21/Documentation/devicetree/bindings/display/
Dbrcm,bcm2835-vc4.yaml4 $id: http://devicetree.org/schemas/display/brcm,bcm2835-vc4.yaml#
21 - brcm,bcm2835-vc4
22 - brcm,cygnus-vc4
31 vc4: gpu {
32 compatible = "brcm,bcm2835-vc4";
/linux-6.6.21/drivers/net/dsa/b53/
Db53_common.c355 u8 mgmt, vc0, vc1, vc4 = 0, vc5; in b53_enable_vlan() local
362 b53_read8(dev, B53_VLAN_PAGE, B53_VLAN_CTRL4_25, &vc4); in b53_enable_vlan()
365 b53_read8(dev, B53_VLAN_PAGE, B53_VLAN_CTRL4_63XX, &vc4); in b53_enable_vlan()
368 b53_read8(dev, B53_VLAN_PAGE, B53_VLAN_CTRL4, &vc4); in b53_enable_vlan()
375 vc4 &= ~VC4_ING_VID_CHECK_MASK; in b53_enable_vlan()
377 vc4 |= VC4_ING_VID_VIO_DROP << VC4_ING_VID_CHECK_S; in b53_enable_vlan()
380 vc4 |= VC4_ING_VID_VIO_FWD << VC4_ING_VID_CHECK_S; in b53_enable_vlan()
393 vc4 &= ~VC4_ING_VID_CHECK_MASK; in b53_enable_vlan()
397 vc4 |= VC4_ING_VID_VIO_FWD << VC4_ING_VID_CHECK_S; in b53_enable_vlan()
399 vc4 |= VC4_ING_VID_VIO_TO_IMP << VC4_ING_VID_CHECK_S; in b53_enable_vlan()
[all …]
/linux-6.6.21/arch/arm/boot/dts/broadcom/
Dbcm2835-common.dtsi144 vc4: gpu { label
145 compatible = "brcm,bcm2835-vc4";
Dbcm2711-rpi-cm4-io.dts133 &vc4 {
/linux-6.6.21/drivers/staging/vc04_services/bcm2835-camera/
DTODO5 vc4 driver can import them. This may involve bringing in the VCSM

12