2017-02-27 20:11:42 +00:00
|
|
|
=====================================
|
|
|
|
drm/vc4 Broadcom VC4 Graphics Driver
|
|
|
|
=====================================
|
|
|
|
|
2017-02-27 20:11:44 +00:00
|
|
|
.. kernel-doc:: drivers/gpu/drm/vc4/vc4_drv.c
|
|
|
|
:doc: Broadcom VC4 Graphics Driver
|
|
|
|
|
2017-02-27 20:11:42 +00:00
|
|
|
Display Hardware Handling
|
|
|
|
=========================
|
|
|
|
|
|
|
|
This section covers everything related to the display hardware including
|
|
|
|
the mode setting infrastructure, plane, sprite and cursor handling and
|
|
|
|
display, output probing and related topics.
|
|
|
|
|
|
|
|
Pixel Valve (DRM CRTC)
|
|
|
|
----------------------
|
|
|
|
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/vc4/vc4_crtc.c
|
|
|
|
:doc: VC4 CRTC module
|
|
|
|
|
|
|
|
HVS
|
|
|
|
---
|
|
|
|
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/vc4/vc4_hvs.c
|
|
|
|
:doc: VC4 HVS module.
|
|
|
|
|
|
|
|
HVS planes
|
|
|
|
----------
|
|
|
|
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/vc4/vc4_plane.c
|
|
|
|
:doc: VC4 plane module
|
|
|
|
|
|
|
|
HDMI encoder
|
|
|
|
------------
|
|
|
|
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/vc4/vc4_hdmi.c
|
|
|
|
:doc: VC4 Falcon HDMI module
|
|
|
|
|
|
|
|
DSI encoder
|
|
|
|
-----------
|
|
|
|
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/vc4/vc4_dsi.c
|
|
|
|
:doc: VC4 DSI0/DSI1 module
|
|
|
|
|
|
|
|
DPI encoder
|
|
|
|
-----------
|
|
|
|
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/vc4/vc4_dpi.c
|
|
|
|
:doc: VC4 DPI module
|
|
|
|
|
|
|
|
VEC (Composite TV out) encoder
|
|
|
|
------------------------------
|
|
|
|
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/vc4/vc4_vec.c
|
|
|
|
:doc: VC4 SDTV module
|
|
|
|
|
2022-12-01 15:11:51 +00:00
|
|
|
KUnit Tests
|
|
|
|
===========
|
|
|
|
|
|
|
|
The VC4 Driver uses KUnit to perform driver-specific unit and
|
|
|
|
integration tests.
|
|
|
|
|
|
|
|
These tests are using a mock driver and can be ran using the
|
2022-12-08 09:47:27 +00:00
|
|
|
command below, on either arm or arm64 architectures,
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
$ ./tools/testing/kunit/kunit.py run \
|
2022-12-01 15:11:51 +00:00
|
|
|
--kunitconfig=drivers/gpu/drm/vc4/tests/.kunitconfig \
|
|
|
|
--cross_compile aarch64-linux-gnu- --arch arm64
|
|
|
|
|
|
|
|
Parts of the driver that are currently covered by tests are:
|
|
|
|
* The HVS to PixelValve dynamic FIFO assignment, for the BCM2835-7
|
|
|
|
and BCM2711.
|
|
|
|
|
2017-02-27 20:11:42 +00:00
|
|
|
Memory Management and 3D Command Submission
|
|
|
|
===========================================
|
|
|
|
|
|
|
|
This section covers the GEM implementation in the vc4 driver.
|
|
|
|
|
|
|
|
GPU buffer object (BO) management
|
|
|
|
---------------------------------
|
|
|
|
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/vc4/vc4_bo.c
|
|
|
|
:doc: VC4 GEM BO management support
|
|
|
|
|
|
|
|
V3D binner command list (BCL) validation
|
|
|
|
----------------------------------------
|
|
|
|
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/vc4/vc4_validate.c
|
|
|
|
:doc: Command list validator for VC4.
|
|
|
|
|
|
|
|
V3D render command list (RCL) generation
|
|
|
|
----------------------------------------
|
|
|
|
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/vc4/vc4_render_cl.c
|
|
|
|
:doc: Render command list generation
|
|
|
|
|
|
|
|
Shader validator for VC4
|
|
|
|
---------------------------
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/vc4/vc4_validate_shaders.c
|
|
|
|
:doc: Shader validator for VC4.
|
|
|
|
|
|
|
|
V3D Interrupts
|
|
|
|
--------------
|
|
|
|
|
|
|
|
.. kernel-doc:: drivers/gpu/drm/vc4/vc4_irq.c
|
|
|
|
:doc: Interrupt management for the V3D engine
|