xref: /openbmc/linux/Documentation/gpu/vc4.rst (revision 5304c8e6)
160c5d3b7SEric Anholt=====================================
260c5d3b7SEric Anholt drm/vc4 Broadcom VC4 Graphics Driver
360c5d3b7SEric Anholt=====================================
460c5d3b7SEric Anholt
5b787963aSEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_drv.c
6b787963aSEric Anholt   :doc: Broadcom VC4 Graphics Driver
7b787963aSEric Anholt
860c5d3b7SEric AnholtDisplay Hardware Handling
960c5d3b7SEric Anholt=========================
1060c5d3b7SEric Anholt
1160c5d3b7SEric AnholtThis section covers everything related to the display hardware including
1260c5d3b7SEric Anholtthe mode setting infrastructure, plane, sprite and cursor handling and
1360c5d3b7SEric Anholtdisplay, output probing and related topics.
1460c5d3b7SEric Anholt
1560c5d3b7SEric AnholtPixel Valve (DRM CRTC)
1660c5d3b7SEric Anholt----------------------
1760c5d3b7SEric Anholt
1860c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_crtc.c
1960c5d3b7SEric Anholt   :doc: VC4 CRTC module
2060c5d3b7SEric Anholt
2160c5d3b7SEric AnholtHVS
2260c5d3b7SEric Anholt---
2360c5d3b7SEric Anholt
2460c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_hvs.c
2560c5d3b7SEric Anholt   :doc: VC4 HVS module.
2660c5d3b7SEric Anholt
2760c5d3b7SEric AnholtHVS planes
2860c5d3b7SEric Anholt----------
2960c5d3b7SEric Anholt
3060c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_plane.c
3160c5d3b7SEric Anholt   :doc: VC4 plane module
3260c5d3b7SEric Anholt
3360c5d3b7SEric AnholtHDMI encoder
3460c5d3b7SEric Anholt------------
3560c5d3b7SEric Anholt
3660c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_hdmi.c
3760c5d3b7SEric Anholt   :doc: VC4 Falcon HDMI module
3860c5d3b7SEric Anholt
3960c5d3b7SEric AnholtDSI encoder
4060c5d3b7SEric Anholt-----------
4160c5d3b7SEric Anholt
4260c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_dsi.c
4360c5d3b7SEric Anholt   :doc: VC4 DSI0/DSI1 module
4460c5d3b7SEric Anholt
4560c5d3b7SEric AnholtDPI encoder
4660c5d3b7SEric Anholt-----------
4760c5d3b7SEric Anholt
4860c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_dpi.c
4960c5d3b7SEric Anholt   :doc: VC4 DPI module
5060c5d3b7SEric Anholt
5160c5d3b7SEric AnholtVEC (Composite TV out) encoder
5260c5d3b7SEric Anholt------------------------------
5360c5d3b7SEric Anholt
5460c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_vec.c
5560c5d3b7SEric Anholt   :doc: VC4 SDTV module
5660c5d3b7SEric Anholt
57*5304c8e6SMaxime RipardKUnit Tests
58*5304c8e6SMaxime Ripard===========
59*5304c8e6SMaxime Ripard
60*5304c8e6SMaxime RipardThe VC4 Driver uses KUnit to perform driver-specific unit and
61*5304c8e6SMaxime Ripardintegration tests.
62*5304c8e6SMaxime Ripard
63*5304c8e6SMaxime RipardThese tests are using a mock driver and can be ran using the
64*5304c8e6SMaxime Ripardcommand::
65*5304c8e6SMaxime Ripard	./tools/testing/kunit/kunit.py run \
66*5304c8e6SMaxime Ripard		--kunitconfig=drivers/gpu/drm/vc4/tests/.kunitconfig \
67*5304c8e6SMaxime Ripard		--cross_compile aarch64-linux-gnu- --arch arm64
68*5304c8e6SMaxime Ripard
69*5304c8e6SMaxime RipardParts of the driver that are currently covered by tests are:
70*5304c8e6SMaxime Ripard * The HVS to PixelValve dynamic FIFO assignment, for the BCM2835-7
71*5304c8e6SMaxime Ripard   and BCM2711.
72*5304c8e6SMaxime Ripard
7360c5d3b7SEric AnholtMemory Management and 3D Command Submission
7460c5d3b7SEric Anholt===========================================
7560c5d3b7SEric Anholt
7660c5d3b7SEric AnholtThis section covers the GEM implementation in the vc4 driver.
7760c5d3b7SEric Anholt
7860c5d3b7SEric AnholtGPU buffer object (BO) management
7960c5d3b7SEric Anholt---------------------------------
8060c5d3b7SEric Anholt
8160c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_bo.c
8260c5d3b7SEric Anholt   :doc: VC4 GEM BO management support
8360c5d3b7SEric Anholt
8460c5d3b7SEric AnholtV3D binner command list (BCL) validation
8560c5d3b7SEric Anholt----------------------------------------
8660c5d3b7SEric Anholt
8760c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_validate.c
8860c5d3b7SEric Anholt   :doc: Command list validator for VC4.
8960c5d3b7SEric Anholt
9060c5d3b7SEric AnholtV3D render command list (RCL) generation
9160c5d3b7SEric Anholt----------------------------------------
9260c5d3b7SEric Anholt
9360c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_render_cl.c
9460c5d3b7SEric Anholt   :doc: Render command list generation
9560c5d3b7SEric Anholt
9660c5d3b7SEric AnholtShader validator for VC4
9760c5d3b7SEric Anholt---------------------------
9860c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_validate_shaders.c
9960c5d3b7SEric Anholt   :doc: Shader validator for VC4.
10060c5d3b7SEric Anholt
10160c5d3b7SEric AnholtV3D Interrupts
10260c5d3b7SEric Anholt--------------
10360c5d3b7SEric Anholt
10460c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_irq.c
10560c5d3b7SEric Anholt   :doc: Interrupt management for the V3D engine
106