0001 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
0002
0003 .. _dv-controls:
0004
0005 *******************************
0006 Digital Video Control Reference
0007 *******************************
0008
0009 The Digital Video control class is intended to control receivers and
0010 transmitters for `VGA <http://en.wikipedia.org/wiki/Vga>`__,
0011 `DVI <http://en.wikipedia.org/wiki/Digital_Visual_Interface>`__
0012 (Digital Visual Interface), HDMI (:ref:`hdmi`) and DisplayPort
0013 (:ref:`dp`). These controls are generally expected to be private to
0014 the receiver or transmitter subdevice that implements them, so they are
0015 only exposed on the ``/dev/v4l-subdev*`` device node.
0016
0017 .. note::
0018
0019 Note that these devices can have multiple input or output pads which are
0020 hooked up to e.g. HDMI connectors. Even though the subdevice will
0021 receive or transmit video from/to only one of those pads, the other pads
0022 can still be active when it comes to EDID (Extended Display
0023 Identification Data, :ref:`vesaedid`) and HDCP (High-bandwidth Digital
0024 Content Protection System, :ref:`hdcp`) processing, allowing the
0025 device to do the fairly slow EDID/HDCP handling in advance. This allows
0026 for quick switching between connectors.
0027
0028 These pads appear in several of the controls in this section as
0029 bitmasks, one bit for each pad. Bit 0 corresponds to pad 0, bit 1 to pad
0030 1, etc. The maximum value of the control is the set of valid pads.
0031
0032
0033 .. _dv-control-id:
0034
0035 Digital Video Control IDs
0036 =========================
0037
0038 ``V4L2_CID_DV_CLASS (class)``
0039 The Digital Video class descriptor.
0040
0041 ``V4L2_CID_DV_TX_HOTPLUG (bitmask)``
0042 Many connectors have a hotplug pin which is high if EDID information
0043 is available from the source. This control shows the state of the
0044 hotplug pin as seen by the transmitter. Each bit corresponds to an
0045 output pad on the transmitter. If an output pad does not have an
0046 associated hotplug pin, then the bit for that pad will be 0. This
0047 read-only control is applicable to DVI-D, HDMI and DisplayPort
0048 connectors.
0049
0050 ``V4L2_CID_DV_TX_RXSENSE (bitmask)``
0051 Rx Sense is the detection of pull-ups on the TMDS clock lines. This
0052 normally means that the sink has left/entered standby (i.e. the
0053 transmitter can sense that the receiver is ready to receive video).
0054 Each bit corresponds to an output pad on the transmitter. If an
0055 output pad does not have an associated Rx Sense, then the bit for
0056 that pad will be 0. This read-only control is applicable to DVI-D
0057 and HDMI devices.
0058
0059 ``V4L2_CID_DV_TX_EDID_PRESENT (bitmask)``
0060 When the transmitter sees the hotplug signal from the receiver it
0061 will attempt to read the EDID. If set, then the transmitter has read
0062 at least the first block (= 128 bytes). Each bit corresponds to an
0063 output pad on the transmitter. If an output pad does not support
0064 EDIDs, then the bit for that pad will be 0. This read-only control
0065 is applicable to VGA, DVI-A/D, HDMI and DisplayPort connectors.
0066
0067 ``V4L2_CID_DV_TX_MODE``
0068 (enum)
0069
0070 enum v4l2_dv_tx_mode -
0071 HDMI transmitters can transmit in DVI-D mode (just video) or in HDMI
0072 mode (video + audio + auxiliary data). This control selects which
0073 mode to use: V4L2_DV_TX_MODE_DVI_D or V4L2_DV_TX_MODE_HDMI.
0074 This control is applicable to HDMI connectors.
0075
0076 ``V4L2_CID_DV_TX_RGB_RANGE``
0077 (enum)
0078
0079 enum v4l2_dv_rgb_range -
0080 Select the quantization range for RGB output. V4L2_DV_RANGE_AUTO
0081 follows the RGB quantization range specified in the standard for the
0082 video interface (ie. :ref:`cea861` for HDMI).
0083 V4L2_DV_RANGE_LIMITED and V4L2_DV_RANGE_FULL override the
0084 standard to be compatible with sinks that have not implemented the
0085 standard correctly (unfortunately quite common for HDMI and DVI-D).
0086 Full range allows all possible values to be used whereas limited
0087 range sets the range to (16 << (N-8)) - (235 << (N-8)) where N is
0088 the number of bits per component. This control is applicable to VGA,
0089 DVI-A/D, HDMI and DisplayPort connectors.
0090
0091 ``V4L2_CID_DV_TX_IT_CONTENT_TYPE``
0092 (enum)
0093
0094 enum v4l2_dv_it_content_type -
0095 Configures the IT Content Type of the transmitted video. This
0096 information is sent over HDMI and DisplayPort connectors as part of
0097 the AVI InfoFrame. The term 'IT Content' is used for content that
0098 originates from a computer as opposed to content from a TV broadcast
0099 or an analog source. The enum v4l2_dv_it_content_type defines
0100 the possible content types:
0101
0102 .. tabularcolumns:: |p{7.3cm}|p{10.2cm}|
0103
0104 .. flat-table::
0105 :header-rows: 0
0106 :stub-columns: 0
0107
0108 * - ``V4L2_DV_IT_CONTENT_TYPE_GRAPHICS``
0109 - Graphics content. Pixel data should be passed unfiltered and
0110 without analog reconstruction.
0111 * - ``V4L2_DV_IT_CONTENT_TYPE_PHOTO``
0112 - Photo content. The content is derived from digital still pictures.
0113 The content should be passed through with minimal scaling and
0114 picture enhancements.
0115 * - ``V4L2_DV_IT_CONTENT_TYPE_CINEMA``
0116 - Cinema content.
0117 * - ``V4L2_DV_IT_CONTENT_TYPE_GAME``
0118 - Game content. Audio and video latency should be minimized.
0119 * - ``V4L2_DV_IT_CONTENT_TYPE_NO_ITC``
0120 - No IT Content information is available and the ITC bit in the AVI
0121 InfoFrame is set to 0.
0122
0123
0124
0125 ``V4L2_CID_DV_RX_POWER_PRESENT (bitmask)``
0126 Detects whether the receiver receives power from the source (e.g.
0127 HDMI carries 5V on one of the pins). This is often used to power an
0128 eeprom which contains EDID information, such that the source can
0129 read the EDID even if the sink is in standby/power off. Each bit
0130 corresponds to an input pad on the receiver. If an input pad
0131 cannot detect whether power is present, then the bit for that pad
0132 will be 0. This read-only control is applicable to DVI-D, HDMI and
0133 DisplayPort connectors.
0134
0135 ``V4L2_CID_DV_RX_RGB_RANGE``
0136 (enum)
0137
0138 enum v4l2_dv_rgb_range -
0139 Select the quantization range for RGB input. V4L2_DV_RANGE_AUTO
0140 follows the RGB quantization range specified in the standard for the
0141 video interface (ie. :ref:`cea861` for HDMI).
0142 V4L2_DV_RANGE_LIMITED and V4L2_DV_RANGE_FULL override the
0143 standard to be compatible with sources that have not implemented the
0144 standard correctly (unfortunately quite common for HDMI and DVI-D).
0145 Full range allows all possible values to be used whereas limited
0146 range sets the range to (16 << (N-8)) - (235 << (N-8)) where N is
0147 the number of bits per component. This control is applicable to VGA,
0148 DVI-A/D, HDMI and DisplayPort connectors.
0149
0150 ``V4L2_CID_DV_RX_IT_CONTENT_TYPE``
0151 (enum)
0152
0153 enum v4l2_dv_it_content_type -
0154 Reads the IT Content Type of the received video. This information is
0155 sent over HDMI and DisplayPort connectors as part of the AVI
0156 InfoFrame. The term 'IT Content' is used for content that originates
0157 from a computer as opposed to content from a TV broadcast or an
0158 analog source. See ``V4L2_CID_DV_TX_IT_CONTENT_TYPE`` for the
0159 available content types.