Back to home page

OSCL-LXR

 
 

    


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.