sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget9/translations/zh_CN/userspace-api/media/v4l/vidioc-g-edidmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget9/translations/zh_TW/userspace-api/media/v4l/vidioc-g-edidmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget9/translations/it_IT/userspace-api/media/v4l/vidioc-g-edidmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget9/translations/ja_JP/userspace-api/media/v4l/vidioc-g-edidmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget9/translations/ko_KR/userspace-api/media/v4l/vidioc-g-edidmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget9/translations/sp_SP/userspace-api/media/v4l/vidioc-g-edidmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h8SPDX-License-Identifier: GFDL-1.1-no-invariants-or-laterh]h8SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhS/var/lib/git/docbuild/linux/Documentation/userspace-api/media/v4l/vidioc-g-edid.rsthKubhtarget)}(h.. _VIDIOC_G_EDID:h]h}(h]h ]h"]h$]h&]refid vidioc-g-ediduh1hhKhhhhhhubhsection)}(hhh](htitle)}(hNioctl VIDIOC_G_EDID, VIDIOC_S_EDID, VIDIOC_SUBDEV_G_EDID, VIDIOC_SUBDEV_S_EDIDh]hNioctl VIDIOC_G_EDID, VIDIOC_S_EDID, VIDIOC_SUBDEV_G_EDID, VIDIOC_SUBDEV_S_EDID}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hNameh]hName}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh paragraph)}(hVIDIOC_G_EDID - VIDIOC_S_EDID - VIDIOC_SUBDEV_G_EDID - VIDIOC_SUBDEV_S_EDID - Get or set the EDID of a video receiver/transmitterh]hVIDIOC_G_EDID - VIDIOC_S_EDID - VIDIOC_SUBDEV_G_EDID - VIDIOC_SUBDEV_S_EDID - Get or set the EDID of a video receiver/transmitter}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubeh}(h]nameah ]h"]nameah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hSynopsish]hSynopsis}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singleV4L.VIDIOC_G_EDID (C macro)c.V4L.VIDIOC_G_EDIDhNtauh1jhjhhhNhNubhdesc)}(hhh](hdesc_signature)}(h VIDIOC_G_EDIDh]hdesc_signature_line)}(h VIDIOC_G_EDIDh]h desc_name)}(h VIDIOC_G_EDIDh]h desc_sig_name)}(hj+h]h VIDIOC_G_EDID}(hj;hhhNhNubah}(h]h ]nah"]h$]h&]uh1j9hj5ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1j3hj/hhhhhKubah}(h]h ]h"]h$]h&]hh add_permalinkuh1j-sphinx_line_type declaratorhj)hhhhhKubah}(h]j ah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1j'hhhKhj$hhubh desc_content)}(hhh]h}(h]h ]h"]h$]h&]uh1jehj$hhhhhKubeh}(h]h ](cmacroeh"]h$]h&]domainjsobjtypejtdesctypejtnoindex noindexentrynocontentsentryuh1j"hhhjhNhNubh)}(h<``int ioctl(int fd, VIDIOC_G_EDID, struct v4l2_edid *argp)``h]hliteral)}(hjh]h8int ioctl(int fd, VIDIOC_G_EDID, struct v4l2_edid *argp)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jV4L.VIDIOC_S_EDID (C macro)c.V4L.VIDIOC_S_EDIDhNtauh1jhjhhhNhNubj#)}(hhh](j()}(h VIDIOC_S_EDIDh]j.)}(h VIDIOC_S_EDIDh]j4)}(h VIDIOC_S_EDIDh]j:)}(hjh]h VIDIOC_S_EDID}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j9hjubah}(h]h ](jLjMeh"]h$]h&]hhuh1j3hjhhhhhKubah}(h]h ]h"]h$]h&]hhjWuh1j-jXjYhjhhhhhKubah}(h]jah ](j]j^eh"]h$]h&]jbjc)jdhuh1j'hhhKhjhhubjf)}(hhh]h}(h]h ]h"]h$]h&]uh1jehjhhhhhKubeh}(h]h ](jsmacroeh"]h$]h&]jxjsjyjjzjj{j|j}uh1j"hhhjhNhNubh)}(h<``int ioctl(int fd, VIDIOC_S_EDID, struct v4l2_edid *argp)``h]j)}(hjh]h8int ioctl(int fd, VIDIOC_S_EDID, struct v4l2_edid *argp)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"V4L.VIDIOC_SUBDEV_G_EDID (C macro)c.V4L.VIDIOC_SUBDEV_G_EDIDhNtauh1jhjhhhNhNubj#)}(hhh](j()}(hVIDIOC_SUBDEV_G_EDIDh]j.)}(hVIDIOC_SUBDEV_G_EDIDh]j4)}(hVIDIOC_SUBDEV_G_EDIDh]j:)}(hj h]hVIDIOC_SUBDEV_G_EDID}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j9hjubah}(h]h ](jLjMeh"]h$]h&]hhuh1j3hjhhhhhKubah}(h]h ]h"]h$]h&]hhjWuh1j-jXjYhj hhhhhKubah}(h]jah ](j]j^eh"]h$]h&]jbjc)jdhuh1j'hhhKhjhhubjf)}(hhh]h}(h]h ]h"]h$]h&]uh1jehjhhhhhKubeh}(h]h ](jsmacroeh"]h$]h&]jxjsjyjBjzjBj{j|j}uh1j"hhhjhNhNubh)}(hC``int ioctl(int fd, VIDIOC_SUBDEV_G_EDID, struct v4l2_edid *argp)``h]j)}(hjHh]h?int ioctl(int fd, VIDIOC_SUBDEV_G_EDID, struct v4l2_edid *argp)}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"V4L.VIDIOC_SUBDEV_S_EDID (C macro)c.V4L.VIDIOC_SUBDEV_S_EDIDhNtauh1jhjhhhNhNubj#)}(hhh](j()}(hVIDIOC_SUBDEV_S_EDIDh]j.)}(hVIDIOC_SUBDEV_S_EDIDh]j4)}(hVIDIOC_SUBDEV_S_EDIDh]j:)}(hjph]hVIDIOC_SUBDEV_S_EDID}(hjzhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j9hjvubah}(h]h ](jLjMeh"]h$]h&]hhuh1j3hjrhhhhhKubah}(h]h ]h"]h$]h&]hhjWuh1j-jXjYhjnhhhhhKubah}(h]jiah ](j]j^eh"]h$]h&]jbjc)jdhuh1j'hhhKhjkhhubjf)}(hhh]h}(h]h ]h"]h$]h&]uh1jehjkhhhhhKubeh}(h]h ](jsmacroeh"]h$]h&]jxjsjyjjzjj{j|j}uh1j"hhhjhNhNubh)}(hC``int ioctl(int fd, VIDIOC_SUBDEV_S_EDID, struct v4l2_edid *argp)``h]j)}(hjh]h?int ioctl(int fd, VIDIOC_SUBDEV_S_EDID, struct v4l2_edid *argp)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhK hjhhubeh}(h]synopsisah ]h"]synopsisah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Argumentsh]h Arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK#ubhdefinition_list)}(hhh](hdefinition_list_item)}(h5``fd`` File descriptor returned by :c:func:`open()`. h](hterm)}(h``fd``h]j)}(hjh]hfd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhhhK&hjubh definition)}(hhh]h)}(h-File descriptor returned by :c:func:`open()`.h](hFile descriptor returned by }(hjhhhNhNubh)}(h:c:func:`open()`h]j)}(hj h]hopen()}(hjhhhNhNubah}(h]h ](xrefjsc-funceh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdoc%userspace-api/media/v4l/vidioc-g-edid refdomainjsreftypefunc refexplicitrefwarn c:parent_keysphinx.domains.c LookupKey)}data]j+ ASTIdentifier)} identifierV4LsbNasb reftargetopenuh1hhhhK&hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK&hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhK&hjubj)}(h0``argp`` Pointer to struct :c:type:`v4l2_edid`. h](j)}(h``argp``h]j)}(hjWh]hargp}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhhhK)hjQubj)}(hhh]h)}(h&Pointer to struct :c:type:`v4l2_edid`.h](hPointer to struct }(hjohhhNhNubh)}(h:c:type:`v4l2_edid`h]j)}(hjyh]h v4l2_edid}(hj{hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]refdocj$ refdomainjsreftypetype refexplicitrefwarnj*j.j9 v4l2_ediduh1hhhhK)hjoubh.}(hjohhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK)hjlubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhhhK)hjhhubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h] argumentsah ]h"] argumentsah$]h&]uh1hhhhhhhhK#ubh)}(hhh](h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK,ubh)}(hThese ioctls can be used to get or set an EDID associated with an input from a receiver or an output of a transmitter device. They can be used with subdevice nodes (/dev/v4l-subdevX) or with video nodes (/dev/videoX).h]hThese ioctls can be used to get or set an EDID associated with an input from a receiver or an output of a transmitter device. They can be used with subdevice nodes (/dev/v4l-subdevX) or with video nodes (/dev/videoX).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjhhubh)}(hXWhen used with video nodes the ``pad`` field represents the input (for video capture devices) or output (for video output devices) index as is returned by :ref:`VIDIOC_ENUMINPUT` and :ref:`VIDIOC_ENUMOUTPUT` respectively. When used with subdevice nodes the ``pad`` field represents the input or output pad of the subdevice. If there is no EDID support for the given ``pad`` value, then the ``EINVAL`` error code will be returned.h](hWhen used with video nodes the }(hjhhhNhNubj)}(h``pad``h]hpad}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhu field represents the input (for video capture devices) or output (for video output devices) index as is returned by }(hjhhhNhNubh)}(h:ref:`VIDIOC_ENUMINPUT`h]hinline)}(hjh]hVIDIOC_ENUMINPUT}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj$ refdomainjreftyperef refexplicitrefwarnj9vidioc_enuminputuh1hhhhK3hjubh and }(hjhhhNhNubh)}(h:ref:`VIDIOC_ENUMOUTPUT`h]j)}(hjh]hVIDIOC_ENUMOUTPUT}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj$ refdomainj'reftyperef refexplicitrefwarnj9vidioc_enumoutputuh1hhhhK3hjubh2 respectively. When used with subdevice nodes the }(hjhhhNhNubj)}(h``pad``h]hpad}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhf field represents the input or output pad of the subdevice. If there is no EDID support for the given }(hjhhhNhNubj)}(h``pad``h]hpad}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh value, then the }(hjhhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh error code will be returned.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK3hjhhubh)}(hXTo get the EDID data the application has to fill in the ``pad``, ``start_block``, ``blocks`` and ``edid`` fields, zero the ``reserved`` array and call :ref:`VIDIOC_G_EDID `. The current EDID from block ``start_block`` and of size ``blocks`` will be placed in the memory ``edid`` points to. The ``edid`` pointer must point to memory at least ``blocks`` * 128 bytes large (the size of one block is 128 bytes).h](h8To get the EDID data the application has to fill in the }(hjyhhhNhNubj)}(h``pad``h]hpad}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubh, }(hjyhhhNhNubj)}(h``start_block``h]h start_block}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubh, }(hjyhhhNhNubj)}(h ``blocks``h]hblocks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubh and }(hjyhhhNhNubj)}(h``edid``h]hedid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubh fields, zero the }(hjyhhhNhNubj)}(h ``reserved``h]hreserved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubh array and call }(hjyhhhNhNubh)}(h$:ref:`VIDIOC_G_EDID `h]j)}(hjh]h VIDIOC_G_EDID}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj$ refdomainjreftyperef refexplicitrefwarnj9 vidioc_g_ediduh1hhhhK;hjyubh. The current EDID from block }(hjyhhhNhNubj)}(h``start_block``h]h start_block}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubh and of size }(hjyhhhNhNubj)}(h ``blocks``h]hblocks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubh will be placed in the memory }(hjyhhhNhNubj)}(h``edid``h]hedid}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubh points to. The }(hjyhhhNhNubj)}(h``edid``h]hedid}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubh' pointer must point to memory at least }(hjyhhhNhNubj)}(h ``blocks``h]hblocks}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubh8 * 128 bytes large (the size of one block is 128 bytes).}(hjyhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK;hjhhubh)}(hIf there are fewer blocks than specified, then the driver will set ``blocks`` to the actual number of blocks. If there are no EDID blocks available at all, then the error code ``ENODATA`` is set.h](hCIf there are fewer blocks than specified, then the driver will set }(hj_hhhNhNubj)}(h ``blocks``h]hblocks}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubhc to the actual number of blocks. If there are no EDID blocks available at all, then the error code }(hj_hhhNhNubj)}(h ``ENODATA``h]hENODATA}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubh is set.}(hj_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKBhjhhubh)}(hbIf blocks have to be retrieved from the sink, then this call will block until they have been read.h]hbIf blocks have to be retrieved from the sink, then this call will block until they have been read.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKFhjhhubh)}(hX(If ``start_block`` and ``blocks`` are both set to 0 when :ref:`VIDIOC_G_EDID ` is called, then the driver will set ``blocks`` to the total number of available EDID blocks and it will return 0 without copying any data. This is an easy way to discover how many EDID blocks there are.h](hIf }(hjhhhNhNubj)}(h``start_block``h]h start_block}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h ``blocks``h]hblocks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh are both set to 0 when }(hjhhhNhNubh)}(h$:ref:`VIDIOC_G_EDID `h]j)}(hjh]h VIDIOC_G_EDID}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj$ refdomainjreftyperef refexplicitrefwarnj9 vidioc_g_ediduh1hhhhKIhjubh% is called, then the driver will set }(hjhhhNhNubj)}(h ``blocks``h]hblocks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh to the total number of available EDID blocks and it will return 0 without copying any data. This is an easy way to discover how many EDID blocks there are.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKIhjhhubhnote)}(hhIf there are no EDID blocks available at all, then the driver will set ``blocks`` to 0 and it returns 0.h]h)}(hhIf there are no EDID blocks available at all, then the driver will set ``blocks`` to 0 and it returns 0.h](hGIf there are no EDID blocks available at all, then the driver will set }(hj hhhNhNubj)}(h ``blocks``h]hblocks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh to 0 and it returns 0.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKQhj ubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hXLTo set the EDID blocks of a receiver the application has to fill in the ``pad``, ``blocks`` and ``edid`` fields, set ``start_block`` to 0 and zero the ``reserved`` array. It is not possible to set part of an EDID, it is always all or nothing. Setting the EDID data is only valid for receivers as it makes no sense for a transmitter.h](hHTo set the EDID blocks of a receiver the application has to fill in the }(hj3hhhNhNubj)}(h``pad``h]hpad}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubh, }(hj3hhhNhNubj)}(h ``blocks``h]hblocks}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubh and }(hj3hhhNhNubj)}(h``edid``h]hedid}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubh fields, set }(hj3hhhNhNubj)}(h``start_block``h]h start_block}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubh to 0 and zero the }(hj3hhhNhNubj)}(h ``reserved``h]hreserved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubh array. It is not possible to set part of an EDID, it is always all or nothing. Setting the EDID data is only valid for receivers as it makes no sense for a transmitter.}(hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKThjhhubh)}(hXMThe driver assumes that the full EDID is passed in. If there are more EDID blocks than the hardware can handle then the EDID is not written, but instead the error code ``E2BIG`` is set and ``blocks`` is set to the maximum that the hardware supports. If ``start_block`` is any value other than 0 then the error code ``EINVAL`` is set.h](hThe driver assumes that the full EDID is passed in. If there are more EDID blocks than the hardware can handle then the EDID is not written, but instead the error code }(hjhhhNhNubj)}(h ``E2BIG``h]hE2BIG}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is set and }(hjhhhNhNubj)}(h ``blocks``h]hblocks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh6 is set to the maximum that the hardware supports. If }(hjhhhNhNubj)}(h``start_block``h]h start_block}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/ is any value other than 0 then the error code }(hjhhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is set.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKZhjhhubh)}(hTo disable an EDID you set ``blocks`` to 0. Depending on the hardware this will drive the hotplug pin low and/or block the source from reading the EDID data in some way. In any case, the end result is the same: the EDID is no longer available.h](hTo disable an EDID you set }(hjhhhNhNubj)}(h ``blocks``h]hblocks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh to 0. Depending on the hardware this will drive the hotplug pin low and/or block the source from reading the EDID data in some way. In any case, the end result is the same: the EDID is no longer available.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK`hjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jV4L.v4l2_edid (C type)c.V4L.v4l2_edidhNtauh1jhjhhhNhNubj#)}(hhh](j()}(h v4l2_edidh]j.)}(htype v4l2_edidh](hdesc_sig_keyword)}(htypeh]htype}(hj,hhhNhNubah}(h]h ]kah"]h$]h&]uh1j*hj&hhhhhKeubhdesc_sig_space)}(h h]h }(hj=hhhNhNubah}(h]h ]wah"]h$]h&]uh1j;hj&hhhhhKeubj4)}(h v4l2_edidh]j:)}(hj$h]h v4l2_edid}(hjPhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j9hjLubah}(h]h ](jLjMeh"]h$]h&]hhuh1j3hj&hhhhhKeubeh}(h]h ]h"]h$]h&]hhjWuh1j-jXjYhj"hhhhhKeubah}(h]jah ](j]j^eh"]h$]h&]jbjc)jdhuh1j'hhhKehjhhubjf)}(hhh]h}(h]h ]h"]h$]h&]uh1jehjhhhhhKeubeh}(h]h ](jstypeeh"]h$]h&]jxjsjyj{jzj{j{j|j}uh1j"hhhjhNhNubhtabular_col_spec)}(hhh]h}(h]h ]h"]h$]h&]spec|p{4.4cm}|p{4.4cm}|p{8.5cm}|uh1jhhhKghjhhubhtable)}(hhh](h)}(hstruct v4l2_edidh]hstruct v4l2_edid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihjubhtgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubhtbody)}(hhh](hrow)}(hhh](hentry)}(hhh]h)}(h__u32h]h__u32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKnhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``pad``h]j)}(hjh]hpad}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKohjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hPad for which to get/set the EDID blocks. When used with a video device node the pad represents the input or output index as returned by :ref:`VIDIOC_ENUMINPUT` and :ref:`VIDIOC_ENUMOUTPUT` respectively.h](hPad for which to get/set the EDID blocks. When used with a video device node the pad represents the input or output index as returned by }(hj hhhNhNubh)}(h:ref:`VIDIOC_ENUMINPUT`h]j)}(hjh]hVIDIOC_ENUMINPUT}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj$ refdomainj reftyperef refexplicitrefwarnj9vidioc_enuminputuh1hhhhKphj ubh and }(hj hhhNhNubh)}(h:ref:`VIDIOC_ENUMOUTPUT`h]j)}(hj8h]hVIDIOC_ENUMOUTPUT}(hj:hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]refdocj$ refdomainjDreftyperef refexplicitrefwarnj9vidioc_enumoutputuh1hhhhKphj ubh respectively.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKphjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthjoubah}(h]h ]h"]h$]h&]uh1jhjlubj)}(hhh]h)}(h``start_block``h]j)}(hjh]h start_block}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKuhjubah}(h]h ]h"]h$]h&]uh1jhjlubj)}(hhh]h)}(hMRead the EDID from starting with this block. Must be 0 when setting the EDID.h]hMRead the EDID from starting with this block. Must be 0 when setting the EDID.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKvhjubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKxhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h ``blocks``h]j)}(hjh]hblocks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKyhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hThe number of blocks to get or set. Must be less or equal to 256 (the maximum number of blocks as defined by the standard). When you set the EDID and ``blocks`` is 0, then the EDID is disabled or erased.h](hThe number of blocks to get or set. Must be less or equal to 256 (the maximum number of blocks as defined by the standard). When you set the EDID and }(hj hhhNhNubj)}(h ``blocks``h]hblocks}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh+ is 0, then the EDID is disabled or erased.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKzhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK~hj/ ubah}(h]h ]h"]h$]h&]uh1jhj, ubj)}(hhh]h)}(h``reserved``\ [5]h](j)}(h ``reserved``h]hreserved}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI ubh [5]}(hjI hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjF ubah}(h]h ]h"]h$]h&]uh1jhj, ubj)}(hhh]h)}(hTReserved for future extensions. Applications and drivers must set the array to zero.h]hTReserved for future extensions. Applications and drivers must set the array to zero.}(hjn hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjk ubah}(h]h ]h"]h$]h&]uh1jhj, ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u8 *h]h__u8 *}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h``edid``h]j)}(hj h]hedid}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hOPointer to memory that contains the EDID. The minimum size is ``blocks`` * 128.h](h>Pointer to memory that contains the EDID. The minimum size is }(hj hhhNhNubj)}(h ``blocks``h]hblocks}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh * 128.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubeh}(h]id1ah ]h"]h$]h&]uh1jhjhhhNhNubeh}(h] descriptionah ]h"] descriptionah$]h&]uh1hhhhhhhhK,ubh)}(hhh](h)}(h Return Valueh]h Return Value}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(hOn success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter.h](h.On success 0 is returned, on error -1 and the }(hj hhhNhNubj)}(h ``errno``h]herrno}(hj& hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubhM variable is set appropriately. The generic error codes are described at the }(hj hhhNhNubh)}(h':ref:`Generic Error Codes `h]j)}(hj: h]hGeneric Error Codes}(hj< hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj8 ubah}(h]h ]h"]h$]h&]refdocj$ refdomainjF reftyperef refexplicitrefwarnj9 gen-errorsuh1hhhhKhj ubh chapter.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubj)}(hhh](j)}(h,``ENODATA`` The EDID data is not available. h](j)}(h ``ENODATA``h]j)}(hjk h]hENODATA}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji ubah}(h]h ]h"]h$]h&]uh1jhhhKhje ubj)}(hhh]h)}(hThe EDID data is not available.h]hThe EDID data is not available.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhje ubeh}(h]h ]h"]h$]h&]uh1jhhhKhjb ubj)}(hJ``E2BIG`` The EDID data you provided is more than the hardware can handle.h](j)}(h ``E2BIG``h]j)}(hj h]hE2BIG}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhhhKhj ubj)}(hhh]h)}(h@The EDID data you provided is more than the hardware can handle.h]h@The EDID data you provided is more than the hardware can handle.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhhhKhjb hhubeh}(h]h ]h"]h$]h&]uh1jhj hhhhhNubeh}(h] return-valueah ]h"] return valueah$]h&]uh1hhhhhhhhKubeh}(h](Kioctl-vidioc-g-edid-vidioc-s-edid-vidioc-subdev-g-edid-vidioc-subdev-s-edidheh ]h"](Nioctl vidioc_g_edid, vidioc_s_edid, vidioc_subdev_g_edid, vidioc_subdev_s_edid vidioc_g_edideh$]h&]uh1hhhhhhhhKexpect_referenced_by_name}j hsexpect_referenced_by_id}hhsubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}h]hasnameids}(j hj j hhjjjjj j j j u nametypes}(j j hjjj j uh}(hhj hhhjjj j)jjjj jijnjjj jjj"j j j ju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j KsRparse_messages]transform_messages]hsystem_message)}(hhh]h)}(hhh]h3Hyperlink target "vidioc-g-edid" is not referenced.}hj| sbah}(h]h ]h"]h$]h&]uh1hhjy ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehlineKuh1jw uba transformerN include_log] decorationNhhub.