drm/bridge: ti-sn65dsi86: Fix multiple instances
[drm/drm-misc.git] / Documentation / gpu / zynqmp.rst
blob1a6f9193de22df27900130f1ab16b97361e01705
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
12 currently supported.
14 debugfs
15 -------
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:
21 active:
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
28         apply immediately.
30 custom:
31         Custom test pattern value
33 downspread:
34         Enable/disable clock downspreading (spread-spectrum clocking) by
35         writing 1/0
37 enhanced:
38         Enable/disable enhanced framing
40 ignore_aux_errors:
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
43         AUX transfers.
45 ignore_hpd:
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).
50 laneX_preemphasis:
51         Preemphasis from 0 (lowest) to 2 (highest) for lane X
53 laneX_swing:
54         Voltage swing from 0 (lowest) to 3 (highest) for lane X
56 lanes:
57         Number of lanes to use (1, 2, or 4)
59 pattern:
60         Test pattern. May be one of:
62                 video
63                         Use regular video input
65                 symbol-error
66                         Symbol error measurement pattern
68                 prbs7
69                         Output of the PRBS7 (x^7 + x^6 + 1) polynomial
71                 80bit-custom
72                         A custom 80-bit pattern
74                 cp2520
75                         HBR2 compliance eye pattern
77                 tps1
78                         Link training symbol pattern TPS1 (/D10.2/)
80                 tps2
81                         Link training symbol pattern TPS2
83                 tps3
84                         Link training symbol pattern TPS3 (for HBR2)
86 rate:
87         Rate in hertz. One of
89                 * 5400000000 (HBR2)
90                 * 2700000000 (HBR)
91                 * 1620000000 (RBR)
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
99                 else
100                         cat $prop
101                 fi
102         done
104 The output could look something like::
106         active            1
107         custom            00000000  00 00 00 00 00 00 00 00  00 00                    |..........|
108         downspread        0
109         enhanced          1
110         ignore_aux_errors 1
111         ignore_hpd        1
112         lane0_preemphasis 0
113         lane0_swing       3
114         lane1_preemphasis 0
115         lane1_swing       3
116         lanes             2
117         pattern           prbs7
118         rate              1620000000
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.
134 Internals
135 ---------
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