Loading...
Note: File does not exist in v4.10.11.
1.. SPDX-License-Identifier: GPL-2.0+
2
3===============================================
4Xilinx ZynqMP Ultrascale+ DisplayPort Subsystem
5===============================================
6
7This subsystem handles DisplayPort video and audio output on the ZynqMP. It
8supports 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
11conversion, alpha blending, and audio mixing, although not all features are
12currently supported.
13
14debugfs
15-------
16
17To support debugging and compliance testing, several test modes can be enabled
18though debugfs. The following files in /sys/kernel/debug/dri/X/DP-1/test/
19control the DisplayPort test modes:
20
21active:
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.
29
30custom:
31 Custom test pattern value
32
33downspread:
34 Enable/disable clock downspreading (spread-spectrum clocking) by
35 writing 1/0
36
37enhanced:
38 Enable/disable enhanced framing
39
40ignore_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.
44
45ignore_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).
49
50laneX_preemphasis:
51 Preemphasis from 0 (lowest) to 2 (highest) for lane X
52
53laneX_swing:
54 Voltage swing from 0 (lowest) to 3 (highest) for lane X
55
56lanes:
57 Number of lanes to use (1, 2, or 4)
58
59pattern:
60 Test pattern. May be one of:
61
62 video
63 Use regular video input
64
65 symbol-error
66 Symbol error measurement pattern
67
68 prbs7
69 Output of the PRBS7 (x^7 + x^6 + 1) polynomial
70
71 80bit-custom
72 A custom 80-bit pattern
73
74 cp2520
75 HBR2 compliance eye pattern
76
77 tps1
78 Link training symbol pattern TPS1 (/D10.2/)
79
80 tps2
81 Link training symbol pattern TPS2
82
83 tps3
84 Link training symbol pattern TPS3 (for HBR2)
85
86rate:
87 Rate in hertz. One of
88
89 * 5400000000 (HBR2)
90 * 2700000000 (HBR)
91 * 1620000000 (RBR)
92
93You can dump the displayport test settings with the following command::
94
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
103
104The output could look something like::
105
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
119
120The recommended test procedure is to connect the board to a monitor,
121configure test mode, activate test mode, and then disconnect the cable
122and connect it to your test equipment of choice. For example, one
123sequence of commands could be::
124
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
131
132at which point the cable could be disconnected from the monitor.
133
134Internals
135---------
136
137.. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_disp.h
138
139.. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_dpsub.h
140
141.. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_kms.h
142
143.. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_disp.c
144
145.. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_dp.c
146
147.. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_dpsub.c
148
149.. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_kms.c