Home
last modified time | relevance | path

Searched full:vc4 (Results 1 – 25 of 46) sorted by relevance

12

/linux/drivers/gpu/drm/vc4/
H A Dvc4_bo.c7 * DOC: VC4 GEM BO management support
9 * The VC4 GPU architecture (both scanout and rendering) has direct
44 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()
[all …]
H A 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()
79 drm_err(&vc4->base, "Couldn't allocate binner overflow mem\n"); 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()
[all …]
H A 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->gen > VC4_GEN_4)) 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 …]
H A Dvc4_perfmon.c7 * DOC: VC4 V3D performance monitor module
20 struct vc4_dev *vc4; in vc4_perfmon_get() local
25 vc4 = perfmon->dev; in vc4_perfmon_get()
26 if (WARN_ON_ONCE(vc4->gen > VC4_GEN_4)) 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->gen > VC4_GEN_4)) 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->gen > VC4_GEN_4)) in vc4_perfmon_start()
55 if (WARN_ON_ONCE(!perfmon || vc4->active_perfmon)) in vc4_perfmon_start()
[all …]
H A Dvc4_gem.c43 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_queue_hangcheck() local
45 mod_timer(&vc4->hangcheck.timer, in vc4_queue_hangcheck()
75 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_get_hang_state_ioctl() local
80 if (WARN_ON_ONCE(vc4->gen > VC4_GEN_4)) in vc4_get_hang_state_ioctl()
83 if (!vc4->v3d) { in vc4_get_hang_state_ioctl()
84 DRM_DEBUG("VC4_GET_HANG_STATE with no VC4 V3D probed\n"); in vc4_get_hang_state_ioctl()
88 spin_lock_irqsave(&vc4->job_lock, irqflags); in vc4_get_hang_state_ioctl()
89 kernel_state = vc4->hang_state; in vc4_get_hang_state_ioctl()
91 spin_unlock_irqrestore(&vc4->job_lock, irqflags); in vc4_get_hang_state_ioctl()
101 spin_unlock_irqrestore(&vc4->job_lock, irqflags); in vc4_get_hang_state_ioctl()
[all …]
H A Dvc4_hvs.c7 * DOC: VC4 HVS module.
206 struct drm_device *drm = &hvs->vc4->base; in vc4_hvs_dump_state()
232 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_hvs_debugfs_underrun() local
235 drm_printf(&p, "%d\n", atomic_read(&vc4->underrun)); in vc4_hvs_debugfs_underrun()
244 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_hvs_debugfs_dlist() local
245 struct vc4_hvs *hvs = vc4->hvs; in vc4_hvs_debugfs_dlist()
265 dlist_word = readl((u32 __iomem *)vc4->hvs->dlist + j); in vc4_hvs_debugfs_dlist()
286 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc6_hvs_debugfs_dlist() local
287 struct vc4_hvs *hvs = vc4->hvs; in vc6_hvs_debugfs_dlist()
314 dlist_word = readl((u32 __iomem *)vc4->hvs->dlist + j); in vc6_hvs_debugfs_dlist()
[all …]
H A Dvc4_kms.c7 * DOC: VC4 KMS
50 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
[all …]
H A Dvc4_drv.c8 * DOC: Broadcom VC4 Graphics Driver
48 #define DRIVER_NAME "vc4"
49 #define DRIVER_DESC "Broadcom VC4 graphics"
95 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_get_param_ioctl() local
102 if (WARN_ON_ONCE(vc4->gen > VC4_GEN_4)) in vc4_get_param_ioctl()
105 if (!vc4->v3d) in vc4_get_param_ioctl()
110 ret = vc4_v3d_pm_get(vc4); in vc4_get_param_ioctl()
114 vc4_v3d_pm_put(vc4); in vc4_get_param_ioctl()
117 ret = vc4_v3d_pm_get(vc4); in vc4_get_param_ioctl()
121 vc4_v3d_pm_put(vc4); in vc4_get_param_ioctl()
[all …]
H A 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
H A Dvc4_fence.c28 return "vc4"; in vc4_fence_get_driver_name()
33 return "vc4-v3d"; in vc4_fence_get_timeline_name()
39 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()
H A 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()
H A Dvc4_hdmi.c10 * DOC: VC4 Falcon HDMI module
443 struct vc4_dev *vc4 = to_vc4_dev(connector->dev); in vc4_hdmi_connector_get_modes() local
448 if (!vc4->hvs->vc5_hdmi_enable_hdmi_20) { in vc4_hdmi_connector_get_modes()
806 struct vc4_dev *vc4 = to_vc4_dev(drm); in vc4_hdmi_encoder_post_crtc_disable() local
823 if (vc4->gen >= VC4_GEN_6_C) in vc4_hdmi_encoder_post_crtc_disable()
835 if (vc4->gen < VC4_GEN_6_C) { in vc4_hdmi_encoder_post_crtc_disable()
1425 * As stated in RPi's vc4 firmware "HDMI state machine (HSM) clock must in vc4_hdmi_encoder_pre_crtc_configure()
1428 * operation." This conflicts with bcm2835's vc4 documentation, which in vc4_hdmi_encoder_pre_crtc_configure()
1431 * Real life tests reveal that vc4's firmware statement holds up, and in vc4_hdmi_encoder_pre_crtc_configure()
1650 struct vc4_dev *vc4 = to_vc4_dev(connector->dev); in vc4_hdmi_connector_clock_valid() local
[all …]
H A Dvc4_regs.h24 WARN_ON(!FIELD_FIT(hvs->vc4->gen == VC4_GEN_6_C ? \
27 FIELD_PREP(hvs->vc4->gen == VC4_GEN_6_C ? \
32 #define VC6_GET_FIELD(word, field) FIELD_GET(hvs->vc4->gen == VC4_GEN_6_C ? \
565 #define SCALER6_DISPX_CTRL0(x) ((hvs->vc4->gen == VC4_GEN_6_C) ? \
576 #define SCALER6_DISPX_CTRL1(x) ((hvs->vc4->gen == VC4_GEN_6_C) ? \
583 #define SCALER6_DISPX_BGND(x) ((hvs->vc4->gen == VC4_GEN_6_C) ? \
588 #define SCALER6_DISPX_LPTRS(x) ((hvs->vc4->gen == VC4_GEN_6_C) ? \
594 #define SCALER6_DISPX_COB(x) ((hvs->vc4->gen == VC4_GEN_6_C) ? \
601 #define SCALER6_DISPX_STATUS(x) ((hvs->vc4->gen == VC4_GEN_6_C) ? \
616 #define SCALER6_DISPX_DL(x) ((hvs->vc4->gen == VC4_GEN_6_C) ? \
[all …]
H A Dvc4_trace.h14 #define TRACE_SYSTEM vc4
154 #define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/vc4
/linux/Documentation/gpu/
H A Dvc4.rst2 drm/vc4 Broadcom VC4 Graphics Driver
5 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_drv.c
6 :doc: Broadcom VC4 Graphics Driver
18 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_crtc.c
19 :doc: VC4 CRTC module
24 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_hvs.c
25 :doc: VC4 HVS module.
30 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_plane.c
31 :doc: VC4 plane module
36 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_hdmi.c
[all …]
/linux/Documentation/devicetree/bindings/display/
H A Dbrcm,bcm2835-vc4.yaml4 $id: http://devicetree.org/schemas/display/brcm,bcm2835-vc4.yaml#
7 title: Broadcom VC4 (VideoCore4) GPU
13 The VC4 device present on the Raspberry Pi includes a display system
22 - brcm,bcm2835-vc4
23 - brcm,cygnus-vc4
32 vc4: gpu {
33 compatible = "brcm,bcm2835-vc4";
H A Dbrcm,bcm2835-txp.yaml7 title: Broadcom VC4 (VideoCore4) TXP (writeback) Controller
H A Dbrcm,bcm2835-v3d.yaml7 title: Broadcom VC4 (VideoCore4) V3D GPU
H A Dbrcm,bcm2835-vec.yaml7 title: Broadcom VC4 (VideoCore4) VEC
/linux/drivers/gpu/drm/vc4/tests/
H A Dvc4_mock.c163 struct vc4_dev *vc4; in __mock_device() local
170 vc4 = drm_kunit_helper_alloc_drm_device_with_driver(test, dev, in __mock_device()
173 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, vc4); in __mock_device()
175 vc4->dev = dev; in __mock_device()
176 vc4->gen = gen; in __mock_device()
178 vc4->hvs = __vc4_hvs_alloc(vc4, NULL, NULL); in __mock_device()
179 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, vc4->hvs); in __mock_device()
181 drm = &vc4->base; in __mock_device()
196 return vc4; in __mock_device()
/linux/include/uapi/drm/
H A Dvc4_drm.h83 * their associated state. However, because the VC4 lacks an MMU, we have to
227 * struct drm_vc4_create_bo - ioctl argument for creating VC4 BOs.
241 * struct drm_vc4_mmap_bo - ioctl argument for mapping VC4 BOs.
260 * struct drm_vc4_create_shader_bo - ioctl argument for creating VC4
/linux/arch/arm/boot/dts/broadcom/
H A Dbcm2835-common.dtsi144 vc4: gpu { label
145 compatible = "brcm,bcm2835-vc4";
/linux/drivers/media/platform/broadcom/
H A DKconfig15 independently from the VC4 firmware.
/linux/drivers/staging/vc04_services/bcm2835-camera/
H A DTODO5 vc4 driver can import them. This may involve bringing in the VCSM
/linux/drivers/net/dsa/b53/
H A Db53_common.c386 u8 mgmt, vc0, vc1, vc4 = 0, vc5; in b53_enable_vlan() local
393 b53_read8(dev, B53_VLAN_PAGE, B53_VLAN_CTRL4_25, &vc4); in b53_enable_vlan()
396 b53_read8(dev, B53_VLAN_PAGE, B53_VLAN_CTRL4_63XX, &vc4); in b53_enable_vlan()
399 b53_read8(dev, B53_VLAN_PAGE, B53_VLAN_CTRL4, &vc4); in b53_enable_vlan()
408 vc4 &= ~VC4_ING_VID_CHECK_MASK; in b53_enable_vlan()
410 vc4 |= VC4_ING_VID_VIO_DROP << VC4_ING_VID_CHECK_S; in b53_enable_vlan()
413 vc4 |= VC4_NO_ING_VID_CHK << VC4_ING_VID_CHECK_S; in b53_enable_vlan()
426 vc4 &= ~VC4_ING_VID_CHECK_MASK; in b53_enable_vlan()
430 vc4 |= VC4_ING_VID_VIO_FWD << VC4_ING_VID_CHECK_S; in b53_enable_vlan()
432 vc4 |= VC4_ING_VID_VIO_TO_IMP << VC4_ING_VID_CHECK_S; in b53_enable_vlan()
[all …]

12