1.. Permission is granted to copy, distribute and/or modify this 2.. document under the terms of the GNU Free Documentation License, 3.. Version 1.1 or any later version published by the Free Software 4.. Foundation, with no Invariant Sections, no Front-Cover Texts 5.. and no Back-Cover Texts. A copy of the license is included at 6.. Documentation/userspace-api/media/fdl-appendix.rst. 7.. 8.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections 9 10.. _dv-controls: 11 12******************************* 13Digital Video Control Reference 14******************************* 15 16The Digital Video control class is intended to control receivers and 17transmitters for `VGA <http://en.wikipedia.org/wiki/Vga>`__, 18`DVI <http://en.wikipedia.org/wiki/Digital_Visual_Interface>`__ 19(Digital Visual Interface), HDMI (:ref:`hdmi`) and DisplayPort 20(:ref:`dp`). These controls are generally expected to be private to 21the receiver or transmitter subdevice that implements them, so they are 22only exposed on the ``/dev/v4l-subdev*`` device node. 23 24.. note:: 25 26 Note that these devices can have multiple input or output pads which are 27 hooked up to e.g. HDMI connectors. Even though the subdevice will 28 receive or transmit video from/to only one of those pads, the other pads 29 can still be active when it comes to EDID (Extended Display 30 Identification Data, :ref:`vesaedid`) and HDCP (High-bandwidth Digital 31 Content Protection System, :ref:`hdcp`) processing, allowing the 32 device to do the fairly slow EDID/HDCP handling in advance. This allows 33 for quick switching between connectors. 34 35These pads appear in several of the controls in this section as 36bitmasks, one bit for each pad. Bit 0 corresponds to pad 0, bit 1 to pad 371, etc. The maximum value of the control is the set of valid pads. 38 39 40.. _dv-control-id: 41 42Digital Video Control IDs 43========================= 44 45``V4L2_CID_DV_CLASS (class)`` 46 The Digital Video class descriptor. 47 48``V4L2_CID_DV_TX_HOTPLUG (bitmask)`` 49 Many connectors have a hotplug pin which is high if EDID information 50 is available from the source. This control shows the state of the 51 hotplug pin as seen by the transmitter. Each bit corresponds to an 52 output pad on the transmitter. If an output pad does not have an 53 associated hotplug pin, then the bit for that pad will be 0. This 54 read-only control is applicable to DVI-D, HDMI and DisplayPort 55 connectors. 56 57``V4L2_CID_DV_TX_RXSENSE (bitmask)`` 58 Rx Sense is the detection of pull-ups on the TMDS clock lines. This 59 normally means that the sink has left/entered standby (i.e. the 60 transmitter can sense that the receiver is ready to receive video). 61 Each bit corresponds to an output pad on the transmitter. If an 62 output pad does not have an associated Rx Sense, then the bit for 63 that pad will be 0. This read-only control is applicable to DVI-D 64 and HDMI devices. 65 66``V4L2_CID_DV_TX_EDID_PRESENT (bitmask)`` 67 When the transmitter sees the hotplug signal from the receiver it 68 will attempt to read the EDID. If set, then the transmitter has read 69 at least the first block (= 128 bytes). Each bit corresponds to an 70 output pad on the transmitter. If an output pad does not support 71 EDIDs, then the bit for that pad will be 0. This read-only control 72 is applicable to VGA, DVI-A/D, HDMI and DisplayPort connectors. 73 74``V4L2_CID_DV_TX_MODE`` 75 (enum) 76 77enum v4l2_dv_tx_mode - 78 HDMI transmitters can transmit in DVI-D mode (just video) or in HDMI 79 mode (video + audio + auxiliary data). This control selects which 80 mode to use: V4L2_DV_TX_MODE_DVI_D or V4L2_DV_TX_MODE_HDMI. 81 This control is applicable to HDMI connectors. 82 83``V4L2_CID_DV_TX_RGB_RANGE`` 84 (enum) 85 86enum v4l2_dv_rgb_range - 87 Select the quantization range for RGB output. V4L2_DV_RANGE_AUTO 88 follows the RGB quantization range specified in the standard for the 89 video interface (ie. :ref:`cea861` for HDMI). 90 V4L2_DV_RANGE_LIMITED and V4L2_DV_RANGE_FULL override the 91 standard to be compatible with sinks that have not implemented the 92 standard correctly (unfortunately quite common for HDMI and DVI-D). 93 Full range allows all possible values to be used whereas limited 94 range sets the range to (16 << (N-8)) - (235 << (N-8)) where N is 95 the number of bits per component. This control is applicable to VGA, 96 DVI-A/D, HDMI and DisplayPort connectors. 97 98``V4L2_CID_DV_TX_IT_CONTENT_TYPE`` 99 (enum) 100 101enum v4l2_dv_it_content_type - 102 Configures the IT Content Type of the transmitted video. This 103 information is sent over HDMI and DisplayPort connectors as part of 104 the AVI InfoFrame. The term 'IT Content' is used for content that 105 originates from a computer as opposed to content from a TV broadcast 106 or an analog source. The enum v4l2_dv_it_content_type defines 107 the possible content types: 108 109.. tabularcolumns:: |p{7.3cm}|p{10.4cm}| 110 111.. flat-table:: 112 :header-rows: 0 113 :stub-columns: 0 114 115 * - ``V4L2_DV_IT_CONTENT_TYPE_GRAPHICS`` 116 - Graphics content. Pixel data should be passed unfiltered and 117 without analog reconstruction. 118 * - ``V4L2_DV_IT_CONTENT_TYPE_PHOTO`` 119 - Photo content. The content is derived from digital still pictures. 120 The content should be passed through with minimal scaling and 121 picture enhancements. 122 * - ``V4L2_DV_IT_CONTENT_TYPE_CINEMA`` 123 - Cinema content. 124 * - ``V4L2_DV_IT_CONTENT_TYPE_GAME`` 125 - Game content. Audio and video latency should be minimized. 126 * - ``V4L2_DV_IT_CONTENT_TYPE_NO_ITC`` 127 - No IT Content information is available and the ITC bit in the AVI 128 InfoFrame is set to 0. 129 130 131 132``V4L2_CID_DV_RX_POWER_PRESENT (bitmask)`` 133 Detects whether the receiver receives power from the source (e.g. 134 HDMI carries 5V on one of the pins). This is often used to power an 135 eeprom which contains EDID information, such that the source can 136 read the EDID even if the sink is in standby/power off. Each bit 137 corresponds to an input pad on the receiver. If an input pad 138 cannot detect whether power is present, then the bit for that pad 139 will be 0. This read-only control is applicable to DVI-D, HDMI and 140 DisplayPort connectors. 141 142``V4L2_CID_DV_RX_RGB_RANGE`` 143 (enum) 144 145enum v4l2_dv_rgb_range - 146 Select the quantization range for RGB input. V4L2_DV_RANGE_AUTO 147 follows the RGB quantization range specified in the standard for the 148 video interface (ie. :ref:`cea861` for HDMI). 149 V4L2_DV_RANGE_LIMITED and V4L2_DV_RANGE_FULL override the 150 standard to be compatible with sources that have not implemented the 151 standard correctly (unfortunately quite common for HDMI and DVI-D). 152 Full range allows all possible values to be used whereas limited 153 range sets the range to (16 << (N-8)) - (235 << (N-8)) where N is 154 the number of bits per component. This control is applicable to VGA, 155 DVI-A/D, HDMI and DisplayPort connectors. 156 157``V4L2_CID_DV_RX_IT_CONTENT_TYPE`` 158 (enum) 159 160enum v4l2_dv_it_content_type - 161 Reads the IT Content Type of the received video. This information is 162 sent over HDMI and DisplayPort connectors as part of the AVI 163 InfoFrame. The term 'IT Content' is used for content that originates 164 from a computer as opposed to content from a TV broadcast or an 165 analog source. See ``V4L2_CID_DV_TX_IT_CONTENT_TYPE`` for the 166 available content types. 167