6sphinx.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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetC/translations/pt_BR/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_ROUTINGhNtauh1j%hjhhhNhNubhdesc)}(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}(hjOhhhNhNubah}(h]h ]nah"]h$]h&]uh1jMhjIubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jGhjChhhhhKubah}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1jAsphinx_line_type declaratorhj=hhhhhKubah}(h]j4ah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1j;hhhKhj8hhubh desc_content)}(hhh]h}(h]h ]h"]h$]h&]uh1jyhj8hhhhhKubeh}(h]h ](cmacroeh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1j6hhhjhNhNubh)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2%V4L.VIDIOC_SUBDEV_S_ROUTING (C macro)c.V4L.VIDIOC_SUBDEV_S_ROUTINGhNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hVIDIOC_SUBDEV_S_ROUTINGh]jB)}(hVIDIOC_SUBDEV_S_ROUTINGh]jH)}(hVIDIOC_SUBDEV_S_ROUTINGh]jN)}(hjh]hVIDIOC_SUBDEV_S_ROUTING}(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jMhjubah}(h]h ](j`jaeh"]h$]h&]hhuh1jGhjhhhhhKubah}(h]h ]h"]h$]h&]hhjkuh1jAjljmhjhhhhhKubah}(h]jah ](jqjreh"]h$]h&]jvjw)jxhuh1j;hhhKhjhhubjz)}(hhh]h}(h]h ]h"]h$]h&]uh1jyhjhhhhhKubeh}(h]h ](jmacroeh"]h$]h&]jjjjjjjjjuh1j6hhhjhNhNubh)}(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)}(hj6h]hfd}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1j2hhhKhj.ubh definition)}(hhh]h)}(h6File descriptor returned by :ref:`open() `.h](hFile descriptor returned by }(hjPhhhNhNubh)}(h:ref:`open() `h]hinline)}(hjZh]hopen()}(hj^hhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1j\hjXubah}(h]h ]h"]h$]h&]refdoc/userspace-api/media/v4l/vidioc-subdev-g-routing refdomainjireftyperef refexplicitrefwarn reftarget func-openuh1hhhhKhjPubh.}(hjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjMubah}(h]h ]h"]h$]h&]uh1jKhj.ubeh}(h]h ]h"]h$]h&]uh1j,hhhKhj)ubj-)}(h;``argp`` Pointer to struct :c:type:`v4l2_subdev_routing`. h](j3)}(h``argp``h]j)}(hjh]hargp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1j2hhhK#hjubjL)}(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 ](jhjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarn c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)} identifierV4LsbNasbj{v4l2_subdev_routinguh1hhhhK"hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK"hjubah}(h]h ]h"]h$]h&]uh1jKhjubeh}(h]h ]h"]h$]h&]uh1j,hhhK#hj)hhubeh}(h]h ]h"]h$]h&]uh1j'hjhhhhhNubeh}(h] argumentsah ]h"] argumentsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhK&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(hj hhubh)}(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 }(hj*hhhNhNubj)}(h``VIDIOC_SUBDEV_G_ROUTING``h]hVIDIOC_SUBDEV_G_ROUTING}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubh= ioctl and application may enable or disable routes with the }(hj*hhhNhNubj)}(h``VIDIOC_SUBDEV_S_ROUTING``h]hVIDIOC_SUBDEV_S_ROUTING}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubhJ ioctl, by adding or removing routes and setting or clearing flags of the }(hj*hhhNhNubj)}(h ``flags``h]hflags}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubh field of a struct }(hj*hhhNhNubh)}(h:c:type:`v4l2_subdev_route`h]j)}(hjjh]hv4l2_subdev_route}(hjlhhhNhNubah}(h]h ](jhjc-typeeh"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnjjj{v4l2_subdev_routeuh1hhhhK+hj*ubh. Similarly to }(hj*hhhNhNubj)}(h``VIDIOC_SUBDEV_G_ROUTING``h]hVIDIOC_SUBDEV_G_ROUTING}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubh, also }(hj*hhhNhNubj)}(h``VIDIOC_SUBDEV_S_ROUTING``h]hVIDIOC_SUBDEV_S_ROUTING}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubh% returns the routes back to the user.}(hj*hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK+hj hhubh)}(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&]uh1hhhhK2hj hhubh)}(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&]uh1hhhhK6hj hhubh)}(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&]uh1hhhhK8hj hhubh)}(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 }(hj'hhhNhNubj)}(h``num_routes``h]h num_routes}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubh@ field indicates the number of routes in the routing table. For }(hj'hhhNhNubj)}(h``VIDIOC_SUBDEV_S_ROUTING``h]hVIDIOC_SUBDEV_S_ROUTING}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubhT, it is set by userspace to the number of routes that the application stored in the }(hj'hhhNhNubj)}(h ``routes``h]hroutes}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubh 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 }(hj'hhhNhNubj)}(h``num_routes``h]h num_routes}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubh set by the application for }(hj'hhhNhNubj)}(h``VIDIOC_SUBDEV_S_ROUTING``h]hVIDIOC_SUBDEV_S_ROUTING}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubh4, as drivers may adjust the requested routing table.}(hj'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK=hj hhubh)}(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 }(hjhhhNhNubj)}(h``num_routes``h]h num_routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh value larger than }(hjhhhNhNubj)}(h``len_routes``h]h len_routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh[ from both ioctls. This indicates thare are more routes in the routing table than fits the }(hjhhhNhNubj)}(h ``routes``h]hroutes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh array. In this case, the }(hjhhhNhNubj)}(h ``routes``h]hroutes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh. array is filled by the kernel with the first }(hjhhhNhNubj)}(h``len_routes``h]h len_routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh 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 }(hjhhhNhNubj)}(h``VIDIOC_SUBDEV_G_ROUTING``h]hVIDIOC_SUBDEV_G_ROUTING}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh call with a large enough }(hjhhhNhNubj)}(h ``routes``h]hroutes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh array.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKEhj hhubh)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh2 may return more routes than the user provided in }(hjhhhNhNubj)}(h``num_routes``h]h num_routes}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh' field due to e.g. hardware properties.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKMhj hhubhtabular_col_spec)}(hhh]h}(h]h ]h"]h$]h&]spec|p{4.4cm}|p{4.4cm}|p{8.7cm}|uh1jIhhhKPhj hhubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2 V4L.v4l2_subdev_routing (C type)c.V4L.v4l2_subdev_routinghNtauh1j%hj hhhNhNubj7)}(hhh](j<)}(hv4l2_subdev_routingh]jB)}(htype v4l2_subdev_routingh](hdesc_sig_keyword)}(htypeh]htype}(hjqhhhNhNubah}(h]h ]kah"]h$]h&]uh1johjkhhhhhKRubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjkhhhhhKRubjH)}(hv4l2_subdev_routingh]jN)}(hjih]hv4l2_subdev_routing}(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jMhjubah}(h]h ](j`jaeh"]h$]h&]hhuh1jGhjkhhhhhKRubeh}(h]h ]h"]h$]h&]hhjkuh1jAjljmhjghhhhhKRubah}(h]jbah ](jqjreh"]h$]h&]jvjw)jxhuh1j;hhhKRhjdhhubjz)}(hhh]h}(h]h ]h"]h$]h&]uh1jyhjdhhhhhKRubeh}(h]h ](jtypeeh"]h$]h&]jjjjjjjjjuh1j6hhhj hNhNubhtable)}(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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKYhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h ``which``h]j)}(hj$h]hwhich}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1hhhhKZhjubah}(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 }(hjBhhhNhNubh)}(h<:ref:`v4l2_subdev_format_whence `h]j])}(hjLh]hv4l2_subdev_format_whence}(hjNhhhNhNubah}(h]h ](jhstdstd-refeh"]h$]h&]uh1j\hjJubah}(h]h ]h"]h$]h&]refdocju refdomainjXreftyperef refexplicitrefwarnj{v4l2-subdev-format-whenceuh1hhhhK[hjBubh.}(hjBhhhNhNubeh}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(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&]uh1jhjubj)}(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&]uh1jhjubeh}(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 ](jhjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnjjj{v4l2_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 }(hj3hhhNhNubh)}(h:c:type:`v4l2_subdev_route`h]j)}(hj=h]hv4l2_subdev_route}(hj?hhhNhNubah}(h]h ](jhjc-typeeh"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnjjj{v4l2_subdev_routeuh1hhhhKbhj3ubh entries}(hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKbhj0ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchjsubah}(h]h ]h"]h$]h&]uh1jhjpubj)}(hhh]h)}(h``num_routes``h]j)}(hjh]h num_routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKdhjubah}(h]h ]h"]h$]h&]uh1jhjpubj)}(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&]uh1jhjpubeh}(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.}(hj hhhNhNubah}(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&]uh1jhj hhhNhNubjJ)}(hhh]h}(h]h ]h"]h$]h&]jT|p{4.4cm}|p{4.4cm}|p{8.7cm}|uh1jIhhhKkhj hhubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2V4L.v4l2_subdev_route (C type)c.V4L.v4l2_subdev_routehNtauh1j%hj hhhNhNubj7)}(hhh](j<)}(hv4l2_subdev_routeh]jB)}(htype v4l2_subdev_routeh](jp)}(hjsh]htype}(hjZhhhNhNubah}(h]h ]j|ah"]h$]h&]uh1johjVhhhhhKmubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhhhKmubjH)}(hv4l2_subdev_routeh]jN)}(hjTh]hv4l2_subdev_route}(hjyhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jMhjuubah}(h]h ](j`jaeh"]h$]h&]hhuh1jGhjVhhhhhKmubeh}(h]h ]h"]h$]h&]hhjkuh1jAjljmhjRhhhhhKmubah}(h]jMah ](jqjreh"]h$]h&]jvjw)jxhuh1j;hhhKmhjOhhubjz)}(hhh]h}(h]h ]h"]h$]h&]uh1jyhjOhhhhhKmubeh}(h]h ](jtypeeh"]h$]h&]jjjjjjjjjuh1j6hhhj hNhNubj)}(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&]uh1hhhhKwhj7 ubah}(h]h ]h"]h$]h&]uh1jhj4 ubj)}(hhh]h)}(h``sink_stream``h]j)}(hjS h]h sink_stream}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQ ubah}(h]h ]h"]h$]h&]uh1hhhhKxhjN ubah}(h]h ]h"]h$]h&]uh1jhj4 ubj)}(hhh]h)}(hSink pad stream number.h]hSink pad stream number.}(hjq hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKyhjn ubah}(h]h ]h"]h$]h&]uh1jhj4 ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKzhj ubah}(h]h ]h"]h$]h&]uh1jhj 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&]uh1jhj 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&]uh1jhj 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&]uh1jhj9 ubj)}(hhh]h)}(h ``flags``h]j)}(hjX h]hflags}(hjZ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV ubah}(h]h ]h"]h$]h&]uh1hhhhKhjS ubah}(h]h ]h"]h$]h&]uh1jhj9 ubj)}(hhh]h)}(hXRoute enable/disable flags :ref:`v4l2_subdev_routing_flags `.h](hRoute enable/disable flags }(hjv hhhNhNubh)}(h<:ref:`v4l2_subdev_routing_flags `h]j])}(hj h]hv4l2_subdev_routing_flags}(hj hhhNhNubah}(h]h ](jhstdstd-refeh"]h$]h&]uh1j\hj~ ubah}(h]h ]h"]h$]h&]refdocju refdomainj reftyperef refexplicitrefwarnj{v4l2-subdev-routing-flagsuh1hhhhKhjv ubh.}(hjv hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjs ubah}(h]h ]h"]h$]h&]uh1jhj9 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&]uh1jhj hhhNhNubjJ)}(hhh]h}(h]h ]h"]h$]h&]jT|p{6.6cm}|p{2.2cm}|p{8.7cm}|uh1jIhhhKhj hhubh)}(h.. _v4l2-subdev-routing-flags:h]h}(h]h ]h"]h$]h&]hԌv4l2-subdev-routing-flagsuh1hhKhj hhhhubj)}(hhh](h)}(henum v4l2_subdev_routing_flagsh]henum v4l2_subdev_routing_flags}(hj< hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj9 ubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjJ ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjJ ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjJ ubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hV4L2_SUBDEV_ROUTE_FL_ACTIVEh]hV4L2_SUBDEV_ROUTE_FL_ACTIVE}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjq ubah}(h]h ]h"]h$]h&]uh1jhjn ubj)}(hhh]h)}(h0x0001h]h0x0001}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjn 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&]uh1jhjn ubeh}(h]h ]h"]h$]h&]uh1jhjk ubah}(h]h ]h"]h$]h&]uh1jhjJ ubeh}(h]h ]h"]h$]h&]colsKuh1jhj9 ubeh}(h](id3j8 eh ]h"]v4l2-subdev-routing-flagsah$]h&]uh1jhj hhhNhNexpect_referenced_by_name}j j. sexpect_referenced_by_id}j8 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]j])}(hj h]hGeneric Error Codes}(hj hhhNhNubah}(h]h ](jhstdstd-refeh"]h$]h&]uh1j\hj ubah}(h]h ]h"]h$]h&]refdocju refdomainj reftyperef refexplicitrefwarnj{ gen-errorsuh1hhhhKhj ubh chapter.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubj()}(hhh](j-)}(hXMEINVAL 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), the ``which`` field has an unsupported value, or, for ``VIDIOC_SUBDEV_S_ROUTING``, the num_routes field set by the application is larger than the len_routes field value. h](j3)}(hEINVALh]hEINVAL}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1j2hhhKhj5 ubjL)}(hhh]h)}(hXEThe 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), the ``which`` field has an unsupported value, or, for ``VIDIOC_SUBDEV_S_ROUTING``, the num_routes field set by the application is larger than the len_routes field 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), the }(hjJ hhhNhNubj)}(h ``which``h]hwhich}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ ubh) field has an unsupported value, or, for }(hjJ hhhNhNubj)}(h``VIDIOC_SUBDEV_S_ROUTING``h]hVIDIOC_SUBDEV_S_ROUTING}(hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ ubhX, the num_routes field set by the application is larger than the len_routes field value.}(hjJ hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjG ubah}(h]h ]h"]h$]h&]uh1jKhj5 ubeh}(h]h ]h"]h$]h&]uh1j,hhhKhj2 ubj-)}(hENXIO The application requested routes cannot be created or the state of the specified routes cannot be modified. Only returned for ``VIDIOC_SUBDEV_S_ROUTING``. h](j3)}(hENXIOh]hENXIO}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j2hhhKhj ubjL)}(hhh]h)}(hThe application requested routes cannot be created or the state of the specified routes cannot be modified. Only returned for ``VIDIOC_SUBDEV_S_ROUTING``.h](h~The application requested routes cannot be created or the state of the specified routes cannot be modified. Only returned for }(hj hhhNhNubj)}(h``VIDIOC_SUBDEV_S_ROUTING``h]hVIDIOC_SUBDEV_S_ROUTING}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jKhj ubeh}(h]h ]h"]h$]h&]uh1j,hhhKhj2 hhubj-)}(hE2BIG The application provided ``num_routes`` for ``VIDIOC_SUBDEV_S_ROUTING`` is larger than the number of routes the driver can handle.h](j3)}(hE2BIGh]hE2BIG}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j2hhhKhj ubjL)}(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 }(hj hhhNhNubj)}(h``num_routes``h]h num_routes}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh for }(hj hhhNhNubj)}(h``VIDIOC_SUBDEV_S_ROUTING``h]hVIDIOC_SUBDEV_S_ROUTING}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh; is larger than the number of routes the driver can handle.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jKhj ubeh}(h]h ]h"]h$]h&]uh1j,hhhKhj2 hhubeh}(h]h ]h"]h$]h&]uh1j'hj 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 }j0 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_handlerjW error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _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]haj8 ]j. aunameids}(j0 hj/ j, jjjjjjj j j j8 j' j$ u nametypes}(j0 j/ jjjj j j' uh}(hhj, hjhjjj4j=jjjjj j jbjgjMjRj8 j9 j$ j j2jj jj j9 u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}je 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&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehnjlineKuh1j ubj )}(hhh]h)}(hhh]h?Hyperlink target "v4l2-subdev-routing-flags" is not referenced.}hj sbah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypej sourcehnjlineKuh1j ube transformerN include_log] decorationNhhub.