| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- .. SPDX-License-Identifier: GPL-2.0+
- ===============================================
- Xilinx ZynqMP Ultrascale+ DisplayPort Subsystem
- ===============================================
- This subsystem handles DisplayPort video and audio output on the ZynqMP. It
- supports in-memory framebuffers with the DisplayPort DMA controller
- (xilinx-dpdma), as well as "live" video and audio from the programmable logic
- (PL). This subsystem can perform several transformations, including color space
- conversion, alpha blending, and audio mixing, although not all features are
- currently supported.
- debugfs
- -------
- To support debugging and compliance testing, several test modes can be enabled
- though debugfs. The following files in /sys/kernel/debug/dri/X/DP-1/test/
- control the DisplayPort test modes:
- active:
- Writing a 1 to this file will activate test mode, and writing a 0 will
- deactivate test mode. Writing a 1 or 0 when the test mode is already
- active/inactive will re-activate/re-deactivate test mode. When test
- mode is inactive, changes made to other files will have no (immediate)
- effect, although the settings will be saved for when test mode is
- activated. When test mode is active, changes made to other files will
- apply immediately.
- custom:
- Custom test pattern value
- downspread:
- Enable/disable clock downspreading (spread-spectrum clocking) by
- writing 1/0
- enhanced:
- Enable/disable enhanced framing
- ignore_aux_errors:
- Ignore AUX errors when set to 1. Writes to this file take effect
- immediately (regardless of whether test mode is active) and affect all
- AUX transfers.
- ignore_hpd:
- Ignore hotplug events (such as cable removals or monitor link
- retraining requests) when set to 1. Writes to this file take effect
- immediately (regardless of whether test mode is active).
- laneX_preemphasis:
- Preemphasis from 0 (lowest) to 2 (highest) for lane X
- laneX_swing:
- Voltage swing from 0 (lowest) to 3 (highest) for lane X
- lanes:
- Number of lanes to use (1, 2, or 4)
- pattern:
- Test pattern. May be one of:
- video
- Use regular video input
- symbol-error
- Symbol error measurement pattern
- prbs7
- Output of the PRBS7 (x^7 + x^6 + 1) polynomial
- 80bit-custom
- A custom 80-bit pattern
- cp2520
- HBR2 compliance eye pattern
- tps1
- Link training symbol pattern TPS1 (/D10.2/)
- tps2
- Link training symbol pattern TPS2
- tps3
- Link training symbol pattern TPS3 (for HBR2)
- rate:
- Rate in hertz. One of
- * 5400000000 (HBR2)
- * 2700000000 (HBR)
- * 1620000000 (RBR)
- You can dump the displayport test settings with the following command::
- for prop in /sys/kernel/debug/dri/1/DP-1/test/*; do
- printf '%-17s ' ${prop##*/}
- if [ ${prop##*/} = custom ]; then
- hexdump -C $prop | head -1
- else
- cat $prop
- fi
- done
- The output could look something like::
- active 1
- custom 00000000 00 00 00 00 00 00 00 00 00 00 |..........|
- downspread 0
- enhanced 1
- ignore_aux_errors 1
- ignore_hpd 1
- lane0_preemphasis 0
- lane0_swing 3
- lane1_preemphasis 0
- lane1_swing 3
- lanes 2
- pattern prbs7
- rate 1620000000
- The recommended test procedure is to connect the board to a monitor,
- configure test mode, activate test mode, and then disconnect the cable
- and connect it to your test equipment of choice. For example, one
- sequence of commands could be::
- echo 1 > /sys/kernel/debug/dri/1/DP-1/test/enhanced
- echo tps1 > /sys/kernel/debug/dri/1/DP-1/test/pattern
- echo 1620000000 > /sys/kernel/debug/dri/1/DP-1/test/rate
- echo 1 > /sys/kernel/debug/dri/1/DP-1/test/ignore_aux_errors
- echo 1 > /sys/kernel/debug/dri/1/DP-1/test/ignore_hpd
- echo 1 > /sys/kernel/debug/dri/1/DP-1/test/active
- at which point the cable could be disconnected from the monitor.
- Internals
- ---------
- .. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_disp.h
- .. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_dpsub.h
- .. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_kms.h
- .. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_disp.c
- .. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_dp.c
- .. kernel-doc:: drivers/gpu/drm/xlnx/zynqmp_kms.c
|