xref: /openbmc/linux/Documentation/gpu/vc4.rst (revision ecefa105)
1=====================================
2 drm/vc4 Broadcom VC4 Graphics Driver
3=====================================
4
5.. kernel-doc:: drivers/gpu/drm/vc4/vc4_drv.c
6   :doc: Broadcom VC4 Graphics Driver
7
8Display Hardware Handling
9=========================
10
11This section covers everything related to the display hardware including
12the mode setting infrastructure, plane, sprite and cursor handling and
13display, output probing and related topics.
14
15Pixel Valve (DRM CRTC)
16----------------------
17
18.. kernel-doc:: drivers/gpu/drm/vc4/vc4_crtc.c
19   :doc: VC4 CRTC module
20
21HVS
22---
23
24.. kernel-doc:: drivers/gpu/drm/vc4/vc4_hvs.c
25   :doc: VC4 HVS module.
26
27HVS planes
28----------
29
30.. kernel-doc:: drivers/gpu/drm/vc4/vc4_plane.c
31   :doc: VC4 plane module
32
33HDMI encoder
34------------
35
36.. kernel-doc:: drivers/gpu/drm/vc4/vc4_hdmi.c
37   :doc: VC4 Falcon HDMI module
38
39DSI encoder
40-----------
41
42.. kernel-doc:: drivers/gpu/drm/vc4/vc4_dsi.c
43   :doc: VC4 DSI0/DSI1 module
44
45DPI encoder
46-----------
47
48.. kernel-doc:: drivers/gpu/drm/vc4/vc4_dpi.c
49   :doc: VC4 DPI module
50
51VEC (Composite TV out) encoder
52------------------------------
53
54.. kernel-doc:: drivers/gpu/drm/vc4/vc4_vec.c
55   :doc: VC4 SDTV module
56
57KUnit Tests
58===========
59
60The VC4 Driver uses KUnit to perform driver-specific unit and
61integration tests.
62
63These tests are using a mock driver and can be ran using the
64command below, on either arm or arm64 architectures,
65
66.. code-block:: bash
67
68	$ ./tools/testing/kunit/kunit.py run \
69		--kunitconfig=drivers/gpu/drm/vc4/tests/.kunitconfig \
70		--cross_compile aarch64-linux-gnu- --arch arm64
71
72Parts of the driver that are currently covered by tests are:
73 * The HVS to PixelValve dynamic FIFO assignment, for the BCM2835-7
74   and BCM2711.
75
76Memory Management and 3D Command Submission
77===========================================
78
79This section covers the GEM implementation in the vc4 driver.
80
81GPU buffer object (BO) management
82---------------------------------
83
84.. kernel-doc:: drivers/gpu/drm/vc4/vc4_bo.c
85   :doc: VC4 GEM BO management support
86
87V3D binner command list (BCL) validation
88----------------------------------------
89
90.. kernel-doc:: drivers/gpu/drm/vc4/vc4_validate.c
91   :doc: Command list validator for VC4.
92
93V3D render command list (RCL) generation
94----------------------------------------
95
96.. kernel-doc:: drivers/gpu/drm/vc4/vc4_render_cl.c
97   :doc: Render command list generation
98
99Shader validator for VC4
100---------------------------
101.. kernel-doc:: drivers/gpu/drm/vc4/vc4_validate_shaders.c
102   :doc: Shader validator for VC4.
103
104V3D Interrupts
105--------------
106
107.. kernel-doc:: drivers/gpu/drm/vc4/vc4_irq.c
108   :doc: Interrupt management for the V3D engine
109