/Linux-v6.1/drivers/gpu/drm/vc4/ |
D | vc4_bo.c | 7 * 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 …]
|
D | vc4_irq.c | 65 struct vc4_dev *vc4 = in vc4_overflow_mem_work() local 72 mutex_lock(&vc4->bin_bo_lock); in vc4_overflow_mem_work() 74 if (!vc4->bin_bo) in vc4_overflow_mem_work() 77 bo = vc4->bin_bo; in vc4_overflow_mem_work() 79 bin_bo_slot = vc4_v3d_get_bin_slot(vc4); in vc4_overflow_mem_work() 85 spin_lock_irqsave(&vc4->job_lock, irqflags); in vc4_overflow_mem_work() 87 if (vc4->bin_alloc_overflow) { in vc4_overflow_mem_work() 94 exec = vc4_first_bin_job(vc4); in vc4_overflow_mem_work() 96 exec = vc4_last_render_job(vc4); in vc4_overflow_mem_work() 98 exec->bin_slots |= vc4->bin_alloc_overflow; in vc4_overflow_mem_work() [all …]
|
D | vc4_v3d.c | 101 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 …]
|
D | vc4_perfmon.c | 7 * 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->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() [all …]
|
D | vc4_gem.c | 42 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() 83 DRM_DEBUG("VC4_GET_HANG_STATE with no VC4 V3D probed\n"); 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() [all …]
|
D | vc4_drv.c | 8 * DOC: Broadcom VC4 Graphics Driver 46 #define DRIVER_NAME "vc4" 47 #define DRIVER_DESC "Broadcom VC4 graphics" 94 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() [all …]
|
D | vc4_kms.c | 7 * DOC: VC4 KMS 74 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_get_ctm_state() local 78 ret = drm_modeset_lock(&vc4->ctm_state_lock, state->acquire_ctx); in vc4_get_ctm_state() 118 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_ctm_obj_fini() local 120 drm_atomic_private_obj_fini(&vc4->ctm_manager); in vc4_ctm_obj_fini() 123 static int vc4_ctm_obj_init(struct vc4_dev *vc4) in vc4_ctm_obj_init() argument 127 drm_modeset_lock_init(&vc4->ctm_state_lock); in vc4_ctm_obj_init() 133 drm_atomic_private_obj_init(&vc4->base, &vc4->ctm_manager, &ctm_state->base, in vc4_ctm_obj_init() 136 return drmm_add_action_or_reset(&vc4->base, vc4_ctm_obj_fini, NULL); in vc4_ctm_obj_init() 159 vc4_ctm_commit(struct vc4_dev *vc4, struct drm_atomic_state *state) in vc4_ctm_commit() argument [all …]
|
D | vc4_hvs.c | 7 * DOC: VC4 HVS module. 70 struct drm_device *drm = &hvs->vc4->base; in vc4_hvs_dump_state() 96 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_hvs_debugfs_underrun() local 99 drm_printf(&p, "%d\n", atomic_read(&vc4->underrun)); in vc4_hvs_debugfs_underrun() 108 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_hvs_debugfs_dlist() local 109 struct vc4_hvs *hvs = vc4->hvs; in vc4_hvs_debugfs_dlist() 127 dlist_word = readl((u32 __iomem *)vc4->hvs->dlist + j); in vc4_hvs_debugfs_dlist() 214 struct drm_device *drm = &hvs->vc4->base; in vc4_hvs_lut_load() 260 struct drm_device *drm = &hvs->vc4->base; in vc4_hvs_get_fifo_frame_count() 288 struct vc4_dev *vc4 = hvs->vc4; in vc4_hvs_get_fifo_from_output() local [all …]
|
D | Kconfig | 3 tristate "Broadcom VC4 Graphics" 24 VC4 GPU, such as the Raspberry Pi or other BCM2708/BCM2835. 31 bool "Broadcom VC4 HDMI CEC Support" 35 Choose this option if you have a Broadcom VC4 GPU
|
D | vc4_crtc.c | 7 * DOC: VC4 CRTC module 9 * In VC4, the Pixel Valve is what most closely corresponds to the 73 vc4_crtc_get_cob_allocation(struct vc4_dev *vc4, unsigned int channel) in vc4_crtc_get_cob_allocation() argument 75 struct vc4_hvs *hvs = vc4->hvs; in vc4_crtc_get_cob_allocation() 94 struct vc4_dev *vc4 = to_vc4_dev(dev); in vc4_crtc_get_scanout_position() local 95 struct vc4_hvs *hvs = vc4->hvs; in vc4_crtc_get_scanout_position() 134 cob_size = vc4_crtc_get_cob_allocation(vc4, vc4_crtc_state->assigned_channel); in vc4_crtc_get_scanout_position() 214 struct vc4_dev *vc4 = to_vc4_dev(vc4_crtc->base.dev); in vc4_get_fifo_full_level() local 256 if (!vc4->is_vc5) in vc4_get_fifo_full_level() 279 * VC4 can only scan out to one encoder at a time, while the DRM core [all …]
|
D | vc4_drv.h | 261 /* Time in jiffies when the BO was put in vc4->bo_cache. */ 297 /* vc4 seqno for signaled() test */ 314 struct vc4_dev *vc4; member 322 struct vc4_dev *vc4; member 576 #define V3D_READ(offset) readl(vc4->v3d->regs + offset) 577 #define V3D_WRITE(offset, val) writel(val, vc4->v3d->regs + offset) 615 /* Pointers for our position in vc4->job_list */ 718 vc4_first_bin_job(struct vc4_dev *vc4) in vc4_first_bin_job() argument 720 return list_first_entry_or_null(&vc4->bin_job_list, in vc4_first_bin_job() 725 vc4_first_render_job(struct vc4_dev *vc4) in vc4_first_render_job() argument [all …]
|
D | vc4_fence.c | 28 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()
|
D | Makefile | 5 vc4-y := \ 28 vc4-$(CONFIG_DEBUG_FS) += vc4_debugfs.o 30 obj-$(CONFIG_DRM_VC4) += vc4.o
|
D | vc4_validate.c | 25 * DOC: Command list validator for VC4. 27 * Since the VC4 has no IOMMU between it and system memory, a user 108 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() [all …]
|
D | vc4_debugfs.c | 24 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()
|
D | vc4_plane.c | 7 * DOC: VC4 plane module 202 struct vc4_dev *vc4 = to_vc4_dev(plane->dev); in vc4_plane_destroy_state() local 208 spin_lock_irqsave(&vc4->hvs->mm_lock, irqflags); in vc4_plane_destroy_state() 210 spin_unlock_irqrestore(&vc4->hvs->mm_lock, irqflags); in vc4_plane_destroy_state() 453 struct vc4_dev *vc4 = to_vc4_dev(state->plane->dev); in vc4_lbm_size() local 490 lbm = roundup(lbm, vc4->is_vc5 ? 128 : 64); in vc4_lbm_size() 493 lbm /= vc4->is_vc5 ? 4 : 2; in vc4_lbm_size() 587 struct vc4_dev *vc4 = to_vc4_dev(state->plane->dev); in vc4_plane_allocate_lbm() local 605 spin_lock_irqsave(&vc4->hvs->mm_lock, irqflags); in vc4_plane_allocate_lbm() 606 ret = drm_mm_insert_node_generic(&vc4->hvs->lbm_mm, in vc4_plane_allocate_lbm() [all …]
|
D | vc4_trace.h | 14 #define TRACE_SYSTEM vc4 154 #define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/vc4
|
D | vc4_hdmi.c | 10 * DOC: VC4 Falcon HDMI module 1459 * As stated in RPi's vc4 firmware "HDMI state machine (HSM) clock must in vc4_hdmi_encoder_pre_crtc_configure() 1462 * operation." This conflicts with bcm2835's vc4 documentation, which in vc4_hdmi_encoder_pre_crtc_configure() 1465 * Real life tests reveal that vc4's firmware statement holds up, and in vc4_hdmi_encoder_pre_crtc_configure() 2359 .name = "vc4-hdmi-cpu-dai-component", 2373 .name = "vc4-hdmi-cpu-dai", 2556 card->driver_name = "vc4-hdmi"; in vc4_hdmi_audio_init() 2601 "vc4 hdmi hpd connected", vc4_hdmi); in vc4_hdmi_hotplug_init() 2608 "vc4 hdmi hpd disconnected", vc4_hdmi); in vc4_hdmi_hotplug_init() 3012 vc4_hdmi, "vc4", in vc4_hdmi_cec_init() [all …]
|
/Linux-v6.1/Documentation/gpu/ |
D | vc4.rst | 2 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 …]
|
D | drivers.rst | 15 vc4
|
/Linux-v6.1/Documentation/devicetree/bindings/display/ |
D | brcm,bcm2835-vc4.yaml | 4 $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";
|
D | brcm,bcm2835-txp.yaml | 7 title: Broadcom VC4 (VideoCore4) TXP (writeback) Controller
|
/Linux-v6.1/include/uapi/drm/ |
D | vc4_drm.h | 83 * 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-v6.1/arch/arm/boot/dts/ |
D | bcm2835-common.dtsi | 144 vc4: gpu { label 145 compatible = "brcm,bcm2835-vc4";
|
/Linux-v6.1/drivers/net/dsa/b53/ |
D | b53_common.c | 355 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 …]
|