| 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 |
|
| 8 | Display Hardware Handling
|
| 9 | =========================
|
| 10 |
|
| 11 | This section covers everything related to the display hardware including
|
| 12 | the mode setting infrastructure, plane, sprite and cursor handling and
|
| 13 | display, output probing and related topics.
|
| 14 |
|
| 15 | Pixel Valve (DRM CRTC)
|
| 16 | ----------------------
|
| 17 |
|
| 18 | .. kernel-doc:: drivers/gpu/drm/vc4/vc4_crtc.c
|
| 19 | :doc: VC4 CRTC module
|
| 20 |
|
| 21 | HVS
|
| 22 | ---
|
| 23 |
|
| 24 | .. kernel-doc:: drivers/gpu/drm/vc4/vc4_hvs.c
|
| 25 | :doc: VC4 HVS module.
|
| 26 |
|
| 27 | HVS planes
|
| 28 | ----------
|
| 29 |
|
| 30 | .. kernel-doc:: drivers/gpu/drm/vc4/vc4_plane.c
|
| 31 | :doc: VC4 plane module
|
| 32 |
|
| 33 | HDMI encoder
|
| 34 | ------------
|
| 35 |
|
| 36 | .. kernel-doc:: drivers/gpu/drm/vc4/vc4_hdmi.c
|
| 37 | :doc: VC4 Falcon HDMI module
|
| 38 |
|
| 39 | DSI encoder
|
| 40 | -----------
|
| 41 |
|
| 42 | .. kernel-doc:: drivers/gpu/drm/vc4/vc4_dsi.c
|
| 43 | :doc: VC4 DSI0/DSI1 module
|
| 44 |
|
| 45 | DPI encoder
|
| 46 | -----------
|
| 47 |
|
| 48 | .. kernel-doc:: drivers/gpu/drm/vc4/vc4_dpi.c
|
| 49 | :doc: VC4 DPI module
|
| 50 |
|
| 51 | VEC (Composite TV out) encoder
|
| 52 | ------------------------------
|
| 53 |
|
| 54 | .. kernel-doc:: drivers/gpu/drm/vc4/vc4_vec.c
|
| 55 | :doc: VC4 SDTV module
|
| 56 |
|
| 57 | KUnit Tests
|
| 58 | ===========
|
| 59 |
|
| 60 | The VC4 Driver uses KUnit to perform driver-specific unit and
|
| 61 | integration tests.
|
| 62 |
|
| 63 | These tests are using a mock driver and can be ran using the
|
| 64 | command 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 |
|
| 72 | Parts 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 |
|
| 76 | Memory Management and 3D Command Submission
|
| 77 | ===========================================
|
| 78 |
|
| 79 | This section covers the GEM implementation in the vc4 driver.
|
| 80 |
|
| 81 | GPU buffer object (BO) management
|
| 82 | ---------------------------------
|
| 83 |
|
| 84 | .. kernel-doc:: drivers/gpu/drm/vc4/vc4_bo.c
|
| 85 | :doc: VC4 GEM BO management support
|
| 86 |
|
| 87 | V3D 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 |
|
| 93 | V3D 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 |
|
| 99 | Shader validator for VC4
|
| 100 | ---------------------------
|
| 101 | .. kernel-doc:: drivers/gpu/drm/vc4/vc4_validate_shaders.c
|
| 102 | :doc: Shader validator for VC4.
|
| 103 |
|
| 104 | V3D Interrupts
|
| 105 | --------------
|
| 106 |
|
| 107 | .. kernel-doc:: drivers/gpu/drm/vc4/vc4_irq.c
|
| 108 | :doc: Interrupt management for the V3D engine
|