rsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftargetC/translations/zh_CN/userspace-api/media/v4l/vidioc-subdev-g-routingmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetC/translations/zh_TW/userspace-api/media/v4l/vidioc-subdev-g-routingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetC/translations/it_IT/userspace-api/media/v4l/vidioc-subdev-g-routingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetC/translations/ja_JP/userspace-api/media/v4l/vidioc-subdev-g-routingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetC/translations/ko_KR/userspace-api/media/v4l/vidioc-subdev-g-routingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetC/translations/sp_SP/userspace-api/media/v4l/vidioc-subdev-g-routingmodnameN 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:spacepreserveuh1hhhhhh]/var/lib/git/docbuild/linux/Documentation/userspace-api/media/v4l/vidioc-subdev-g-routing.rsthKubhtarget)}(h.. _VIDIOC_SUBDEV_G_ROUTING:h]h}(h]h ]h"]h$]h&]refidvidioc-subdev-g-routinguh1hhKhhhhhhubhsection)}(hhh](htitle)}(h6ioctl VIDIOC_SUBDEV_G_ROUTING, VIDIOC_SUBDEV_S_ROUTINGh]h6ioctl VIDIOC_SUBDEV_G_ROUTING, VIDIOC_SUBDEV_S_ROUTING}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hNameh]hName}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh paragraph)}(hwVIDIOC_SUBDEV_G_ROUTING - VIDIOC_SUBDEV_S_ROUTING - Get or set routing between streams of media pads in a media entity.h]hwVIDIOC_SUBDEV_G_ROUTING - VIDIOC_SUBDEV_S_ROUTING - Get or set routing between streams of media pads in a media entity.}(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](single%V4L.VIDIOC_SUBDEV_G_ROUTING (C macro)c.V4L.VIDIOC_SUBDEV_G_ROUTINGhNtauh1jhjhhhNhNubhdesc)}(hhh](hdesc_signature)}(hVIDIOC_SUBDEV_G_ROUTINGh]hdesc_signature_line)}(hVIDIOC_SUBDEV_G_ROUTINGh]h desc_name)}(hVIDIOC_SUBDEV_G_ROUTINGh]h desc_sig_name)}(hj+h]hVIDIOC_SUBDEV_G_ROUTING}(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)}(hP``int ioctl(int fd, VIDIOC_SUBDEV_G_ROUTING, struct v4l2_subdev_routing *argp)``h]hliteral)}(hjh]hLint ioctl(int fd, VIDIOC_SUBDEV_G_ROUTING, struct v4l2_subdev_routing *argp)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%V4L.VIDIOC_SUBDEV_S_ROUTING (C macro)c.V4L.VIDIOC_SUBDEV_S_ROUTINGhNtauh1jhjhhhNhNubj#)}(hhh](j()}(hVIDIOC_SUBDEV_S_ROUTINGh]j.)}(hVIDIOC_SUBDEV_S_ROUTINGh]j4)}(hVIDIOC_SUBDEV_S_ROUTINGh]j:)}(hjh]hVIDIOC_SUBDEV_S_ROUTING}(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)}(hP``int ioctl(int fd, VIDIOC_SUBDEV_S_ROUTING, struct v4l2_subdev_routing *argp)``h]j)}(hjh]hLint ioctl(int fd, VIDIOC_SUBDEV_S_ROUTING, struct v4l2_subdev_routing *argp)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]synopsisah ]h"]synopsisah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Argumentsh]h Arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubhdefinition_list)}(hhh](hdefinition_list_item)}(h>``fd`` File descriptor returned by :ref:`open() `. h](hterm)}(h``fd``h]j)}(hj"h]hfd}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhhhKhjubh definition)}(hhh]h)}(h6File descriptor returned by :ref:`open() `.h](hFile descriptor returned by }(hj<hhhNhNubh)}(h:ref:`open() `h]hinline)}(hjFh]hopen()}(hjJhhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1jHhjDubah}(h]h ]h"]h$]h&]refdoc/userspace-api/media/v4l/vidioc-subdev-g-routing refdomainjUreftyperef refexplicitrefwarn reftarget func-openuh1hhhhKhj<ubh.}(hj<hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj9ubah}(h]h ]h"]h$]h&]uh1j7hjubeh}(h]h ]h"]h$]h&]uh1jhhhKhjubj)}(h;``argp`` Pointer to struct :c:type:`v4l2_subdev_routing`. h](j)}(h``argp``h]j)}(hjh]hargp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhhhK#hjubj8)}(hhh]h)}(h0Pointer to struct :c:type:`v4l2_subdev_routing`.h](hPointer to struct }(hjhhhNhNubh)}(h:c:type:`v4l2_subdev_routing`h]j)}(hjh]hv4l2_subdev_routing}(hjhhhNhNubah}(h]h ](jTjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocja refdomainjsreftypetype refexplicitrefwarn c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)} identifierV4LsbNasbjgv4l2_subdev_routinguh1hhhhK"hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK"hjubah}(h]h ]h"]h$]h&]uh1j7hjubeh}(h]h ]h"]h$]h&]uh1jhhhK#hjhhubeh}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h] argumentsah ]h"] argumentsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK&ubh)}(hThese ioctls are used to get and set the routing in a media entity. The routing configuration determines the flows of data inside an entity.h]hThese ioctls are used to get and set the routing in a media entity. The routing configuration determines the flows of data inside an entity.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjhhubh)}(hXDrivers report their current routing tables using the ``VIDIOC_SUBDEV_G_ROUTING`` ioctl and application may enable or disable routes with the ``VIDIOC_SUBDEV_S_ROUTING`` ioctl, by adding or removing routes and setting or clearing flags of the ``flags`` field of a struct :c:type:`v4l2_subdev_route`. Similarly to ``VIDIOC_SUBDEV_G_ROUTING``, also ``VIDIOC_SUBDEV_S_ROUTING`` returns the routes back to the user.h](h6Drivers report their current routing tables using the }(hjhhhNhNubj)}(h``VIDIOC_SUBDEV_G_ROUTING``h]hVIDIOC_SUBDEV_G_ROUTING}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh= ioctl and application may enable or disable routes with the }(hjhhhNhNubj)}(h``VIDIOC_SUBDEV_S_ROUTING``h]hVIDIOC_SUBDEV_S_ROUTING}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhJ ioctl, by adding or removing routes and setting or clearing flags of the }(hjhhhNhNubj)}(h ``flags``h]hflags}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field of a struct }(hjhhhNhNubh)}(h:c:type:`v4l2_subdev_route`h]j)}(hjVh]hv4l2_subdev_route}(hjXhhhNhNubah}(h]h ](jTjsc-typeeh"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]refdocja refdomainjsreftypetype refexplicitrefwarnjjjgv4l2_subdev_routeuh1hhhhK+hjubh. Similarly to }(hjhhhNhNubj)}(h``VIDIOC_SUBDEV_G_ROUTING``h]hVIDIOC_SUBDEV_G_ROUTING}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, also }(hjhhhNhNubj)}(h``VIDIOC_SUBDEV_S_ROUTING``h]hVIDIOC_SUBDEV_S_ROUTING}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh% returns the routes back to the user.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK+hjhhubh)}(hAll stream configurations are reset when ``VIDIOC_SUBDEV_S_ROUTING`` is called. This means that the userspace must reconfigure all stream formats and selections after calling the ioctl with e.g. ``VIDIOC_SUBDEV_S_FMT``.h](h)All stream configurations are reset when }(hjhhhNhNubj)}(h``VIDIOC_SUBDEV_S_ROUTING``h]hVIDIOC_SUBDEV_S_ROUTING}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is called. This means that the userspace must reconfigure all stream formats and selections after calling the ioctl with e.g. }(hjhhhNhNubj)}(h``VIDIOC_SUBDEV_S_FMT``h]hVIDIOC_SUBDEV_S_FMT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK2hjhhubh)}(hIOnly subdevices which have both sink and source pads can support routing.h]hIOnly subdevices which have both sink and source pads can support routing.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjhhubh)}(hThe ``len_routes`` field indicates the number of routes that can fit in the ``routes`` array allocated by userspace. It is set by applications for both ioctls to indicate how many routes the kernel can return, and is never modified by the kernel.h](hThe }(hjhhhNhNubj)}(h``len_routes``h]h len_routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh: field indicates the number of routes that can fit in the }(hjhhhNhNubj)}(h ``routes``h]hroutes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh array allocated by userspace. It is set by applications for both ioctls to indicate how many routes the kernel can return, and is never modified by the kernel.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK8hjhhubh)}(hXThe ``num_routes`` field indicates the number of routes in the routing table. For ``VIDIOC_SUBDEV_S_ROUTING``, it is set by userspace to the number of routes that the application stored in the ``routes`` array. For both ioctls, it is returned by the kernel and indicates how many routes are stored in the subdevice routing table. This may be smaller or larger than the value of ``num_routes`` set by the application for ``VIDIOC_SUBDEV_S_ROUTING``, as drivers may adjust the requested routing table.h](hThe }(hjhhhNhNubj)}(h``num_routes``h]h num_routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh@ field indicates the number of routes in the routing table. For }(hjhhhNhNubj)}(h``VIDIOC_SUBDEV_S_ROUTING``h]hVIDIOC_SUBDEV_S_ROUTING}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhT, it is set by userspace to the number of routes that the application stored in the }(hjhhhNhNubj)}(h ``routes``h]hroutes}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh array. For both ioctls, it is returned by the kernel and indicates how many routes are stored in the subdevice routing table. This may be smaller or larger than the value of }(hjhhhNhNubj)}(h``num_routes``h]h num_routes}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh set by the application for }(hjhhhNhNubj)}(h``VIDIOC_SUBDEV_S_ROUTING``h]hVIDIOC_SUBDEV_S_ROUTING}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh4, as drivers may adjust the requested routing table.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK=hjhhubh)}(hX The kernel can return a ``num_routes`` value larger than ``len_routes`` from both ioctls. This indicates thare are more routes in the routing table than fits the ``routes`` array. In this case, the ``routes`` array is filled by the kernel with the first ``len_routes`` entries of the subdevice routing table. This is not considered to be an error, and the ioctl call succeeds. If the applications wants to retrieve the missing routes, it can issue a new ``VIDIOC_SUBDEV_G_ROUTING`` call with a large enough ``routes`` array.h](hThe kernel can return a }(hj{hhhNhNubj)}(h``num_routes``h]h num_routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubh value larger than }(hj{hhhNhNubj)}(h``len_routes``h]h len_routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubh[ from both ioctls. This indicates thare are more routes in the routing table than fits the }(hj{hhhNhNubj)}(h ``routes``h]hroutes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubh array. In this case, the }(hj{hhhNhNubj)}(h ``routes``h]hroutes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubh. array is filled by the kernel with the first }(hj{hhhNhNubj)}(h``len_routes``h]h len_routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubh entries of the subdevice routing table. This is not considered to be an error, and the ioctl call succeeds. If the applications wants to retrieve the missing routes, it can issue a new }(hj{hhhNhNubj)}(h``VIDIOC_SUBDEV_G_ROUTING``h]hVIDIOC_SUBDEV_G_ROUTING}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubh call with a large enough }(hj{hhhNhNubj)}(h ``routes``h]hroutes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubh array.}(hj{hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKEhjhhubh)}(h``VIDIOC_SUBDEV_S_ROUTING`` may return more routes than the user provided in ``num_routes`` field due to e.g. hardware properties.h](j)}(h``VIDIOC_SUBDEV_S_ROUTING``h]hVIDIOC_SUBDEV_S_ROUTING}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh2 may return more routes than the user provided in }(hjhhhNhNubj)}(h``num_routes``h]h num_routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh' field due to e.g. hardware properties.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKMhjhhubhtabular_col_spec)}(hhh]h}(h]h ]h"]h$]h&]spec|p{4.4cm}|p{4.4cm}|p{8.7cm}|uh1j5hhhKPhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j V4L.v4l2_subdev_routing (C type)c.V4L.v4l2_subdev_routinghNtauh1jhjhhhNhNubj#)}(hhh](j()}(hv4l2_subdev_routingh]j.)}(htype v4l2_subdev_routingh](hdesc_sig_keyword)}(htypeh]htype}(hj]hhhNhNubah}(h]h ]kah"]h$]h&]uh1j[hjWhhhhhKRubhdesc_sig_space)}(h h]h }(hjnhhhNhNubah}(h]h ]wah"]h$]h&]uh1jlhjWhhhhhKRubj4)}(hv4l2_subdev_routingh]j:)}(hjUh]hv4l2_subdev_routing}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j9hj}ubah}(h]h ](jLjMeh"]h$]h&]hhuh1j3hjWhhhhhKRubeh}(h]h ]h"]h$]h&]hhjWuh1j-jXjYhjShhhhhKRubah}(h]jNah ](j]j^eh"]h$]h&]jbjc)jdhuh1j'hhhKRhjPhhubjf)}(hhh]h}(h]h ]h"]h$]h&]uh1jehjPhhhhhKRubeh}(h]h ](jstypeeh"]h$]h&]jxjsjyjjzjj{j|j}uh1j"hhhjhNhNubhtable)}(hhh](h)}(hstruct v4l2_subdev_routingh]hstruct v4l2_subdev_routing}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKThjubhtgroup)}(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&]uh1hhhhKYhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h ``which``h]j)}(hjh]hwhich}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKZhj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(heRouting table to be accessed, from enum :ref:`v4l2_subdev_format_whence `.h](h(Routing table to be accessed, from enum }(hj.hhhNhNubh)}(h<:ref:`v4l2_subdev_format_whence `h]jI)}(hj8h]hv4l2_subdev_format_whence}(hj:hhhNhNubah}(h]h ](jTstdstd-refeh"]h$]h&]uh1jHhj6ubah}(h]h ]h"]h$]h&]refdocja refdomainjDreftyperef refexplicitrefwarnjgv4l2-subdev-format-whenceuh1hhhhK[hj.ubh.}(hj.hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK[hj+ubah}(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&]uh1hhhhK]hjoubah}(h]h ]h"]h$]h&]uh1jhjlubj)}(hhh]h)}(h``len_routes``h]j)}(hjh]h len_routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhK^hjubah}(h]h ]h"]h$]h&]uh1jhjlubj)}(hhh]h)}(h=The length of the array (as in memory reserved for the array)h]h=The length of the array (as in memory reserved for the array)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hjubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h"struct :c:type:`v4l2_subdev_route`h](hstruct }(hjhhhNhNubh)}(h:c:type:`v4l2_subdev_route`h]j)}(hjh]hv4l2_subdev_route}(hjhhhNhNubah}(h]h ](jTjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocja refdomainjsreftypetype refexplicitrefwarnjjjgv4l2_subdev_routeuh1hhhhK`hjubeh}(h]h ]h"]h$]h&]uh1hhhhK`hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h ``routes[]``h]j)}(hjh]hroutes[]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKahjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h3Array of struct :c:type:`v4l2_subdev_route` entriesh](hArray of struct }(hjhhhNhNubh)}(h:c:type:`v4l2_subdev_route`h]j)}(hj)h]hv4l2_subdev_route}(hj+hhhNhNubah}(h]h ](jTjsc-typeeh"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]refdocja refdomainjsreftypetype refexplicitrefwarnjjjgv4l2_subdev_routeuh1hhhhKbhjubh entries}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKbhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchj_ubah}(h]h ]h"]h$]h&]uh1jhj\ubj)}(hhh]h)}(h``num_routes``h]j)}(hj{h]h num_routes}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1hhhhKdhjvubah}(h]h ]h"]h$]h&]uh1jhj\ubj)}(hhh]h)}(h%Number of entries of the routes arrayh]h%Number of entries of the routes array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehjubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``reserved``\ [11]h](j)}(h ``reserved``h]hreserved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh [11]}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKghjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubeh}(h]id1ah ]h"]h$]h&]uh1jhjhhhNhNubj6)}(hhh]h}(h]h ]h"]h$]h&]j@|p{4.4cm}|p{4.4cm}|p{8.7cm}|uh1j5hhhKkhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jV4L.v4l2_subdev_route (C type)c.V4L.v4l2_subdev_routehNtauh1jhjhhhNhNubj#)}(hhh](j()}(hv4l2_subdev_routeh]j.)}(htype v4l2_subdev_routeh](j\)}(hj_h]htype}(hjFhhhNhNubah}(h]h ]jhah"]h$]h&]uh1j[hjBhhhhhKmubjm)}(h h]h }(hjShhhNhNubah}(h]h ]jyah"]h$]h&]uh1jlhjBhhhhhKmubj4)}(hv4l2_subdev_routeh]j:)}(hj@h]hv4l2_subdev_route}(hjehhhNhNubah}(h]h ]jEah"]h$]h&]uh1j9hjaubah}(h]h ](jLjMeh"]h$]h&]hhuh1j3hjBhhhhhKmubeh}(h]h ]h"]h$]h&]hhjWuh1j-jXjYhj>hhhhhKmubah}(h]j9ah ](j]j^eh"]h$]h&]jbjc)jdhuh1j'hhhKmhj;hhubjf)}(hhh]h}(h]h ]h"]h$]h&]uh1jehj;hhhhhKmubeh}(h]h ](jstypeeh"]h$]h&]jxjsjyjjzjj{j|j}uh1j"hhhjhNhNubj)}(hhh](h)}(hstruct v4l2_subdev_routeh]hstruct v4l2_subdev_route}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKohjubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h ``sink_pad``h]j)}(hjh]hsink_pad}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKuhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hSink pad number.h]hSink pad number.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKvhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hj& hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhj# ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h``sink_stream``h]j)}(hj? h]h sink_stream}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj= ubah}(h]h ]h"]h$]h&]uh1hhhhKxhj: ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hSink pad stream number.h]hSink pad stream number.}(hj] hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKyhjZ ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKzhjz ubah}(h]h ]h"]h$]h&]uh1jhjw ubj)}(hhh]h)}(h``source_pad``h]j)}(hj h]h source_pad}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhK{hj ubah}(h]h ]h"]h$]h&]uh1jhjw ubj)}(hhh]h)}(hSource pad number.h]hSource pad number.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK|hj ubah}(h]h ]h"]h$]h&]uh1jhjw ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK}hj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h``source_stream``h]j)}(hj h]h source_stream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhK~hj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hSource pad stream number.h]hSource pad stream number.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hj+ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj( ubah}(h]h ]h"]h$]h&]uh1jhj% ubj)}(hhh]h)}(h ``flags``h]j)}(hjD h]hflags}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB ubah}(h]h ]h"]h$]h&]uh1hhhhKhj? ubah}(h]h ]h"]h$]h&]uh1jhj% ubj)}(hhh]h)}(hXRoute enable/disable flags :ref:`v4l2_subdev_routing_flags `.h](hRoute enable/disable flags }(hjb hhhNhNubh)}(h<:ref:`v4l2_subdev_routing_flags `h]jI)}(hjl h]hv4l2_subdev_routing_flags}(hjn hhhNhNubah}(h]h ](jTstdstd-refeh"]h$]h&]uh1jHhjj ubah}(h]h ]h"]h$]h&]refdocja refdomainjx reftyperef refexplicitrefwarnjgv4l2-subdev-routing-flagsuh1hhhhKhjb ubh.}(hjb hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj_ ubah}(h]h ]h"]h$]h&]uh1jhj% ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h``reserved``\ [5]h](j)}(h ``reserved``h]hreserved}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh [5]}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj 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.}(hj hhhNhNubah}(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]id2ah ]h"]h$]h&]uh1jhjhhhNhNubj6)}(hhh]h}(h]h ]h"]h$]h&]j@|p{6.6cm}|p{2.2cm}|p{8.7cm}|uh1j5hhhKhjhhubh)}(h.. _v4l2-subdev-routing-flags:h]h}(h]h ]h"]h$]h&]hv4l2-subdev-routing-flagsuh1hhKhjhhhhubj)}(hhh](h)}(henum v4l2_subdev_routing_flagsh]henum v4l2_subdev_routing_flags}(hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj% ubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj6 ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj6 ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj6 ubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hV4L2_SUBDEV_ROUTE_FL_ACTIVEh]hV4L2_SUBDEV_ROUTE_FL_ACTIVE}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj] ubah}(h]h ]h"]h$]h&]uh1jhjZ ubj)}(hhh]h)}(h0x0001h]h0x0001}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjt ubah}(h]h ]h"]h$]h&]uh1jhjZ ubj)}(hhh]h)}(h*The route is enabled. Set by applications.h]h*The route is enabled. Set by applications.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjZ ubeh}(h]h ]h"]h$]h&]uh1jhjW ubah}(h]h ]h"]h$]h&]uh1jhj6 ubeh}(h]h ]h"]h$]h&]colsKuh1jhj% ubeh}(h](id3j$ eh ]h"]v4l2-subdev-routing-flagsah$]h&]uh1jhjhhhNhNexpect_referenced_by_name}j j sexpect_referenced_by_id}j$ j subeh}(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]jI)}(hj h]hGeneric Error Codes}(hj hhhNhNubah}(h]h ](jTstdstd-refeh"]h$]h&]uh1jHhj ubah}(h]h ]h"]h$]h&]refdocja refdomainj reftyperef refexplicitrefwarnjg gen-errorsuh1hhhhKhj ubh chapter.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubj)}(hhh](j)}(hEINVAL The sink or source pad identifiers reference a non-existing pad or reference pads of different types (ie. the sink_pad identifiers refers to a source pad), or the ``which`` field has an unsupported value. h](j)}(hEINVALh]hEINVAL}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhj! ubj8)}(hhh]h)}(hThe sink or source pad identifiers reference a non-existing pad or reference pads of different types (ie. the sink_pad identifiers refers to a source pad), or the ``which`` field has an unsupported value.h](hThe sink or source pad identifiers reference a non-existing pad or reference pads of different types (ie. the sink_pad identifiers refers to a source pad), or the }(hj6 hhhNhNubj)}(h ``which``h]hwhich}(hj> hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6 ubh field has an unsupported value.}(hj6 hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj3 ubah}(h]h ]h"]h$]h&]uh1j7hj! ubeh}(h]h ]h"]h$]h&]uh1jhhhKhj ubj)}(hE2BIG The application provided ``num_routes`` for ``VIDIOC_SUBDEV_S_ROUTING`` is larger than the number of routes the driver can handle.h](j)}(hE2BIGh]hE2BIG}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjb ubj8)}(hhh]h)}(hThe application provided ``num_routes`` for ``VIDIOC_SUBDEV_S_ROUTING`` is larger than the number of routes the driver can handle.h](hThe application provided }(hjw hhhNhNubj)}(h``num_routes``h]h num_routes}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw ubh for }(hjw hhhNhNubj)}(h``VIDIOC_SUBDEV_S_ROUTING``h]hVIDIOC_SUBDEV_S_ROUTING}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw ubh; is larger than the number of routes the driver can handle.}(hjw hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjt ubah}(h]h ]h"]h$]h&]uh1j7hjb ubeh}(h]h ]h"]h$]h&]uh1jhhhKhj hhubeh}(h]h ]h"]h$]h&]uh1jhj hhhhhNubeh}(h] return-valueah ]h"] return valueah$]h&]uh1hhhhhhhhKubeh}(h](5ioctl-vidioc-subdev-g-routing-vidioc-subdev-s-routingheh ]h"](6ioctl vidioc_subdev_g_routing, vidioc_subdev_s_routingvidioc_subdev_g_routingeh$]h&]uh1hhhhhhhhKj }j hsj }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]haj$ ]j aunameids}(j hj j hhjjjjj j j j$ j j u nametypes}(j j hjjj j j uh}(hhj hhhjjj j)jjjjj jjNjSj9j>j$ j% j j jjj jj j% u 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]h=Hyperlink target "vidioc-subdev-g-routing" is not referenced.}hj[ sbah}(h]h ]h"]h$]h&]uh1hhjX ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehlineKuh1jV ubjW )}(hhh]h)}(hhh]h?Hyperlink target "v4l2-subdev-routing-flags" is not referenced.}hjv sbah}(h]h ]h"]h$]h&]uh1hhjs ubah}(h]h ]h"]h$]h&]levelKtypejp sourcehlineKuh1jV ube transformerN include_log] decorationNhhub.