Home
last modified time | relevance | path

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

12345

/kernel/linux/linux-4.19/drivers/gpu/drm/vc4/
Dvc4_bo.c10 * DOC: VC4 GEM BO management support
12 * The VC4 GPU architecture (both scanout and rendering) has direct
43 static void vc4_bo_stats_dump(struct vc4_dev *vc4) in vc4_bo_stats_dump() argument
47 for (i = 0; i < vc4->num_labels; i++) { in vc4_bo_stats_dump()
48 if (!vc4->bo_labels[i].num_allocated) in vc4_bo_stats_dump()
52 vc4->bo_labels[i].name, in vc4_bo_stats_dump()
53 vc4->bo_labels[i].size_allocated / 1024, in vc4_bo_stats_dump()
54 vc4->bo_labels[i].num_allocated); in vc4_bo_stats_dump()
57 mutex_lock(&vc4->purgeable.lock); in vc4_bo_stats_dump()
58 if (vc4->purgeable.num) in vc4_bo_stats_dump()
[all …]
Dvc4_irq.c60 struct vc4_dev *vc4 = in vc4_overflow_mem_work() local
62 struct vc4_bo *bo = vc4->bin_bo; in vc4_overflow_mem_work()
67 bin_bo_slot = vc4_v3d_get_bin_slot(vc4); in vc4_overflow_mem_work()
73 spin_lock_irqsave(&vc4->job_lock, irqflags); in vc4_overflow_mem_work()
75 if (vc4->bin_alloc_overflow) { in vc4_overflow_mem_work()
82 exec = vc4_first_bin_job(vc4); in vc4_overflow_mem_work()
84 exec = vc4_last_render_job(vc4); in vc4_overflow_mem_work()
86 exec->bin_slots |= vc4->bin_alloc_overflow; in vc4_overflow_mem_work()
91 vc4->bin_alloc_used &= ~vc4->bin_alloc_overflow; in vc4_overflow_mem_work()
94 vc4->bin_alloc_overflow = BIT(bin_bo_slot); in vc4_overflow_mem_work()
[all …]
Dvc4_gem.c40 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_queue_hangcheck() local
42 mod_timer(&vc4->hangcheck.timer, in vc4_queue_hangcheck()
72 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_get_hang_state_ioctl() local
77 spin_lock_irqsave(&vc4->job_lock, irqflags); in vc4_get_hang_state_ioctl()
78 kernel_state = vc4->hang_state; in vc4_get_hang_state_ioctl()
80 spin_unlock_irqrestore(&vc4->job_lock, irqflags); in vc4_get_hang_state_ioctl()
90 spin_unlock_irqrestore(&vc4->job_lock, irqflags); in vc4_get_hang_state_ioctl()
94 vc4->hang_state = NULL; in vc4_get_hang_state_ioctl()
95 spin_unlock_irqrestore(&vc4->job_lock, irqflags); in vc4_get_hang_state_ioctl()
144 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_save_hang_state() local
[all …]
Dvc4_v3d.c115 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_v3d_debugfs_regs() local
131 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_v3d_debugfs_ident() local
151 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_v3d_init_hw() local
160 int vc4_v3d_get_bin_slot(struct vc4_dev *vc4) in vc4_v3d_get_bin_slot() argument
162 struct drm_device *dev = vc4->dev; in vc4_v3d_get_bin_slot()
169 spin_lock_irqsave(&vc4->job_lock, irqflags); in vc4_v3d_get_bin_slot()
170 slot = ffs(~vc4->bin_alloc_used); in vc4_v3d_get_bin_slot()
174 vc4->bin_alloc_used |= BIT(slot); in vc4_v3d_get_bin_slot()
175 spin_unlock_irqrestore(&vc4->job_lock, irqflags); in vc4_v3d_get_bin_slot()
182 exec = vc4_last_render_job(vc4); in vc4_v3d_get_bin_slot()
[all …]
Dvc4_drv.c11 * DOC: Broadcom VC4 Graphics Driver
41 #define DRIVER_NAME "vc4"
42 #define DRIVER_DESC "Broadcom VC4 graphics"
67 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_get_param_ioctl() local
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()
[all …]
Dvc4_kms.c10 * DOC: VC4 KMS
43 struct vc4_dev *vc4 = dev->dev_private; in vc4_get_ctm_state() local
47 ret = drm_modeset_lock(&vc4->ctm_state_lock, state->acquire_ctx); in vc4_get_ctm_state()
105 vc4_ctm_commit(struct vc4_dev *vc4, struct drm_atomic_state *state) in vc4_ctm_commit() argument
107 struct vc4_ctm_state *ctm_state = to_vc4_ctm_state(vc4->ctm_manager.state); in vc4_ctm_commit()
142 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_atomic_complete_commit() local
150 vc4_ctm_commit(vc4, state); in vc4_atomic_complete_commit()
168 up(&vc4->async_modeset); in vc4_atomic_complete_commit()
196 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_atomic_commit() local
200 ret = down_interruptible(&vc4->async_modeset); in vc4_atomic_commit()
[all …]
Dvc4_hdmi.c21 * DOC: VC4 Falcon HDMI module
102 #define HDMI_READ(offset) readl(vc4->hdmi->hdmicore_regs + offset)
103 #define HDMI_WRITE(offset, val) writel(val, vc4->hdmi->hdmicore_regs + offset)
104 #define HD_READ(offset) readl(vc4->hdmi->hd_regs + offset)
105 #define HD_WRITE(offset, val) writel(val, vc4->hdmi->hd_regs + offset)
107 /* VC4 HDMI encoder KMS struct */
121 /* VC4 HDMI connector KMS struct */
200 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_hdmi_debugfs_regs() local
221 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_hdmi_dump_regs() local
240 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_hdmi_connector_detect() local
[all …]
Dvc4_hvs.c10 * DOC: VC4 HVS module.
69 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_hvs_dump_state() local
82 readl((u32 __iomem *)vc4->hvs->dlist + i + 0), in vc4_hvs_dump_state()
83 readl((u32 __iomem *)vc4->hvs->dlist + i + 1), in vc4_hvs_dump_state()
84 readl((u32 __iomem *)vc4->hvs->dlist + i + 2), in vc4_hvs_dump_state()
85 readl((u32 __iomem *)vc4->hvs->dlist + i + 3)); in vc4_hvs_dump_state()
94 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_hvs_debugfs_regs() local
173 struct vc4_dev *vc4 = drm->dev_private; in vc4_hvs_bind() local
217 vc4->hvs = hvs; in vc4_hvs_bind()
238 struct vc4_dev *vc4 = drm->dev_private; in vc4_hvs_unbind() local
[all …]
Dvc4_perfmon.c7 * DOC: VC4 V3D performance monitor module
30 void vc4_perfmon_start(struct vc4_dev *vc4, struct vc4_perfmon *perfmon) in vc4_perfmon_start() argument
35 if (WARN_ON_ONCE(!perfmon || vc4->active_perfmon)) in vc4_perfmon_start()
44 vc4->active_perfmon = perfmon; in vc4_perfmon_start()
47 void vc4_perfmon_stop(struct vc4_dev *vc4, struct vc4_perfmon *perfmon, in vc4_perfmon_stop() argument
52 if (WARN_ON_ONCE(!vc4->active_perfmon || in vc4_perfmon_stop()
53 perfmon != vc4->active_perfmon)) in vc4_perfmon_stop()
62 vc4->active_perfmon = NULL; in vc4_perfmon_stop()
DKconfig2 tristate "Broadcom VC4 Graphics"
17 VC4 GPU, such as the Raspberry Pi or other BCM2708/BCM2835.
24 bool "Broadcom VC4 HDMI CEC Support"
28 Choose this option if you have a Broadcom VC4 GPU
Dvc4_drv.h231 /* Time in jiffies when the BO was put in vc4->bo_cache. */
271 /* vc4 seqno for signaled() test */
288 struct vc4_dev *vc4; member
435 #define V3D_READ(offset) readl(vc4->v3d->regs + offset)
436 #define V3D_WRITE(offset, val) writel(val, vc4->v3d->regs + offset)
437 #define HVS_READ(offset) readl(vc4->hvs->regs + offset)
438 #define HVS_WRITE(offset, val) writel(val, vc4->hvs->regs + offset)
470 /* Pointers for our position in vc4->job_list */
564 vc4_first_bin_job(struct vc4_dev *vc4) in vc4_first_bin_job() argument
566 return list_first_entry_or_null(&vc4->bin_job_list, in vc4_first_bin_job()
[all …]
/kernel/linux/linux-5.10/drivers/gpu/drm/vc4/
Dvc4_bo.c7 * DOC: VC4 GEM BO management support
9 * The VC4 GPU architecture (both scanout and rendering) has direct
40 static void vc4_bo_stats_print(struct drm_printer *p, struct vc4_dev *vc4) in vc4_bo_stats_print() argument
44 for (i = 0; i < vc4->num_labels; i++) { in vc4_bo_stats_print()
45 if (!vc4->bo_labels[i].num_allocated) in vc4_bo_stats_print()
49 vc4->bo_labels[i].name, in vc4_bo_stats_print()
50 vc4->bo_labels[i].size_allocated / 1024, in vc4_bo_stats_print()
51 vc4->bo_labels[i].num_allocated); in vc4_bo_stats_print()
54 mutex_lock(&vc4->purgeable.lock); in vc4_bo_stats_print()
55 if (vc4->purgeable.num) in vc4_bo_stats_print()
[all …]
Dvc4_irq.c60 struct vc4_dev *vc4 = in vc4_overflow_mem_work() local
67 mutex_lock(&vc4->bin_bo_lock); in vc4_overflow_mem_work()
69 if (!vc4->bin_bo) in vc4_overflow_mem_work()
72 bo = vc4->bin_bo; in vc4_overflow_mem_work()
74 bin_bo_slot = vc4_v3d_get_bin_slot(vc4); in vc4_overflow_mem_work()
80 spin_lock_irqsave(&vc4->job_lock, irqflags); in vc4_overflow_mem_work()
82 if (vc4->bin_alloc_overflow) { in vc4_overflow_mem_work()
89 exec = vc4_first_bin_job(vc4); in vc4_overflow_mem_work()
91 exec = vc4_last_render_job(vc4); in vc4_overflow_mem_work()
93 exec->bin_slots |= vc4->bin_alloc_overflow; in vc4_overflow_mem_work()
[all …]
Dvc4_v3d.c103 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_v3d_debugfs_ident() local
104 int ret = vc4_v3d_pm_get(vc4); in vc4_v3d_debugfs_ident()
119 vc4_v3d_pm_put(vc4); in vc4_v3d_debugfs_ident()
130 vc4_v3d_pm_get(struct vc4_dev *vc4) in vc4_v3d_pm_get() argument
132 mutex_lock(&vc4->power_lock); in vc4_v3d_pm_get()
133 if (vc4->power_refcount++ == 0) { in vc4_v3d_pm_get()
134 int ret = pm_runtime_get_sync(&vc4->v3d->pdev->dev); in vc4_v3d_pm_get()
137 vc4->power_refcount--; in vc4_v3d_pm_get()
138 mutex_unlock(&vc4->power_lock); in vc4_v3d_pm_get()
142 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 (!vc4->v3d) { in vc4_get_hang_state_ioctl()
80 DRM_DEBUG("VC4_GET_HANG_STATE with no VC4 V3D probed\n"); in vc4_get_hang_state_ioctl()
84 spin_lock_irqsave(&vc4->job_lock, irqflags); in vc4_get_hang_state_ioctl()
85 kernel_state = vc4->hang_state; in vc4_get_hang_state_ioctl()
87 spin_unlock_irqrestore(&vc4->job_lock, irqflags); in vc4_get_hang_state_ioctl()
97 spin_unlock_irqrestore(&vc4->job_lock, irqflags); in vc4_get_hang_state_ioctl()
101 vc4->hang_state = NULL; in vc4_get_hang_state_ioctl()
[all …]
Dvc4_kms.c7 * DOC: VC4 KMS
67 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_get_ctm_state() local
71 ret = drm_modeset_lock(&vc4->ctm_state_lock, state->acquire_ctx); in vc4_get_ctm_state()
111 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_ctm_obj_fini() local
113 drm_atomic_private_obj_fini(&vc4->ctm_manager); in vc4_ctm_obj_fini()
116 static int vc4_ctm_obj_init(struct vc4_dev *vc4) in vc4_ctm_obj_init() argument
120 drm_modeset_lock_init(&vc4->ctm_state_lock); in vc4_ctm_obj_init()
126 drm_atomic_private_obj_init(&vc4->base, &vc4->ctm_manager, &ctm_state->base, in vc4_ctm_obj_init()
129 return drmm_add_action_or_reset(&vc4->base, vc4_ctm_obj_fini, NULL); in vc4_ctm_obj_init()
152 vc4_ctm_commit(struct vc4_dev *vc4, struct drm_atomic_state *state) in vc4_ctm_commit() argument
[all …]
Dvc4_drv.c8 * DOC: Broadcom VC4 Graphics Driver
44 #define DRIVER_NAME "vc4"
45 #define DRIVER_DESC "Broadcom VC4 graphics"
70 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_get_param_ioctl() local
77 if (!vc4->v3d) in vc4_get_param_ioctl()
82 ret = vc4_v3d_pm_get(vc4); in vc4_get_param_ioctl()
86 vc4_v3d_pm_put(vc4); in vc4_get_param_ioctl()
89 ret = vc4_v3d_pm_get(vc4); in vc4_get_param_ioctl()
93 vc4_v3d_pm_put(vc4); in vc4_get_param_ioctl()
96 ret = vc4_v3d_pm_get(vc4); in vc4_get_param_ioctl()
[all …]
Dvc4_perfmon.c7 * DOC: VC4 V3D performance monitor module
30 void vc4_perfmon_start(struct vc4_dev *vc4, struct vc4_perfmon *perfmon) in vc4_perfmon_start() argument
35 if (WARN_ON_ONCE(!perfmon || vc4->active_perfmon)) in vc4_perfmon_start()
44 vc4->active_perfmon = perfmon; in vc4_perfmon_start()
47 void vc4_perfmon_stop(struct vc4_dev *vc4, struct vc4_perfmon *perfmon, in vc4_perfmon_stop() argument
52 if (WARN_ON_ONCE(!vc4->active_perfmon || in vc4_perfmon_stop()
53 perfmon != vc4->active_perfmon)) in vc4_perfmon_stop()
62 vc4->active_perfmon = NULL; in vc4_perfmon_stop()
103 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_perfmon_create_ioctl() local
110 if (!vc4->v3d) { in vc4_perfmon_create_ioctl()
[all …]
Dvc4_hvs.c7 * DOC: VC4 HVS module.
69 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_hvs_dump_state() local
70 struct drm_printer p = drm_info_printer(&vc4->hvs->pdev->dev); in vc4_hvs_dump_state()
73 drm_print_regset32(&p, &vc4->hvs->regset); in vc4_hvs_dump_state()
79 readl((u32 __iomem *)vc4->hvs->dlist + i + 0), in vc4_hvs_dump_state()
80 readl((u32 __iomem *)vc4->hvs->dlist + i + 1), in vc4_hvs_dump_state()
81 readl((u32 __iomem *)vc4->hvs->dlist + i + 2), in vc4_hvs_dump_state()
82 readl((u32 __iomem *)vc4->hvs->dlist + i + 3)); in vc4_hvs_dump_state()
90 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_hvs_debugfs_underrun() local
93 drm_printf(&p, "%d\n", atomic_read(&vc4->underrun)); in vc4_hvs_debugfs_underrun()
[all …]
Dvc4_debugfs.c26 struct vc4_dev *vc4 = to_vc4_dev(minor->dev); in vc4_debugfs_init() local
30 minor->debugfs_root, &vc4->load_tracker_enabled); in vc4_debugfs_init()
32 list_for_each_entry(entry, &vc4->debugfs_list, link) { in vc4_debugfs_init()
50 * Registers a debugfs file with a callback function for a vc4 component.
53 * called a given DRM minor, while the various VC4 components want to
63 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_debugfs_add_file() local
75 list_add(&entry->link, &vc4->debugfs_list); in vc4_debugfs_add_file()
DKconfig3 tristate "Broadcom VC4 Graphics"
18 VC4 GPU, such as the Raspberry Pi or other BCM2708/BCM2835.
25 bool "Broadcom VC4 HDMI CEC Support"
29 Choose this option if you have a Broadcom VC4 GPU
Dvc4_drv.h262 /* Time in jiffies when the BO was put in vc4->bo_cache. */
298 /* vc4 seqno for signaled() test */
315 struct vc4_dev *vc4; member
548 #define V3D_READ(offset) readl(vc4->v3d->regs + offset)
549 #define V3D_WRITE(offset, val) writel(val, vc4->v3d->regs + offset)
550 #define HVS_READ(offset) readl(vc4->hvs->regs + offset)
551 #define HVS_WRITE(offset, val) writel(val, vc4->hvs->regs + offset)
585 /* Pointers for our position in vc4->job_list */
686 vc4_first_bin_job(struct vc4_dev *vc4) in vc4_first_bin_job() argument
688 return list_first_entry_or_null(&vc4->bin_job_list, in vc4_first_bin_job()
[all …]
/kernel/linux/linux-5.10/Documentation/gpu/
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 …]
/kernel/linux/linux-4.19/Documentation/gpu/
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 …]
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/display/
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
21 - brcm,bcm2835-vc4
22 - brcm,cygnus-vc4
31 vc4: gpu {
32 compatible = "brcm,bcm2835-vc4";

12345