xref: /openbmc/linux/Documentation/gpu/vc4.rst (revision 76f34f13)
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
575304c8e6SMaxime RipardKUnit Tests
585304c8e6SMaxime Ripard===========
595304c8e6SMaxime Ripard
605304c8e6SMaxime RipardThe VC4 Driver uses KUnit to perform driver-specific unit and
615304c8e6SMaxime Ripardintegration tests.
625304c8e6SMaxime Ripard
635304c8e6SMaxime RipardThese tests are using a mock driver and can be ran using the
64*76f34f13SMaxime Ripardcommand below, on either arm or arm64 architectures,
65*76f34f13SMaxime Ripard
66*76f34f13SMaxime Ripard.. code-block:: bash
67*76f34f13SMaxime Ripard
68*76f34f13SMaxime Ripard	$ ./tools/testing/kunit/kunit.py run \
695304c8e6SMaxime Ripard		--kunitconfig=drivers/gpu/drm/vc4/tests/.kunitconfig \
705304c8e6SMaxime Ripard		--cross_compile aarch64-linux-gnu- --arch arm64
715304c8e6SMaxime Ripard
725304c8e6SMaxime RipardParts of the driver that are currently covered by tests are:
735304c8e6SMaxime Ripard * The HVS to PixelValve dynamic FIFO assignment, for the BCM2835-7
745304c8e6SMaxime Ripard   and BCM2711.
755304c8e6SMaxime Ripard
7660c5d3b7SEric AnholtMemory Management and 3D Command Submission
7760c5d3b7SEric Anholt===========================================
7860c5d3b7SEric Anholt
7960c5d3b7SEric AnholtThis section covers the GEM implementation in the vc4 driver.
8060c5d3b7SEric Anholt
8160c5d3b7SEric AnholtGPU buffer object (BO) management
8260c5d3b7SEric Anholt---------------------------------
8360c5d3b7SEric Anholt
8460c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_bo.c
8560c5d3b7SEric Anholt   :doc: VC4 GEM BO management support
8660c5d3b7SEric Anholt
8760c5d3b7SEric AnholtV3D binner command list (BCL) validation
8860c5d3b7SEric Anholt----------------------------------------
8960c5d3b7SEric Anholt
9060c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_validate.c
9160c5d3b7SEric Anholt   :doc: Command list validator for VC4.
9260c5d3b7SEric Anholt
9360c5d3b7SEric AnholtV3D render command list (RCL) generation
9460c5d3b7SEric Anholt----------------------------------------
9560c5d3b7SEric Anholt
9660c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_render_cl.c
9760c5d3b7SEric Anholt   :doc: Render command list generation
9860c5d3b7SEric Anholt
9960c5d3b7SEric AnholtShader validator for VC4
10060c5d3b7SEric Anholt---------------------------
10160c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_validate_shaders.c
10260c5d3b7SEric Anholt   :doc: Shader validator for VC4.
10360c5d3b7SEric Anholt
10460c5d3b7SEric AnholtV3D Interrupts
10560c5d3b7SEric Anholt--------------
10660c5d3b7SEric Anholt
10760c5d3b7SEric Anholt.. kernel-doc:: drivers/gpu/drm/vc4/vc4_irq.c
10860c5d3b7SEric Anholt   :doc: Interrupt management for the V3D engine
109