1 .. SPDX-License-Identifier: GPL-2.0+
3 ===============================================
4 Xilinx ZynqMP Ultrascale+ DisplayPort Subsystem
5 ===============================================
7 This subsystem handles DisplayPort video and audio output on the ZynqMP. It
8 supports in-memory framebuffers with the DisplayPort DMA controller
9 (xilinx-dpdma), as well as "live" video and audio from the programmable logic
10 (PL). This subsystem can perform several transformations, including color space
11 conversion, alpha blending, and audio mixing, although not all features are
17 To support debugging and compliance testing, several test modes can be enabled
18 though debugfs. The following files in /sys/kernel/debug/dri/X/DP-1/test/
19 control the DisplayPort test modes:
22 Writing a 1 to this file will activate test mode, and writing a 0 will
23 deactivate test mode. Writing a 1 or 0 when the test mode is already
24 active/inactive will re-activate/re-deactivate test mode. When test
25 mode is inactive, changes made to other files will have no (immediate)
26 effect, although the settings will be saved for when test mode is
27 activated. When test mode is active, changes made to other files will
31 Custom test pattern value
34 Enable/disable clock downspreading (spread-spectrum clocking) by
38 Enable/disable enhanced framing
41 Ignore AUX errors when set to 1. Writes to this file take effect
42 immediately (regardless of whether test mode is active) and affect all
46 Ignore hotplug events (such as cable removals or monitor link
47 retraining requests) when set to 1. Writes to this file take effect
48 immediately (regardless of whether test mode is active).
51 Preemphasis from 0 (lowest) to 2 (highest) for lane X
54 Voltage swing from 0 (lowest) to 3 (highest) for lane X
57 Number of lanes to use (1, 2, or 4)
60 Test pattern. May be one of:
63 Use regular video input
66 Symbol error measurement pattern
69 Output of the PRBS7 (x^7 + x^6 + 1) polynomial
72 A custom 80-bit pattern
75 HBR2 compliance eye pattern
78 Link training symbol pattern TPS1 (/D10.2/)
81 Link training symbol pattern TPS2
84 Link training symbol pattern TPS3 (for HBR2)
93 You can dump the displayport test settings with the following command::
95 for prop in /sys/kernel/debug/dri/1/DP-1/test/*; do
96 printf '%-17s ' ${prop##*/}
97 if [ ${prop##*/} = custom ]; then
98 hexdump -C $prop | head -1
104 The output could look something like::
107 custom 00000000 00 00 00 00 00 00 00 00 00 00 |..........|
120 The recommended test procedure is to connect the board to a monitor,
121 configure test mode, activate test mode, and then disconnect the cable
122 and connect it to your test equipment of choice. For example, one
123 sequence of commands could be::
125 echo 1 > /sys/kernel/debug/dri/1/DP-1/test/enhanced
126 echo tps1 > /sys/kernel/debug/dri/1/DP-1/test/pattern
127 echo 1620000000 > /sys/kernel/debug/dri/1/DP-1/test/rate
128 echo 1 > /sys/kernel/debug/dri/1/DP-1/test/ignore_aux_errors
129 echo 1 > /sys/kernel/debug/dri/1/DP-1/test/ignore_hpd
130 echo 1 > /sys/kernel/debug/dri/1/DP-1/test/active
132 at which point the cable could be disconnected from the monitor.
137 .. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_disp.h
139 .. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_dpsub.h
141 .. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_kms.h
143 .. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_disp.c
145 .. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_dp.c
147 .. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_kms.c