€•Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ,/translations/zh_CN/driver-api/media/mc-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/zh_TW/driver-api/media/mc-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/it_IT/driver-api/media/mc-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ja_JP/driver-api/media/mc-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ko_KR/driver-api/media/mc-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/pt_BR/driver-api/media/mc-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/sp_SP/driver-api/media/mc-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒF/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒMedia Controller devices”h]”hŒMedia Controller devices”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒMedia Controller”h]”hŒMedia Controller”…”�”}”(hhàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÝh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒ»The media controller userspace API is documented in :ref:`the Media Controller uAPI book `. This document focus on the kernel-side implementation of the media framework.”h]”(hŒ4The media controller userspace API is documented in ”…”�”}”(hhðh²hh³Nh´Nubh)�”}”(hŒ8:ref:`the Media Controller uAPI book `”h]”hŒinline”“”)�”}”(hhúh]”hŒthe Media Controller uAPI book”…”�”}”(hhþh²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-ref”eh"]”h$]”h&]”uh1hühhøubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œdriver-api/media/mc-core”Œ refdomain”j Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆŒ reftarget”Œmedia_controller”uh1hh³hÇh´K hhðubhŒO. This document focus on the kernel-side implementation of the media framework.”…”�”}”(hhðh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K hhÝh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒAbstract media device model”h]”hŒAbstract media device model”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj'h²hh³hÇh´Kubhï)�”}”(hŒñDiscovering a device internal topology, and configuring it at runtime, is one of the goals of the media framework. To achieve this, hardware devices are modelled as an oriented graph of building blocks called entities connected through pads.”h]”hŒñDiscovering a device internal topology, and configuring it at runtime, is one of the goals of the media framework. To achieve this, hardware devices are modelled as an oriented graph of building blocks called entities connected through pads.”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khj'h²hubhï)�”}”(hX(An entity is a basic media hardware building block. It can correspond to a large variety of logical blocks such as physical hardware devices (CMOS sensor for instance), logical hardware devices (a building block in a System-on-Chip image processing pipeline), DMA channels or physical connectors.”h]”hX(An entity is a basic media hardware building block. It can correspond to a large variety of logical blocks such as physical hardware devices (CMOS sensor for instance), logical hardware devices (a building block in a System-on-Chip image processing pipeline), DMA channels or physical connectors.”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khj'h²hubhï)�”}”(hX A pad is a connection endpoint through which an entity can interact with other entities. Data (not restricted to video) produced by an entity flows from the entity's output to one or more entity inputs. Pads should not be confused with physical pins at chip boundaries.”h]”hXA pad is a connection endpoint through which an entity can interact with other entities. Data (not restricted to video) produced by an entity flows from the entity’s output to one or more entity inputs. Pads should not be confused with physical pins at chip boundaries.”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khj'h²hubhï)�”}”(hŒ A link is a point-to-point oriented connection between two pads, either on the same entity or on different entities. Data flows from a source pad to a sink pad.”h]”hŒ A link is a point-to-point oriented connection between two pads, either on the same entity or on different entities. Data flows from a source pad to a sink pad.”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K hj'h²hubeh}”(h]”Œabstract-media-device-model”ah ]”h"]”Œabstract media device model”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Media device”h]”hŒ Media device”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjxh²hh³hÇh´K%ubhï)�”}”(hXA media device is represented by a struct media_device instance, defined in ``include/media/media-device.h``. Allocation of the structure is handled by the media device driver, usually by embedding the :c:type:`media_device` instance in a larger driver-specific structure.”h]”(hŒLA media device is represented by a struct media_device instance, defined in ”…”�”}”(hj‰h²hh³Nh´NubhŒliteral”“”)�”}”(hŒ ``include/media/media-device.h``”h]”hŒinclude/media/media-device.h”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj‰ubhŒ^. Allocation of the structure is handled by the media device driver, usually by embedding the ”…”�”}”(hj‰h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hj§h]”hŒ media_device”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”(jŒc”Œc-type”eh"]”h$]”h&]”uh1j‘hj¥ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jŒ media_device”uh1hh³hÇh´K'hj‰ubhŒ0 instance in a larger driver-specific structure.”…”�”}”(hj‰h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K'hjxh²hubhï)�”}”(hX‘Drivers initialise media device instances by calling :c:func:`media_device_init()`. After initialising a media device instance, it is registered by calling :c:func:`__media_device_register()` via the macro ``media_device_register()`` and unregistered by calling :c:func:`media_device_unregister()`. An initialised media device must be eventually cleaned up by calling :c:func:`media_device_cleanup()`.”h]”(hŒ5Drivers initialise media device instances by calling ”…”�”}”(hjÏh²hh³Nh´Nubh)�”}”(hŒ:c:func:`media_device_init()`”h]”j’)�”}”(hjÙh]”hŒmedia_device_init()”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hj×ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_device_init”uh1hh³hÇh´K-hjÏubhŒJ. After initialising a media device instance, it is registered by calling ”…”�”}”(hjÏh²hh³Nh´Nubh)�”}”(hŒ#:c:func:`__media_device_register()`”h]”j’)�”}”(hjüh]”hŒ__media_device_register()”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjúubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒ__media_device_register”uh1hh³hÇh´K-hjÏubhŒ via the macro ”…”�”}”(hjÏh²hh³Nh´Nubj’)�”}”(hŒ``media_device_register()``”h]”hŒmedia_device_register()”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÏubhŒ and unregistered by calling ”…”�”}”(hjÏh²hh³Nh´Nubh)�”}”(hŒ#:c:func:`media_device_unregister()`”h]”j’)�”}”(hj1h]”hŒmedia_device_unregister()”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hj/ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_device_unregister”uh1hh³hÇh´K-hjÏubhŒG. An initialised media device must be eventually cleaned up by calling ”…”�”}”(hjÏh²hh³Nh´Nubh)�”}”(hŒ :c:func:`media_device_cleanup()`”h]”j’)�”}”(hjTh]”hŒmedia_device_cleanup()”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjRubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_device_cleanup”uh1hh³hÇh´K-hjÏubhŒ.”…”�”}”(hjÏh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K-hjxh²hubhï)�”}”(hŒ®Note that it is not allowed to unregister a media device instance that was not previously registered, or clean up a media device instance that was not previously initialised.”h]”hŒ®Note that it is not allowed to unregister a media device instance that was not previously registered, or clean up a media device instance that was not previously initialised.”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K4hjxh²hubeh}”(h]”Œ media-device”ah ]”h"]”Œ media device”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´K%ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒEntities”h]”hŒEntities”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj‘h²hh³hÇh´K9ubhï)�”}”(hXEntities are represented by a struct media_entity instance, defined in ``include/media/media-entity.h``. The structure is usually embedded into a higher-level structure, such as :c:type:`v4l2_subdev` or :c:type:`video_device` instances, although drivers can allocate entities directly.”h]”(hŒGEntities are represented by a struct media_entity instance, defined in ”…”�”}”(hj¢h²hh³Nh´Nubj’)�”}”(hŒ ``include/media/media-entity.h``”h]”hŒinclude/media/media-entity.h”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¢ubhŒK. The structure is usually embedded into a higher-level structure, such as ”…”�”}”(hj¢h²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_subdev`”h]”j’)�”}”(hj¾h]”hŒ v4l2_subdev”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj¼ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jŒ v4l2_subdev”uh1hh³hÇh´K;hj¢ubhŒ or ”…”�”}”(hj¢h²hh³Nh´Nubh)�”}”(hŒ:c:type:`video_device`”h]”j’)�”}”(hjáh]”hŒ video_device”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjßubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jŒ video_device”uh1hh³hÇh´K;hj¢ubhŒ< instances, although drivers can allocate entities directly.”…”�”}”(hj¢h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K;hj‘h²hubhï)�”}”(hŒMDrivers initialize entity pads by calling :c:func:`media_entity_pads_init()`.”h]”(hŒ*Drivers initialize entity pads by calling ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ":c:func:`media_entity_pads_init()`”h]”j’)�”}”(hjh]”hŒmedia_entity_pads_init()”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_entity_pads_init”uh1hh³hÇh´KAhjubhŒ.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KAhj‘h²hubhï)�”}”(hŒ©Drivers register entities with a media device by calling :c:func:`media_device_register_entity()` and unregistered by calling :c:func:`media_device_unregister_entity()`.”h]”(hŒ9Drivers register entities with a media device by calling ”…”�”}”(hj9h²hh³Nh´Nubh)�”}”(hŒ(:c:func:`media_device_register_entity()`”h]”j’)�”}”(hjCh]”hŒmedia_device_register_entity()”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjAubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_device_register_entity”uh1hh³hÇh´KDhj9ubhŒ and unregistered by calling ”…”�”}”(hj9h²hh³Nh´Nubh)�”}”(hŒ*:c:func:`media_device_unregister_entity()`”h]”j’)�”}”(hjfh]”hŒ media_device_unregister_entity()”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjdubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_device_unregister_entity”uh1hh³hÇh´KDhj9ubhŒ.”…”�”}”(hj9h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KDhj‘h²hubeh}”(h]”Œentities”ah ]”h"]”Œentities”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´K9ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Interfaces”h]”hŒ Interfaces”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj•h²hh³hÇh´KJubhï)�”}”(hŒîInterfaces are represented by a struct media_interface instance, defined in ``include/media/media-entity.h``. Currently, only one type of interface is defined: a device node. Such interfaces are represented by a struct media_intf_devnode.”h]”(hŒLInterfaces are represented by a struct media_interface instance, defined in ”…”�”}”(hj¦h²hh³Nh´Nubj’)�”}”(hŒ ``include/media/media-entity.h``”h]”hŒinclude/media/media-entity.h”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¦ubhŒ‚. Currently, only one type of interface is defined: a device node. Such interfaces are represented by a struct media_intf_devnode.”…”�”}”(hj¦h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KLhj•h²hubhï)�”}”(hŒžDrivers initialize and create device node interfaces by calling :c:func:`media_devnode_create()` and remove them by calling: :c:func:`media_devnode_remove()`.”h]”(hŒ@Drivers initialize and create device node interfaces by calling ”…”�”}”(hjÆh²hh³Nh´Nubh)�”}”(hŒ :c:func:`media_devnode_create()`”h]”j’)�”}”(hjÐh]”hŒmedia_devnode_create()”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjÎubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_devnode_create”uh1hh³hÇh´KRhjÆubhŒ and remove them by calling: ”…”�”}”(hjÆh²hh³Nh´Nubh)�”}”(hŒ :c:func:`media_devnode_remove()`”h]”j’)�”}”(hjóh]”hŒmedia_devnode_remove()”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjñubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_devnode_remove”uh1hh³hÇh´KRhjÆubhŒ.”…”�”}”(hjÆh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KRhj•h²hubeh}”(h]”Œ interfaces”ah ]”h"]”Œ interfaces”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´KJubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒPads”h]”hŒPads”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj"h²hh³hÇh´KXubhï)�”}”(hŒëPads are represented by a struct media_pad instance, defined in ``include/media/media-entity.h``. Each entity stores its pads in a pads array managed by the entity driver. Drivers usually embed the array in a driver-specific structure.”h]”(hŒ@Pads are represented by a struct media_pad instance, defined in ”…”�”}”(hj3h²hh³Nh´Nubj’)�”}”(hŒ ``include/media/media-entity.h``”h]”hŒinclude/media/media-entity.h”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj3ubhŒ‹. Each entity stores its pads in a pads array managed by the entity driver. Drivers usually embed the array in a driver-specific structure.”…”�”}”(hj3h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KYhj"h²hubhï)�”}”(hŒNPads are identified by their entity and their 0-based index in the pads array.”h]”hŒNPads are identified by their entity and their 0-based index in the pads array.”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K^hj"h²hubhï)�”}”(hŒ�Both information are stored in the struct media_pad, making the struct media_pad pointer the canonical way to store and pass link references.”h]”hŒ�Both information are stored in the struct media_pad, making the struct media_pad pointer the canonical way to store and pass link references.”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kahj"h²hubhï)�”}”(hŒ=Pads have flags that describe the pad capabilities and state.”h]”hŒ=Pads have flags that describe the pad capabilities and state.”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kehj"h²hubhï)�”}”(hŒŠ``MEDIA_PAD_FL_SINK`` indicates that the pad supports sinking data. ``MEDIA_PAD_FL_SOURCE`` indicates that the pad supports sourcing data.”h]”(j’)�”}”(hŒ``MEDIA_PAD_FL_SINK``”h]”hŒMEDIA_PAD_FL_SINK”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj}ubhŒ/ indicates that the pad supports sinking data. ”…”�”}”(hj}h²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_PAD_FL_SOURCE``”h]”hŒMEDIA_PAD_FL_SOURCE”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj}ubhŒ/ indicates that the pad supports sourcing data.”…”�”}”(hj}h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kghj"h²hubhŒnote”“”)�”}”(hŒ^One and only one of ``MEDIA_PAD_FL_SINK`` or ``MEDIA_PAD_FL_SOURCE`` must be set for each pad.”h]”hï)�”}”(hŒ^One and only one of ``MEDIA_PAD_FL_SINK`` or ``MEDIA_PAD_FL_SOURCE`` must be set for each pad.”h]”(hŒOne and only one of ”…”�”}”(hj±h²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_PAD_FL_SINK``”h]”hŒMEDIA_PAD_FL_SINK”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj±ubhŒ or ”…”�”}”(hj±h²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_PAD_FL_SOURCE``”h]”hŒMEDIA_PAD_FL_SOURCE”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj±ubhŒ must be set for each pad.”…”�”}”(hj±h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Klhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj"h²hh³hÇh´Nubeh}”(h]”Œpads”ah ]”h"]”Œpads”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´KXubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒLinks”h]”hŒLinks”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjñh²hh³hÇh´Kpubhï)�”}”(hŒ�Links are represented by a struct media_link instance, defined in ``include/media/media-entity.h``. There are two types of links:”h]”(hŒBLinks are represented by a struct media_link instance, defined in ”…”�”}”(hjh²hh³Nh´Nubj’)�”}”(hŒ ``include/media/media-entity.h``”h]”hŒinclude/media/media-entity.h”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjubhŒ. There are two types of links:”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Krhjñh²hubhï)�”}”(hŒ**1. pad to pad links**:”h]”(hŒstrong”“”)�”}”(hŒ**1. pad to pad links**”h]”hŒ1. pad to pad links”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj"ubhŒ:”…”�”}”(hj"h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kuhjñh²hubhï)�”}”(hŒßAssociate two entities via their PADs. Each entity has a list that points to all links originating at or targeting any of its pads. A given link is thus stored twice, once in the source entity and once in the target entity.”h]”hŒßAssociate two entities via their PADs. Each entity has a list that points to all links originating at or targeting any of its pads. A given link is thus stored twice, once in the source entity and once in the target entity.”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kwhjñh²hubhï)�”}”(hŒ„Drivers create pad to pad links by calling: :c:func:`media_create_pad_link()` and remove with :c:func:`media_entity_remove_links()`.”h]”(hŒ,Drivers create pad to pad links by calling: ”…”�”}”(hjNh²hh³Nh´Nubh)�”}”(hŒ!:c:func:`media_create_pad_link()`”h]”j’)�”}”(hjXh]”hŒmedia_create_pad_link()”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjVubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_create_pad_link”uh1hh³hÇh´K|hjNubhŒ and remove with ”…”�”}”(hjNh²hh³Nh´Nubh)�”}”(hŒ%:c:func:`media_entity_remove_links()`”h]”j’)�”}”(hj{h]”hŒmedia_entity_remove_links()”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjyubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_entity_remove_links”uh1hh³hÇh´K|hjNubhŒ.”…”�”}”(hjNh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K|hjñh²hubhï)�”}”(hŒ!**2. interface to entity links**:”h]”(j')�”}”(hŒ **2. interface to entity links**”h]”hŒ2. interface to entity links”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¢ubhŒ:”…”�”}”(hj¢h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K€hjñh²hubhï)�”}”(hŒ"Associate one interface to a Link.”h]”hŒ"Associate one interface to a Link.”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‚hjñh²hubhï)�”}”(hŒŒDrivers create interface to entity links by calling: :c:func:`media_create_intf_link()` and remove with :c:func:`media_remove_intf_links()`.”h]”(hŒ5Drivers create interface to entity links by calling: ”…”�”}”(hjÌh²hh³Nh´Nubh)�”}”(hŒ":c:func:`media_create_intf_link()`”h]”j’)�”}”(hjÖh]”hŒmedia_create_intf_link()”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjÔubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_create_intf_link”uh1hh³hÇh´K„hjÌubhŒ and remove with ”…”�”}”(hjÌh²hh³Nh´Nubh)�”}”(hŒ#:c:func:`media_remove_intf_links()`”h]”j’)�”}”(hjùh]”hŒmedia_remove_intf_links()”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hj÷ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_remove_intf_links”uh1hh³hÇh´K„hjÌubhŒ.”…”�”}”(hjÌh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K„hjñh²hubj¬)�”}”(hŒALinks can only be created after having both ends already created.”h]”hï)�”}”(hj"h]”hŒALinks can only be created after having both ends already created.”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KŠhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjñh²hh³hÇh´Nubhï)�”}”(hŒ«Links have flags that describe the link capabilities and state. The valid values are described at :c:func:`media_create_pad_link()` and :c:func:`media_create_intf_link()`.”h]”(hŒbLinks have flags that describe the link capabilities and state. The valid values are described at ”…”�”}”(hj7h²hh³Nh´Nubh)�”}”(hŒ!:c:func:`media_create_pad_link()`”h]”j’)�”}”(hjAh]”hŒmedia_create_pad_link()”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hj?ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_create_pad_link”uh1hh³hÇh´KŒhj7ubhŒ and ”…”�”}”(hj7h²hh³Nh´Nubh)�”}”(hŒ":c:func:`media_create_intf_link()`”h]”j’)�”}”(hjdh]”hŒmedia_create_intf_link()”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjbubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_create_intf_link”uh1hh³hÇh´KŒhj7ubhŒ.”…”�”}”(hj7h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KŒhjñh²hubeh}”(h]”Œlinks”ah ]”h"]”Œlinks”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´KpubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒGraph traversal”h]”hŒGraph traversal”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj“h²hh³hÇh´K‘ubhï)�”}”(hŒbThe media framework provides APIs to traverse media graphs, locating connected entities and links.”h]”hŒbThe media framework provides APIs to traverse media graphs, locating connected entities and links.”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K“hj“h²hubhï)�”}”(hŒžTo iterate over all entities belonging to a media device, drivers can use the media_device_for_each_entity macro, defined in ``include/media/media-device.h``.”h]”(hŒ}To iterate over all entities belonging to a media device, drivers can use the media_device_for_each_entity macro, defined in ”…”�”}”(hj²h²hh³Nh´Nubj’)�”}”(hŒ ``include/media/media-device.h``”h]”hŒinclude/media/media-device.h”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj²ubhŒ.”…”�”}”(hj²h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K–hj“h²hubhŒ literal_block”“”)�”}”(hŒ|struct media_entity *entity; media_device_for_each_entity(entity, mdev) { // entity will point to each entity in turn ... }”h]”hŒ|struct media_entity *entity; media_device_for_each_entity(entity, mdev) { // entity will point to each entity in turn ... }”…”�”}”hjÔsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒforce”‰Œlanguage”j³Œhighlight_args”}”uh1jÒh³hÇh´Kšhj“h²hubhï)�”}”(hX*Helper functions can be used to find a link between two given pads, or a pad connected to another pad through an enabled link (:c:func:`media_entity_find_link()`, :c:func:`media_pad_remote_pad_first()`, :c:func:`media_entity_remote_source_pad_unique()` and :c:func:`media_pad_remote_pad_unique()`).”h]”(hŒHelper functions can be used to find a link between two given pads, or a pad connected to another pad through an enabled link (”…”�”}”(hjæh²hh³Nh´Nubh)�”}”(hŒ":c:func:`media_entity_find_link()`”h]”j’)�”}”(hjðh]”hŒmedia_entity_find_link()”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjîubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_entity_find_link”uh1hh³hÇh´K£hjæubhŒ, ”…”�”}”(hjæh²hh³Nh´Nubh)�”}”(hŒ&:c:func:`media_pad_remote_pad_first()`”h]”j’)�”}”(hjh]”hŒmedia_pad_remote_pad_first()”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_pad_remote_pad_first”uh1hh³hÇh´K£hjæubhŒ, ”…”�”}”(hjæh²hh³Nh´Nubh)�”}”(hŒ1:c:func:`media_entity_remote_source_pad_unique()`”h]”j’)�”}”(hj6h]”hŒ'media_entity_remote_source_pad_unique()”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hj4ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒ%media_entity_remote_source_pad_unique”uh1hh³hÇh´K£hjæubhŒ and ”…”�”}”(hjæh²hh³Nh´Nubh)�”}”(hŒ':c:func:`media_pad_remote_pad_unique()`”h]”j’)�”}”(hjYh]”hŒmedia_pad_remote_pad_unique()”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjWubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_pad_remote_pad_unique”uh1hh³hÇh´K£hjæubhŒ).”…”�”}”(hjæh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K£hj“h²hubeh}”(h]”Œgraph-traversal”ah ]”h"]”Œgraph traversal”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´K‘ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒUse count and power handling”h]”hŒUse count and power handling”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjˆh²hh³hÇh´Kªubhï)�”}”(hX+Due to the wide differences between drivers regarding power management needs, the media controller does not implement power management. However, the struct media_entity includes a ``use_count`` field that media drivers can use to track the number of users of every entity for power management needs.”h]”(hŒ´Due to the wide differences between drivers regarding power management needs, the media controller does not implement power management. However, the struct media_entity includes a ”…”�”}”(hj™h²hh³Nh´Nubj’)�”}”(hŒ ``use_count``”h]”hŒ use_count”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj™ubhŒj field that media drivers can use to track the number of users of every entity for power management needs.”…”�”}”(hj™h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¬hjˆh²hubhï)�”}”(hŒßThe :c:type:`media_entity`.\ ``use_count`` field is owned by media drivers and must not be touched by entity drivers. Access to the field must be protected by the :c:type:`media_device`.\ ``graph_mutex`` lock.”h]”(hŒThe ”…”�”}”(hj¹h²hh³Nh´Nubh)�”}”(hŒ$:c:type:`media_entity`”h]”j’)�”}”(hjÃh]”hŒ media_entity”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjÁubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jŒ media_entity”uh1hh³hÇh´K³hj¹ubhŒ. ”…”�”}”(hj¹h²hh³Nh´Nubj’)�”}”(hŒ ``use_count``”h]”hŒ use_count”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¹ubhŒy field is owned by media drivers and must not be touched by entity drivers. Access to the field must be protected by the ”…”�”}”(hj¹h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hjøh]”hŒ media_device”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjöubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jŒ media_device”uh1hh³hÇh´K³hj¹ubhŒ. ”…”�”}”hj¹sbj’)�”}”(hŒ``graph_mutex``”h]”hŒ graph_mutex”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¹ubhŒ lock.”…”�”}”(hj¹h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K³hjˆh²hubeh}”(h]”Œuse-count-and-power-handling”ah ]”h"]”Œuse count and power handling”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´KªubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Links setup”h]”hŒ Links setup”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj9h²hh³hÇh´K¹ubhï)�”}”(hŒZLink properties can be modified at runtime by calling :c:func:`media_entity_setup_link()`.”h]”(hŒ6Link properties can be modified at runtime by calling ”…”�”}”(hjJh²hh³Nh´Nubh)�”}”(hŒ#:c:func:`media_entity_setup_link()`”h]”j’)�”}”(hjTh]”hŒmedia_entity_setup_link()”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjRubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_entity_setup_link”uh1hh³hÇh´K»hjJubhŒ.”…”�”}”(hjJh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K»hj9h²hubeh}”(h]”Œ links-setup”ah ]”h"]”Œ links setup”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´K¹ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒPipelines and media streams”h]”hŒPipelines and media streams”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjƒh²hh³hÇh´K¿ubhï)�”}”(hXaA media stream is a stream of pixels or metadata originating from one or more source devices (such as a sensors) and flowing through media entity pads towards the final sinks. The stream can be modified on the route by the devices (e.g. scaling or pixel format conversions), or it can be split into multiple branches, or multiple branches can be merged.”h]”hXaA media stream is a stream of pixels or metadata originating from one or more source devices (such as a sensors) and flowing through media entity pads towards the final sinks. The stream can be modified on the route by the devices (e.g. scaling or pixel format conversions), or it can be split into multiple branches, or multiple branches can be merged.”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÁhjƒh²hubhï)�”}”(hXUA media pipeline is a set of media streams which are interdependent. This interdependency can be caused by the hardware (e.g. configuration of a second stream cannot be changed if the first stream has been enabled) or by the driver due to the software design. Most commonly a media pipeline consists of a single stream which does not branch.”h]”hXUA media pipeline is a set of media streams which are interdependent. This interdependency can be caused by the hardware (e.g. configuration of a second stream cannot be changed if the first stream has been enabled) or by the driver due to the software design. Most commonly a media pipeline consists of a single stream which does not branch.”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÇhjƒh²hubhï)�”}”(hŒ²When starting streaming, drivers must notify all entities in the pipeline to prevent link states from being modified during streaming by calling :c:func:`media_pipeline_start()`.”h]”(hŒ‘When starting streaming, drivers must notify all entities in the pipeline to prevent link states from being modified during streaming by calling ”…”�”}”(hj°h²hh³Nh´Nubh)�”}”(hŒ :c:func:`media_pipeline_start()`”h]”j’)�”}”(hjºh]”hŒmedia_pipeline_start()”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hj¸ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_pipeline_start”uh1hh³hÇh´KÍhj°ubhŒ.”…”�”}”(hj°h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÍhjƒh²hubhï)�”}”(hŒPThe function will mark all the pads which are part of the pipeline as streaming.”h]”hŒPThe function will mark all the pads which are part of the pipeline as streaming.”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÑhjƒh²hubhï)�”}”(hX The struct media_pipeline instance pointed to by the pipe argument will be stored in every pad in the pipeline. Drivers should embed the struct media_pipeline in higher-level pipeline structures and can then access the pipeline through the struct media_pad pipe field.”h]”hX The struct media_pipeline instance pointed to by the pipe argument will be stored in every pad in the pipeline. Drivers should embed the struct media_pipeline in higher-level pipeline structures and can then access the pipeline through the struct media_pad pipe field.”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÓhjƒh²hubhï)�”}”(hŒ…Calls to :c:func:`media_pipeline_start()` can be nested. The pipeline pointer must be identical for all nested calls to the function.”h]”(hŒ Calls to ”…”�”}”(hjýh²hh³Nh´Nubh)�”}”(hŒ :c:func:`media_pipeline_start()`”h]”j’)�”}”(hj h]”hŒmedia_pipeline_start()”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_pipeline_start”uh1hh³hÇh´KØhjýubhŒ\ can be nested. The pipeline pointer must be identical for all nested calls to the function.”…”�”}”(hjýh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KØhjƒh²hubhï)�”}”(hŒy:c:func:`media_pipeline_start()` may return an error. In that case, it will clean up any of the changes it did by itself.”h]”(h)�”}”(hŒ :c:func:`media_pipeline_start()`”h]”j’)�”}”(hj4 h]”hŒmedia_pipeline_start()”…”�”}”(hj6 h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hj2 ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_pipeline_start”uh1hh³hÇh´KÛhj. ubhŒY may return an error. In that case, it will clean up any of the changes it did by itself.”…”�”}”(hj. h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÛhjƒh²hubhï)�”}”(hŒ`When stopping the stream, drivers must notify the entities with :c:func:`media_pipeline_stop()`.”h]”(hŒ@When stopping the stream, drivers must notify the entities with ”…”�”}”(hj[ h²hh³Nh´Nubh)�”}”(hŒ:c:func:`media_pipeline_stop()`”h]”j’)�”}”(hje h]”hŒmedia_pipeline_stop()”…”�”}”(hjg h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjc ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_pipeline_stop”uh1hh³hÇh´KÞhj[ ubhŒ.”…”�”}”(hj[ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÞhjƒh²hubhï)�”}”(hŒüIf multiple calls to :c:func:`media_pipeline_start()` have been made the same number of :c:func:`media_pipeline_stop()` calls are required to stop streaming. The :c:type:`media_entity`.\ ``pipe`` field is reset to ``NULL`` on the last nested stop call.”h]”(hŒIf multiple calls to ”…”�”}”(hjŒ h²hh³Nh´Nubh)�”}”(hŒ :c:func:`media_pipeline_start()`”h]”j’)�”}”(hj– h]”hŒmedia_pipeline_start()”…”�”}”(hj˜ h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hj” ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_pipeline_start”uh1hh³hÇh´KáhjŒ ubhŒ# have been made the same number of ”…”�”}”(hjŒ h²hh³Nh´Nubh)�”}”(hŒ:c:func:`media_pipeline_stop()`”h]”j’)�”}”(hj¹ h]”hŒmedia_pipeline_stop()”…”�”}”(hj» h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hj· ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_pipeline_stop”uh1hh³hÇh´KáhjŒ ubhŒ+ calls are required to stop streaming. The ”…”�”}”(hjŒ h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hjÜ h]”hŒ media_entity”…”�”}”(hjÞ h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjÚ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jŒ media_entity”uh1hh³hÇh´KáhjŒ ubhŒ. ”…”�”}”(hjŒ h²hh³Nh´Nubj’)�”}”(hŒ``pipe``”h]”hŒpipe”…”�”}”(hjý h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjŒ ubhŒ field is reset to ”…”�”}”(hjŒ h²hh³Nh´Nubj’)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjŒ ubhŒ on the last nested stop call.”…”�”}”(hjŒ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Káhjƒh²hubhï)�”}”(hŒÊLink configuration will fail with ``-EBUSY`` by default if either end of the link is a streaming entity. Links that can be modified while streaming must be marked with the ``MEDIA_LNK_FL_DYNAMIC`` flag.”h]”(hŒ"Link configuration will fail with ”…”�”}”(hj' h²hh³Nh´Nubj’)�”}”(hŒ ``-EBUSY``”h]”hŒ-EBUSY”…”�”}”(hj/ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj' ubhŒ€ by default if either end of the link is a streaming entity. Links that can be modified while streaming must be marked with the ”…”�”}”(hj' h²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_LNK_FL_DYNAMIC``”h]”hŒMEDIA_LNK_FL_DYNAMIC”…”�”}”(hjA h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj' ubhŒ flag.”…”�”}”(hj' h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kçhjƒh²hubhï)�”}”(hX If other operations need to be disallowed on streaming entities (such as changing entities configuration parameters) drivers can explicitly check the media_entity stream_count field to find out if an entity is streaming. This operation must be done with the media_device graph_mutex held.”h]”hX If other operations need to be disallowed on streaming entities (such as changing entities configuration parameters) drivers can explicitly check the media_entity stream_count field to find out if an entity is streaming. This operation must be done with the media_device graph_mutex held.”…”�”}”(hjY h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Këhjƒh²hubeh}”(h]”Œpipelines-and-media-streams”ah ]”h"]”Œpipelines and media streams”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´K¿ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒLink validation”h]”hŒLink validation”…”�”}”(hjr h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjo h²hh³hÇh´Kñubhï)�”}”(hXÐLink validation is performed by :c:func:`media_pipeline_start()` for any entity which has sink pads in the pipeline. The :c:type:`media_entity`.\ ``link_validate()`` callback is used for that purpose. In ``link_validate()`` callback, entity driver should check that the properties of the source pad of the connected entity and its own sink pad match. It is up to the type of the entity (and in the end, the properties of the hardware) what matching actually means.”h]”(hŒ Link validation is performed by ”…”�”}”(hj€ h²hh³Nh´Nubh)�”}”(hŒ :c:func:`media_pipeline_start()`”h]”j’)�”}”(hjŠ h]”hŒmedia_pipeline_start()”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjˆ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_pipeline_start”uh1hh³hÇh´Kóhj€ ubhŒ9 for any entity which has sink pads in the pipeline. The ”…”�”}”(hj€ h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hj­ h]”hŒ media_entity”…”�”}”(hj¯ h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj« ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jŒ media_entity”uh1hh³hÇh´Kóhj€ ubhŒ. ”…”�”}”(hj€ h²hh³Nh´Nubj’)�”}”(hŒ``link_validate()``”h]”hŒlink_validate()”…”�”}”(hjÎ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj€ ubhŒ' callback is used for that purpose. In ”…”�”}”(hj€ h²hh³Nh´Nubj’)�”}”(hŒ``link_validate()``”h]”hŒlink_validate()”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj€ ubhŒñ callback, entity driver should check that the properties of the source pad of the connected entity and its own sink pad match. It is up to the type of the entity (and in the end, the properties of the hardware) what matching actually means.”…”�”}”(hj€ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kóhjo h²hubhï)�”}”(hŒÔSubsystems should facilitate link validation by providing subsystem specific helper functions to provide easy access for commonly needed information, and in the end provide a way to use driver-specific callbacks.”h]”hŒÔSubsystems should facilitate link validation by providing subsystem specific helper functions to provide easy access for commonly needed information, and in the end provide a way to use driver-specific callbacks.”…”�”}”(hjø h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kûhjo h²hubeh}”(h]”Œlink-validation”ah ]”h"]”Œlink validation”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´KñubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒPipeline traversal”h]”hŒPipeline traversal”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj h²hh³hÇh´Mubhï)�”}”(hXOnce a pipeline has been constructed with :c:func:`media_pipeline_start()`, drivers can iterate over entities or pads in the pipeline with the :c:macro:´media_pipeline_for_each_entity` and :c:macro:´media_pipeline_for_each_pad` macros. Iterating over pads is straightforward:”h]”(hŒ*Once a pipeline has been constructed with ”…”�”}”(hj h²hh³Nh´Nubh)�”}”(hŒ :c:func:`media_pipeline_start()`”h]”j’)�”}”(hj) h]”hŒmedia_pipeline_start()”…”�”}”(hj+ h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hj' ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_pipeline_start”uh1hh³hÇh´Mhj ubhŒË, drivers can iterate over entities or pads in the pipeline with the :c:macro:´media_pipeline_for_each_entity` and :c:macro:´media_pipeline_for_each_pad` macros. Iterating over pads is straightforward:”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhj h²hubjÓ)�”}”(hŒžmedia_pipeline_pad_iter iter; struct media_pad *pad; media_pipeline_for_each_pad(pipe, &iter, pad) { /* 'pad' will point to each pad in turn */ ... }”h]”hŒžmedia_pipeline_pad_iter iter; struct media_pad *pad; media_pipeline_for_each_pad(pipe, &iter, pad) { /* 'pad' will point to each pad in turn */ ... }”…”�”}”hjP sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjâ‰jãj³jä}”uh1jÒh³hÇh´Mhj h²hubhï)�”}”(hŒeTo iterate over entities, the iterator needs to be initialized and cleaned up as an additional steps:”h]”hŒeTo iterate over entities, the iterator needs to be initialized and cleaned up as an additional steps:”…”�”}”(hj_ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhj h²hubjÓ)�”}”(hX/media_pipeline_entity_iter iter; struct media_entity *entity; int ret; ret = media_pipeline_entity_iter_init(pipe, &iter); if (ret) ...; media_pipeline_for_each_entity(pipe, &iter, entity) { /* 'entity' will point to each entity in turn */ ... } media_pipeline_entity_iter_cleanup(&iter);”h]”hX/media_pipeline_entity_iter iter; struct media_entity *entity; int ret; ret = media_pipeline_entity_iter_init(pipe, &iter); if (ret) ...; media_pipeline_for_each_entity(pipe, &iter, entity) { /* 'entity' will point to each entity in turn */ ... } media_pipeline_entity_iter_cleanup(&iter);”…”�”}”hjm sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjâ‰jãj³jä}”uh1jÒh³hÇh´Mhj h²hubeh}”(h]”Œpipeline-traversal”ah ]”h"]”Œpipeline traversal”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´MubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ%Media Controller Device Allocator API”h]”hŒ%Media Controller Device Allocator API”…”�”}”(hj‡ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj„ h²hh³hÇh´M'ubhï)�”}”(hŒ’When the media device belongs to more than one driver, the shared media device is allocated with the shared struct device as the key for look ups.”h]”hŒ’When the media device belongs to more than one driver, the shared media device is allocated with the shared struct device as the key for look ups.”…”�”}”(hj• h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´M)hj„ h²hubhï)�”}”(hX÷The shared media device should stay in registered state until the last driver unregisters it. In addition, the media device should be released when all the references are released. Each driver gets a reference to the media device during probe, when it allocates the media device. If media device is already allocated, the allocate API bumps up the refcount and returns the existing media device. The driver puts the reference back in its disconnect routine when it calls :c:func:`media_device_delete()`.”h]”(hX×The shared media device should stay in registered state until the last driver unregisters it. In addition, the media device should be released when all the references are released. Each driver gets a reference to the media device during probe, when it allocates the media device. If media device is already allocated, the allocate API bumps up the refcount and returns the existing media device. The driver puts the reference back in its disconnect routine when it calls ”…”�”}”(hj£ h²hh³Nh´Nubh)�”}”(hŒ:c:func:`media_device_delete()`”h]”j’)�”}”(hj­ h]”hŒmedia_device_delete()”…”�”}”(hj¯ h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hj« ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_device_delete”uh1hh³hÇh´M,hj£ ubhŒ.”…”�”}”(hj£ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´M,hj„ h²hubhï)�”}”(hŒ·The media device is unregistered and cleaned up from the kref put handler to ensure that the media device stays in registered state until the last driver unregisters the media device.”h]”hŒ·The media device is unregistered and cleaned up from the kref put handler to ensure that the media device stays in registered state until the last driver unregisters the media device.”…”�”}”(hjÔ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´M4hj„ h²hubhï)�”}”(hŒ**Driver Usage**”h]”j')�”}”(hjä h]”hŒ Driver Usage”…”�”}”(hjæ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjâ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´M8hj„ h²hubhï)�”}”(hŒÕDrivers should use the appropriate media-core routines to manage the shared media device life-time handling the two states: 1. allocate -> register -> delete 2. get reference to already registered device -> delete”h]”hŒÕDrivers should use the appropriate media-core routines to manage the shared media device life-time handling the two states: 1. allocate -> register -> delete 2. get reference to already registered device -> delete”…”�”}”(hjù h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´M:hj„ h²hubhï)�”}”(hŒncall :c:func:`media_device_delete()` routine to make sure the shared media device delete is handled correctly.”h]”(hŒcall ”…”�”}”(hj h²hh³Nh´Nubh)�”}”(hŒ:c:func:`media_device_delete()`”h]”j’)�”}”(hj h]”hŒmedia_device_delete()”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_device_delete”uh1hh³hÇh´M?hj ubhŒJ routine to make sure the shared media device delete is handled correctly.”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´M?hj„ h²hubhï)�”}”(hŒ¥**driver probe:** Call :c:func:`media_device_usb_allocate()` to allocate or get a reference Call :c:func:`media_device_register()`, if media devnode isn't registered”h]”(j')�”}”(hŒ**driver probe:**”h]”hŒ driver probe:”…”�”}”(hj< h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj8 ubhŒ Call ”…”�”}”(hj8 h²hh³Nh´Nubh)�”}”(hŒ%:c:func:`media_device_usb_allocate()`”h]”j’)�”}”(hjP h]”hŒmedia_device_usb_allocate()”…”�”}”(hjR h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjN ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_device_usb_allocate”uh1hh³hÇh´MBhj8 ubhŒ% to allocate or get a reference Call ”…”�”}”(hj8 h²hh³Nh´Nubh)�”}”(hŒ!:c:func:`media_device_register()`”h]”j’)�”}”(hjs h]”hŒmedia_device_register()”…”�”}”(hju h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hjq ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_device_register”uh1hh³hÇh´MBhj8 ubhŒ%, if media devnode isn’t registered”…”�”}”(hj8 h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´MBhj„ h²hubhï)�”}”(hŒ�**driver disconnect:** Call :c:func:`media_device_delete()` to free the media_device. Freeing is handled by the kref put handler.”h]”(j')�”}”(hŒ**driver disconnect:**”h]”hŒdriver disconnect:”…”�”}”(hjž h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjš ubhŒ Call ”…”�”}”(hjš h²hh³Nh´Nubh)�”}”(hŒ:c:func:`media_device_delete()`”h]”j’)�”}”(hj² h]”hŒmedia_device_delete()”…”�”}”(hj´ h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-func”eh"]”h$]”h&]”uh1j‘hj° ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jŒmedia_device_delete”uh1hh³hÇh´MFhjš ubhŒF to free the media_device. Freeing is handled by the kref put handler.”…”�”}”(hjš h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´MFhj„ h²hubeh}”(h]”Œ%media-controller-device-allocator-api”ah ]”h"]”Œ%media controller device allocator api”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´M'ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒAPI Definitions”h]”hŒAPI Definitions”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjá h²hh³hÇh´MKubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œmedia_entity_notify (C struct)”Œc.media_entity_notify”hNt”auh1jò hjá h²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒmedia_entity_notify”h]”hŒdesc_signature_line”“”)�”}”(hŒstruct media_entity_notify”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1j hj h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j& hj h²hh³j% h´KubhŒ desc_name”“”)�”}”(hŒmedia_entity_notify”h]”hŒ desc_sig_name”“”)�”}”(hj h]”hŒmedia_entity_notify”…”�”}”(hj? h²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1j= hj9 ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1j7 hj h²hh³j% h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1j Œsphinx_line_type”Œ declarator”hj h²hh³j% h´Kubah}”(h]”j ah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1j h³j% h´Khj h²hubhŒ desc_content”“”)�”}”(hhh]”hï)�”}”(hŒMedia Entity Notify”h]”hŒMedia Entity Notify”…”�”}”(hjn h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Khjk h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj h²hh³j% h´Kubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”Œdomain”j³Œobjtype”j† Œdesctype”j† Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1j h²hhjá h³Nh´NubhŒ container”“”)�”}”(hX1**Definition**:: struct media_entity_notify { struct list_head list; void *notify_data; void (*notify)(struct media_entity *entity, void *notify_data); }; **Members** ``list`` List head ``notify_data`` Input data to invoke the callback ``notify`` Callback function pointer”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj– ubhŒ:”…”�”}”(hj– h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Khj’ ubjÓ)�”}”(hŒ•struct media_entity_notify { struct list_head list; void *notify_data; void (*notify)(struct media_entity *entity, void *notify_data); };”h]”hŒ•struct media_entity_notify { struct list_head list; void *notify_data; void (*notify)(struct media_entity *entity, void *notify_data); };”…”�”}”hj³ sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K!hj’ ubhï)�”}”(hŒ **Members**”h]”j')�”}”(hjÄ h]”hŒMembers”…”�”}”(hjÆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K'hj’ ubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ``list`` List head ”h]”(hŒterm”“”)�”}”(hŒ``list``”h]”j’)�”}”(hjé h]”hŒlist”…”�”}”(hjë h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjç ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Khjá ubhŒ definition”“”)�”}”(hhh]”hï)�”}”(hŒ List head”h]”hŒ List head”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jþ h´Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjá ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jþ h´KhjÜ ubjà )�”}”(hŒ2``notify_data`` Input data to invoke the callback ”h]”(jæ )�”}”(hŒ``notify_data``”h]”j’)�”}”(hj$h]”hŒ notify_data”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Khjubj)�”}”(hhh]”hï)�”}”(hŒ!Input data to invoke the callback”h]”hŒ!Input data to invoke the callback”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j9h´Khj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j9h´KhjÜ ubjà )�”}”(hŒ$``notify`` Callback function pointer”h]”(jæ )�”}”(hŒ ``notify``”h]”j’)�”}”(hj]h]”hŒnotify”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KhjWubj)�”}”(hhh]”hï)�”}”(hŒCallback function pointer”h]”hŒCallback function pointer”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K hjsubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjWubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jrh´KhjÜ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj’ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj h]”hŒ Description”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjžubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K#hjá h²hubhï)�”}”(hŒÞDrivers may register a callback to take action when new entities get registered with the media device. This handler is intended for creating links between existing entities and should not create entities and register them.”h]”hŒÞDrivers may register a callback to take action when new entities get registered with the media device. This handler is intended for creating links between existing entities and should not create entities and register them.”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K hjá h²hubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_device_ops (C struct)”Œc.media_device_ops”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_device_ops”h]”j )�”}”(hŒstruct media_device_ops”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÚh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K(ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÚh²hh³jëh´K(ubj8 )�”}”(hŒmedia_device_ops”h]”j> )�”}”(hjØh]”hŒmedia_device_ops”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjúubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÚh²hh³jëh´K(ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÖh²hh³jëh´K(ubah}”(h]”jÑah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jëh´K(hjÓh²hubjj )�”}”(hhh]”hï)�”}”(hŒMedia device operations”h]”hŒMedia device operations”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K-hjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÓh²hh³jëh´K(ubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ j8jŒ j8j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX>**Definition**:: struct media_device_ops { int (*link_notify)(struct media_link *link, u32 flags, unsigned int notification); struct media_request *(*req_alloc)(struct media_device *mdev); void (*req_free)(struct media_request *req); int (*req_validate)(struct media_request *req); void (*req_queue)(struct media_request *req); }; **Members** ``link_notify`` Link state change notification callback. This callback is called with the graph_mutex held. ``req_alloc`` Allocate a request. Set this if you need to allocate a struct larger then struct media_request. **req_alloc** and **req_free** must either both be set or both be NULL. ``req_free`` Free a request. Set this if **req_alloc** was set as well, leave to NULL otherwise. ``req_validate`` Validate a request, but do not queue yet. The req_queue_mutex lock is held when this op is called. ``req_queue`` Queue a validated request, cannot fail. If something goes wrong when queueing this request then it should be marked as such internally in the driver and any related buffers must eventually return to vb2 with state VB2_BUF_STATE_ERROR. The req_queue_mutex lock is held when this op is called. It is important that vb2 buffer objects are queued last after all other object types are queued: queueing a buffer kickstarts the request processing, so all other objects related to the request (and thus the buffer) must be available to the driver. And once a buffer is queued, then the driver can complete or delete objects from the request before req_queue exits.”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj@ubhŒ:”…”�”}”(hj@h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K1hj<ubjÓ)�”}”(hXMstruct media_device_ops { int (*link_notify)(struct media_link *link, u32 flags, unsigned int notification); struct media_request *(*req_alloc)(struct media_device *mdev); void (*req_free)(struct media_request *req); int (*req_validate)(struct media_request *req); void (*req_queue)(struct media_request *req); };”h]”hXMstruct media_device_ops { int (*link_notify)(struct media_link *link, u32 flags, unsigned int notification); struct media_request *(*req_alloc)(struct media_device *mdev); void (*req_free)(struct media_request *req); int (*req_validate)(struct media_request *req); void (*req_queue)(struct media_request *req); };”…”�”}”hj]sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K3hj<ubhï)�”}”(hŒ **Members**”h]”j')�”}”(hjnh]”hŒMembers”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjlubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K;hj<ubjÛ )�”}”(hhh]”(jà )�”}”(hŒl``link_notify`` Link state change notification callback. This callback is called with the graph_mutex held. ”h]”(jæ )�”}”(hŒ``link_notify``”h]”j’)�”}”(hj�h]”hŒ link_notify”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K0hj‡ubj)�”}”(hhh]”hï)�”}”(hŒ[Link state change notification callback. This callback is called with the graph_mutex held.”h]”hŒ[Link state change notification callback. This callback is called with the graph_mutex held.”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K/hj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j¢h´K0hj„ubjà )�”}”(hŒ¶``req_alloc`` Allocate a request. Set this if you need to allocate a struct larger then struct media_request. **req_alloc** and **req_free** must either both be set or both be NULL. ”h]”(jæ )�”}”(hŒ ``req_alloc``”h]”j’)�”}”(hjÇh]”hŒ req_alloc”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K3hjÁubj)�”}”(hhh]”hï)�”}”(hŒ§Allocate a request. Set this if you need to allocate a struct larger then struct media_request. **req_alloc** and **req_free** must either both be set or both be NULL.”h]”(hŒ`Allocate a request. Set this if you need to allocate a struct larger then struct media_request. ”…”�”}”(hjàh²hh³Nh´Nubj')�”}”(hŒ **req_alloc**”h]”hŒ req_alloc”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjàubhŒ and ”…”�”}”(hjàh²hh³Nh´Nubj')�”}”(hŒ **req_free**”h]”hŒreq_free”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjàubhŒ) must either both be set or both be NULL.”…”�”}”(hjàh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K1hjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÁubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÜh´K3hj„ubjà )�”}”(hŒa``req_free`` Free a request. Set this if **req_alloc** was set as well, leave to NULL otherwise. ”h]”(jæ )�”}”(hŒ ``req_free``”h]”j’)�”}”(hj%h]”hŒreq_free”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K5hjubj)�”}”(hhh]”hï)�”}”(hŒSFree a request. Set this if **req_alloc** was set as well, leave to NULL otherwise.”h]”(hŒFree a request. Set this if ”…”�”}”(hj>h²hh³Nh´Nubj')�”}”(hŒ **req_alloc**”h]”hŒ req_alloc”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj>ubhŒ* was set as well, leave to NULL otherwise.”…”�”}”(hj>•h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K4hj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j:h´K5hj„ubjà )�”}”(hŒt``req_validate`` Validate a request, but do not queue yet. The req_queue_mutex lock is held when this op is called. ”h]”(jæ )�”}”(hŒ``req_validate``”h]”j’)�”}”(hjqh]”hŒ req_validate”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K7hjkubj)�”}”(hhh]”hï)�”}”(hŒbValidate a request, but do not queue yet. The req_queue_mutex lock is held when this op is called.”h]”hŒbValidate a request, but do not queue yet. The req_queue_mutex lock is held when this op is called.”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K6hj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjkubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j†h´K7hj„ubjà )�”}”(hXŸ``req_queue`` Queue a validated request, cannot fail. If something goes wrong when queueing this request then it should be marked as such internally in the driver and any related buffers must eventually return to vb2 with state VB2_BUF_STATE_ERROR. The req_queue_mutex lock is held when this op is called. It is important that vb2 buffer objects are queued last after all other object types are queued: queueing a buffer kickstarts the request processing, so all other objects related to the request (and thus the buffer) must be available to the driver. And once a buffer is queued, then the driver can complete or delete objects from the request before req_queue exits.”h]”(jæ )�”}”(hŒ ``req_queue``”h]”j’)�”}”(hj«h]”hŒ req_queue”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KAhj¥ubj)�”}”(hhh]”hï)�”}”(hX‘Queue a validated request, cannot fail. If something goes wrong when queueing this request then it should be marked as such internally in the driver and any related buffers must eventually return to vb2 with state VB2_BUF_STATE_ERROR. The req_queue_mutex lock is held when this op is called. It is important that vb2 buffer objects are queued last after all other object types are queued: queueing a buffer kickstarts the request processing, so all other objects related to the request (and thus the buffer) must be available to the driver. And once a buffer is queued, then the driver can complete or delete objects from the request before req_queue exits.”h]”hX‘Queue a validated request, cannot fail. If something goes wrong when queueing this request then it should be marked as such internally in the driver and any related buffers must eventually return to vb2 with state VB2_BUF_STATE_ERROR. The req_queue_mutex lock is held when this op is called. It is important that vb2 buffer objects are queued last after all other object types are queued: queueing a buffer kickstarts the request processing, so all other objects related to the request (and thus the buffer) must be available to the driver. And once a buffer is queued, then the driver can complete or delete objects from the request before req_queue exits.”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K8hjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÀh´KAhj„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj<ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_device (C struct)”Œc.media_device”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ media_device”h]”j )�”}”(hŒstruct media_device”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KHubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjh²hh³jh´KHubj8 )�”}”(hŒ media_device”h]”j> )�”}”(hjÿh]”hŒ media_device”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj!ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjh²hh³jh´KHubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjýh²hh³jh´KHubah}”(h]”jøah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jh´KHhjúh²hubjj )�”}”(hhh]”hï)�”}”(hŒ Media device”h]”hŒ Media device”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KMhjDh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjúh²hh³jh´KHubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ j_jŒ j_j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXÒ **Definition**:: struct media_device { struct device *dev; struct media_devnode *devnode; char model[32]; char driver_name[32]; char serial[40]; char bus_info[32]; u32 hw_revision; u64 topology_version; u32 id; struct ida entity_internal_idx; int entity_internal_idx_max; struct list_head entities; struct list_head interfaces; struct list_head pads; struct list_head links; struct list_head entity_notify; struct mutex graph_mutex; struct media_graph pm_count_walk; void *source_priv; int (*enable_source)(struct media_entity *entity, struct media_pipeline *pipe); void (*disable_source)(struct media_entity *entity); const struct media_device_ops *ops; struct mutex req_queue_mutex; atomic_t num_requests; atomic_t num_request_objects; struct dentry *media_dir; atomic_t request_id; }; **Members** ``dev`` Parent device ``devnode`` Media device node ``model`` Device model name ``driver_name`` Optional device driver name. If not set, calls to ``MEDIA_IOC_DEVICE_INFO`` will return ``dev->driver->name``. This is needed for USB drivers for example, as otherwise they'll all appear as if the driver name was "usb". ``serial`` Device serial number (optional) ``bus_info`` Unique and stable device location identifier ``hw_revision`` Hardware device revision ``topology_version`` Monotonic counter for storing the version of the graph topology. Should be incremented each time the topology changes. ``id`` Unique ID used on the last registered graph object ``entity_internal_idx`` Unique internal entity ID used by the graph traversal algorithms ``entity_internal_idx_max`` Allocated internal entity indices ``entities`` List of registered entities ``interfaces`` List of registered interfaces ``pads`` List of registered pads ``links`` List of registered links ``entity_notify`` List of registered entity_notify callbacks ``graph_mutex`` Protects access to struct media_device data ``pm_count_walk`` Graph walk for power state walk. Access serialised using graph_mutex. ``source_priv`` Driver Private data for enable/disable source handlers ``enable_source`` Enable Source Handler function pointer ``disable_source`` Disable Source Handler function pointer ``ops`` Operation handler callbacks ``req_queue_mutex`` Serialise the MEDIA_REQUEST_IOC_QUEUE ioctl w.r.t. other operations that stop or start streaming. ``num_requests`` number of associated requests ``num_request_objects`` number of associated request objects ``media_dir`` DebugFS media directory ``request_id`` Used to generate unique request IDs”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjgubhŒ:”…”�”}”(hjgh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KQhjcubjÓ)�”}”(hXnstruct media_device { struct device *dev; struct media_devnode *devnode; char model[32]; char driver_name[32]; char serial[40]; char bus_info[32]; u32 hw_revision; u64 topology_version; u32 id; struct ida entity_internal_idx; int entity_internal_idx_max; struct list_head entities; struct list_head interfaces; struct list_head pads; struct list_head links; struct list_head entity_notify; struct mutex graph_mutex; struct media_graph pm_count_walk; void *source_priv; int (*enable_source)(struct media_entity *entity, struct media_pipeline *pipe); void (*disable_source)(struct media_entity *entity); const struct media_device_ops *ops; struct mutex req_queue_mutex; atomic_t num_requests; atomic_t num_request_objects; struct dentry *media_dir; atomic_t request_id; };”h]”hXnstruct media_device { struct device *dev; struct media_devnode *devnode; char model[32]; char driver_name[32]; char serial[40]; char bus_info[32]; u32 hw_revision; u64 topology_version; u32 id; struct ida entity_internal_idx; int entity_internal_idx_max; struct list_head entities; struct list_head interfaces; struct list_head pads; struct list_head links; struct list_head entity_notify; struct mutex graph_mutex; struct media_graph pm_count_walk; void *source_priv; int (*enable_source)(struct media_entity *entity, struct media_pipeline *pipe); void (*disable_source)(struct media_entity *entity); const struct media_device_ops *ops; struct mutex req_queue_mutex; atomic_t num_requests; atomic_t num_request_objects; struct dentry *media_dir; atomic_t request_id; };”…”�”}”hj„sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KShjcubhï)�”}”(hŒ **Members**”h]”j')�”}”(hj•h]”hŒMembers”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KqhjcubjÛ )�”}”(hhh]”(jà )�”}”(hŒ``dev`` Parent device ”h]”(jæ )�”}”(hŒ``dev``”h]”j’)�”}”(hj´h]”hŒdev”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KOhj®ubj)�”}”(hhh]”hï)�”}”(hŒ Parent device”h]”hŒ Parent device”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÉh´KOhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÉh´KOhj«ubjà )�”}”(hŒ``devnode`` Media device node ”h]”(jæ )�”}”(hŒ ``devnode``”h]”j’)�”}”(hjíh]”hŒdevnode”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KPhjçubj)�”}”(hhh]”hï)�”}”(hŒMedia device node”h]”hŒMedia device node”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´KPhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjçubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jh´KPhj«ubjà )�”}”(hŒ``model`` Device model name ”h]”(jæ )�”}”(hŒ ``model``”h]”j’)�”}”(hj&h]”hŒmodel”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KUhj ubj)�”}”(hhh]”hï)�”}”(hŒDevice model name”h]”hŒDevice model name”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j;h´KUhj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j;h´KUhj«ubjà )�”}”(hŒì``driver_name`` Optional device driver name. If not set, calls to ``MEDIA_IOC_DEVICE_INFO`` will return ``dev->driver->name``. This is needed for USB drivers for example, as otherwise they'll all appear as if the driver name was "usb". ”h]”(jæ )�”}”(hŒ``driver_name``”h]”j’)�”}”(hj_h]”hŒ driver_name”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KThjYubj)�”}”(hhh]”hï)�”}”(hŒÛOptional device driver name. If not set, calls to ``MEDIA_IOC_DEVICE_INFO`` will return ``dev->driver->name``. This is needed for USB drivers for example, as otherwise they'll all appear as if the driver name was "usb".”h]”(hŒ2Optional device driver name. If not set, calls to ”…”�”}”(hjxh²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_IOC_DEVICE_INFO``”h]”hŒMEDIA_IOC_DEVICE_INFO”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjxubhŒ will return ”…”�”}”(hjxh²hh³Nh´Nubj’)�”}”(hŒ``dev->driver->name``”h]”hŒdev->driver->name”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjxubhŒt. This is needed for USB drivers for example, as otherwise they’ll all appear as if the driver name was “usbâ€�.”…”�”}”(hjxh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KQhjuubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjYubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jth´KThj«ubjà )�”}”(hŒ+``serial`` Device serial number (optional) ”h]”(jæ )�”}”(hŒ ``serial``”h]”j’)�”}”(hj½h]”hŒserial”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj»ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KVhj·ubj)�”}”(hhh]”hï)�”}”(hŒDevice serial number (optional)”h]”hŒDevice serial number (optional)”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÒh´KVhjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÒh´KVhj«ubjà )�”}”(hŒ:``bus_info`` Unique and stable device location identifier ”h]”(jæ )�”}”(hŒ ``bus_info``”h]”j’)�”}”(hjöh]”hŒbus_info”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjôubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KWhjðubj)�”}”(hhh]”hï)�”}”(hŒ,Unique and stable device location identifier”h]”hŒ,Unique and stable device location identifier”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j h´KWhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjðubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j h´KWhj«ubjà )�”}”(hŒ)``hw_revision`` Hardware device revision ”h]”(jæ )�”}”(hŒ``hw_revision``”h]”j’)�”}”(hj/h]”hŒ hw_revision”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KXhj)ubj)�”}”(hhh]”hï)�”}”(hŒHardware device revision”h]”hŒHardware device revision”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jDh´KXhjEubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jDh´KXhj«ubjà )�”}”(hŒŒ``topology_version`` Monotonic counter for storing the version of the graph topology. Should be incremented each time the topology changes. ”h]”(jæ )�”}”(hŒ``topology_version``”h]”j’)�”}”(hjhh]”hŒtopology_version”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjfubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KZhjbubj)�”}”(hhh]”hï)�”}”(hŒvMonotonic counter for storing the version of the graph topology. Should be incremented each time the topology changes.”h]”hŒvMonotonic counter for storing the version of the graph topology. Should be incremented each time the topology changes.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KYhj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjbubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j}h´KZhj«ubjà )�”}”(hŒ:``id`` Unique ID used on the last registered graph object ”h]”(jæ )�”}”(hŒ``id``”h]”j’)�”}”(hj¢h]”hŒid”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K[hjœubj)�”}”(hhh]”hï)�”}”(hŒ2Unique ID used on the last registered graph object”h]”hŒ2Unique ID used on the last registered graph object”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j·h´K[hj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjœubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j·h´K[hj«ubjà )�”}”(hŒY``entity_internal_idx`` Unique internal entity ID used by the graph traversal algorithms ”h]”(jæ )�”}”(hŒ``entity_internal_idx``”h]”j’)�”}”(hjÛh]”hŒentity_internal_idx”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K]hjÕubj)�”}”(hhh]”hï)�”}”(hŒ@Unique internal entity ID used by the graph traversal algorithms”h]”hŒ@Unique internal entity ID used by the graph traversal algorithms”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K\hjñubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÕubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jðh´K]hj«ubjà )�”}”(hŒ>``entity_internal_idx_max`` Allocated internal entity indices ”h]”(jæ )�”}”(hŒ``entity_internal_idx_max``”h]”j’)�”}”(hjh]”hŒentity_internal_idx_max”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K^hjubj)�”}”(hhh]”hï)�”}”(hŒ!Allocated internal entity indices”h]”hŒ!Allocated internal entity indices”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j*h´K^hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j*h´K^hj«ubjà )�”}”(hŒ)``entities`` List of registered entities ”h]”(jæ )�”}”(hŒ ``entities``”h]”j’)�”}”(hjNh]”hŒentities”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjLubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K_hjHubj)�”}”(hhh]”hï)�”}”(hŒList of registered entities”h]”hŒList of registered entities”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jch´K_hjdubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjHubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jch´K_hj«ubjà )�”}”(hŒ-``interfaces`` List of registered interfaces ”h]”(jæ )�”}”(hŒ``interfaces``”h]”j’)�”}”(hj‡h]”hŒ interfaces”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K`hj�ubj)�”}”(hhh]”hï)�”}”(hŒList of registered interfaces”h]”hŒList of registered interfaces”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jœh´K`hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jœh´K`hj«ubjà )�”}”(hŒ!``pads`` List of registered pads ”h]”(jæ )�”}”(hŒ``pads``”h]”j’)�”}”(hjÀh]”hŒpads”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kahjºubj)�”}”(hhh]”hï)�”}”(hŒList of registered pads”h]”hŒList of registered pads”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÕh´KahjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjºubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÕh´Kahj«ubjà )�”}”(hŒ#``links`` List of registered links ”h]”(jæ )�”}”(hŒ ``links``”h]”j’)�”}”(hjùh]”hŒlinks”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kbhjóubj)�”}”(hhh]”hï)�”}”(hŒList of registered links”h]”hŒList of registered links”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´Kbhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjóubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jh´Kbhj«ubjà )�”}”(hŒ=``entity_notify`` List of registered entity_notify callbacks ”h]”(jæ )�”}”(hŒ``entity_notify``”h]”j’)�”}”(hj2h]”hŒ entity_notify”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kchj,ubj)�”}”(hhh]”hï)�”}”(hŒ*List of registered entity_notify callbacks”h]”hŒ*List of registered entity_notify callbacks”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jGh´KchjHubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jGh´Kchj«ubjà )�”}”(hŒ<``graph_mutex`` Protects access to struct media_device data ”h]”(jæ )�”}”(hŒ``graph_mutex``”h]”j’)�”}”(hjkh]”hŒ graph_mutex”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjiubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kdhjeubj)�”}”(hhh]”hï)�”}”(hŒ+Protects access to struct media_device data”h]”hŒ+Protects access to struct media_device data”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j€h´Kdhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjeubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j€h´Kdhj«ubjà )�”}”(hŒX``pm_count_walk`` Graph walk for power state walk. Access serialised using graph_mutex. ”h]”(jæ )�”}”(hŒ``pm_count_walk``”h]”j’)�”}”(hj¤h]”hŒ pm_count_walk”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kfhjžubj)�”}”(hhh]”hï)�”}”(hŒEGraph walk for power state walk. Access serialised using graph_mutex.”h]”hŒEGraph walk for power state walk. Access serialised using graph_mutex.”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kehjºubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjžubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j¹h´Kfhj«ubjà )�”}”(hŒG``source_priv`` Driver Private data for enable/disable source handlers ”h]”(jæ )�”}”(hŒ``source_priv``”h]”j’)�”}”(hjÞh]”hŒ source_priv”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÜubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KhhjØubj)�”}”(hhh]”hï)�”}”(hŒ6Driver Private data for enable/disable source handlers”h]”hŒ6Driver Private data for enable/disable source handlers”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jóh´Khhjôubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjØubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jóh´Khhj«ubjà )�”}”(hŒ9``enable_source`` Enable Source Handler function pointer ”h]”(jæ )�”}”(hŒ``enable_source``”h]”j’)�”}”(hjh]”hŒ enable_source”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kihjubj)�”}”(hhh]”hï)�”}”(hŒ&Enable Source Handler function pointer”h]”hŒ&Enable Source Handler function pointer”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j,h´Kihj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j,h´Kihj«ubjà )�”}”(hŒ;``disable_source`` Disable Source Handler function pointer ”h]”(jæ )�”}”(hŒ``disable_source``”h]”j’)�”}”(hjPh]”hŒdisable_source”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjNubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KjhjJubj)�”}”(hhh]”hï)�”}”(hŒ'Disable Source Handler function pointer”h]”hŒ'Disable Source Handler function pointer”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jeh´Kjhjfubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjJubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jeh´Kjhj«ubjà )�”}”(hŒ$``ops`` Operation handler callbacks ”h]”(jæ )�”}”(hŒ``ops``”h]”j’)�”}”(hj‰h]”hŒops”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Klhjƒubj)�”}”(hhh]”hï)�”}”(hŒOperation handler callbacks”h]”hŒOperation handler callbacks”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jžh´KlhjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jžh´Klhj«ubjà )�”}”(hŒv``req_queue_mutex`` Serialise the MEDIA_REQUEST_IOC_QUEUE ioctl w.r.t. other operations that stop or start streaming. ”h]”(jæ )�”}”(hŒ``req_queue_mutex``”h]”j’)�”}”(hjÂh]”hŒreq_queue_mutex”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Knhj¼ubj)�”}”(hhh]”hï)�”}”(hŒaSerialise the MEDIA_REQUEST_IOC_QUEUE ioctl w.r.t. other operations that stop or start streaming.”h]”hŒaSerialise the MEDIA_REQUEST_IOC_QUEUE ioctl w.r.t. other operations that stop or start streaming.”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KmhjØubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j×h´Knhj«ubjà )�”}”(hŒ/``num_requests`` number of associated requests ”h]”(jæ )�”}”(hŒ``num_requests``”h]”j’)�”}”(hjüh]”hŒ num_requests”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kohjöubj)�”}”(hhh]”hï)�”}”(hŒnumber of associated requests”h]”hŒnumber of associated requests”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´Kohjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjöubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jh´Kohj«ubjà )�”}”(hŒ=``num_request_objects`` number of associated request objects ”h]”(jæ )�”}”(hŒ``num_request_objects``”h]”j’)�”}”(hj5h]”hŒnum_request_objects”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kphj/ubj)�”}”(hhh]”hï)�”}”(hŒ$number of associated request objects”h]”hŒ$number of associated request objects”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jJh´KphjKubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jJh´Kphj«ubjà )�”}”(hŒ&``media_dir`` DebugFS media directory ”h]”(jæ )�”}”(hŒ ``media_dir``”h]”j’)�”}”(hjnh]”hŒ media_dir”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kqhjhubj)�”}”(hhh]”hï)�”}”(hŒDebugFS media directory”h]”hŒDebugFS media directory”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jƒh´Kqhj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjhubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jƒh´Kqhj«ubjà )�”}”(hŒ2``request_id`` Used to generate unique request IDs”h]”(jæ )�”}”(hŒ``request_id``”h]”j’)�”}”(hj§h]”hŒ request_id”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kqhj¡ubj)�”}”(hhh]”hï)�”}”(hŒ#Used to generate unique request IDs”h]”hŒ#Used to generate unique request IDs”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Krhj½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j¼h´Kqhj«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjcubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjêh]”hŒ Description”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjèubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kuhjá h²hubhï)�”}”(hŒÚThis structure represents an abstract high-level media device. It allows easy access to entities and provides basic media device-level support. The structure can be allocated directly or embedded in a larger structure.”h]”hŒÚThis structure represents an abstract high-level media device. It allows easy access to entities and provides basic media device-level support. The structure can be allocated directly or embedded in a larger structure.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Krhjá h²hubhï)�”}”(hŒ\The parent **dev** is a physical device. It must be set before registering the media device.”h]”(hŒ The parent ”…”�”}”(hjh²hh³Nh´Nubj')�”}”(hŒ**dev**”h]”hŒdev”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjubhŒJ is a physical device. It must be set before registering the media device.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kvhjá h²hubhï)�”}”(hŒ[**model** is a descriptive model name exported through sysfs. It doesn't have to be unique.”h]”(j')�”}”(hŒ **model**”h]”hŒmodel”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj0ubhŒT is a descriptive model name exported through sysfs. It doesn’t have to be unique.”…”�”}”(hj0h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kyhjá h²hubhï)�”}”(hŒÄ**enable_source** is a handler to find source entity for the sink entity and activate the link between them if source entity is free. Drivers should call this handler before accessing the source.”h]”(j')�”}”(hŒ**enable_source**”h]”hŒ enable_source”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjMubhŒ³ is a handler to find source entity for the sink entity and activate the link between them if source entity is free. Drivers should call this handler before accessing the source.”…”�”}”(hjMh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K|hjá h²hubhï)�”}”(hŒ¨**disable_source** is a handler to find source entity for the sink entity and deactivate the link between them. Drivers should call this handler to release the source.”h]”(j')�”}”(hŒ**disable_source**”h]”hŒdisable_source”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjjubhŒ– is a handler to find source entity for the sink entity and deactivate the link between them. Drivers should call this handler to release the source.”…”�”}”(hjjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K�hjá h²hubhï)�”}”(hŒ»Use-case: find tuner entity connected to the decoder entity and check if it is available, and activate the link between them from **enable_source** and deactivate from **disable_source**.”h]”(hŒ‚Use-case: find tuner entity connected to the decoder entity and check if it is available, and activate the link between them from ”…”�”}”(hj‡h²hh³Nh´Nubj')�”}”(hŒ**enable_source**”h]”hŒ enable_source”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj‡ubhŒ and deactivate from ”…”�”}”(hj‡h²hh³Nh´Nubj')�”}”(hŒ**disable_source**”h]”hŒdisable_source”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj‡ubhŒ.”…”�”}”(hj‡h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´K…hjá h²hubj¬)�”}”(hXyBridge driver is expected to implement and set the handler when :c:type:`media_device` is registered or when bridge driver finds the media_device during probe. Bridge driver sets source_priv with information necessary to run **enable_source** and **disable_source** handlers. Callers should hold graph_mutex to access and call **enable_source** and **disable_source** handlers.”h]”hï)�”}”(hXyBridge driver is expected to implement and set the handler when :c:type:`media_device` is registered or when bridge driver finds the media_device during probe. Bridge driver sets source_priv with information necessary to run **enable_source** and **disable_source** handlers. Callers should hold graph_mutex to access and call **enable_source** and **disable_source** handlers.”h]”(hŒ@Bridge driver is expected to implement and set the handler when ”…”�”}”(hj¾h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hjÈh]”hŒ media_device”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjÆubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰Œ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”sbjŒ media_device”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KŒhj¾ubhŒ‹ is registered or when bridge driver finds the media_device during probe. Bridge driver sets source_priv with information necessary to run ”…”�”}”(hj¾h²hh³Nh´Nubj')�”}”(hŒ**enable_source**”h]”hŒ enable_source”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¾ubhŒ and ”…”�”}”(hj¾h²hh³Nh´Nubj')�”}”(hŒ**disable_source**”h]”hŒdisable_source”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¾ubhŒ> handlers. Callers should hold graph_mutex to access and call ”…”�”}”(hj¾h²hh³Nh´Nubj')�”}”(hŒ**enable_source**”h]”hŒ enable_source”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¾ubhŒ and ”…”�”}”(hj¾h²hh³Nh´Nubj')�”}”(hŒ**disable_source**”h]”hŒdisable_source”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¾ubhŒ handlers.”…”�”}”(hj¾h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jíh´KŒhjºubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_device_init (C function)”Œc.media_device_init”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ2void media_device_init (struct media_device *mdev)”h]”j )�”}”(hŒ1void media_device_init(struct media_device *mdev)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1j_hj[h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KÌubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj[h²hh³jph´KÌubj8 )�”}”(hŒmedia_device_init”h]”j> )�”}”(hŒmedia_device_init”h]”hŒmedia_device_init”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj[h²hh³jph´KÌubhŒdesc_parameterlist”“”)�”}”(hŒ(struct media_device *mdev)”h]”hŒdesc_parameter”“”)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjŸubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjŸubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¾ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”Œ identifier”Œ reftarget”jÃŒmodname”NŒ classname”Njäjç)�”}”jê]”jåŒ ASTIdentifier”“”)�”}”j×j…sbŒc.media_device_init”†”asbuh1hhjŸubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjŸubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jòhjŸubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjŸubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj™ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj[h²hh³jph´KÌubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjWh²hh³jph´KÌubah}”(h]”jRah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jph´KÌhjTh²hubjj )�”}”(hhh]”hï)�”}”(hŒ"Initializes a media device element”h]”hŒ"Initializes a media device element”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KÌhj*h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjTh²hh³jph´KÌubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jEjŒ jEj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX‡**Parameters** ``struct media_device *mdev`` pointer to struct :c:type:`media_device` **Description** This function initializes the media device prior to its registration. The media device initialization and registration is split in two functions to avoid race conditions and make the media device available to user-space before the media graph has been completed. So drivers need to first initialize the media device, register any entity within the media device, create pad to pad links and then finally register the media device by calling media_device_register() as a final step. The caller is responsible for initializing the media device before registration. The following fields must be set: - dev must point to the parent device - model must be filled with the device model name The bus_info field is set by media_device_init() for PCI and platform devices if the field begins with '\0'.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjOh]”hŒ Parameters”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjMubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KÐhjIubjÛ )�”}”(hhh]”jà )�”}”(hŒG``struct media_device *mdev`` pointer to struct :c:type:`media_device` ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hjnh]”hŒstruct media_device *mdev”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KÎhjhubj)�”}”(hhh]”hï)�”}”(hŒ(pointer to struct :c:type:`media_device`”h]”(hŒpointer to struct ”…”�”}”(hj‡h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hj‘h]”hŒ media_device”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj�ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³jƒh´KÎhj‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jƒh´KÎhj„ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjhubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jƒh´KÎhjeubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjIubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjÈh]”hŒ Description”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KÐhjIubhï)�”}”(hXThis function initializes the media device prior to its registration. The media device initialization and registration is split in two functions to avoid race conditions and make the media device available to user-space before the media graph has been completed.”h]”hXThis function initializes the media device prior to its registration. The media device initialization and registration is split in two functions to avoid race conditions and make the media device available to user-space before the media graph has been completed.”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KÏhjIubhï)�”}”(hŒÙSo drivers need to first initialize the media device, register any entity within the media device, create pad to pad links and then finally register the media device by calling media_device_register() as a final step.”h]”hŒÙSo drivers need to first initialize the media device, register any entity within the media device, create pad to pad links and then finally register the media device by calling media_device_register() as a final step.”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KÔhjIubhï)�”}”(hŒrThe caller is responsible for initializing the media device before registration. The following fields must be set:”h]”hŒrThe caller is responsible for initializing the media device before registration. The following fields must be set:”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KØhjIubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒ#dev must point to the parent device”h]”hï)�”}”(hjh]”hŒ#dev must point to the parent device”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KÛhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubj)�”}”(hŒ0model must be filled with the device model name ”h]”hï)�”}”(hŒ/model must be filled with the device model name”h]”hŒ/model must be filled with the device model name”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KÜhj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1j h³j#h´KÛhjIubhï)�”}”(hŒlThe bus_info field is set by media_device_init() for PCI and platform devices if the field begins with '\0'.”h]”hŒpThe bus_info field is set by media_device_init() for PCI and platform devices if the field begins with ‘0’.”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KÞhjIubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ!media_device_cleanup (C function)”Œc.media_device_cleanup”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ5void media_device_cleanup (struct media_device *mdev)”h]”j )�”}”(hŒ4void media_device_cleanup(struct media_device *mdev)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjvh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kåubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjvh²hh³jˆh´Kåubj8 )�”}”(hŒmedia_device_cleanup”h]”j> )�”}”(hŒmedia_device_cleanup”h]”hŒmedia_device_cleanup”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj—ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjvh²hh³jˆh´Kåubj˜)�”}”(hŒ(struct media_device *mdev)”h]”jž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj³ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj³ubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÒubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j׌modname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j�sbŒc.media_device_cleanup”†”asbuh1hhj³ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj³ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj³ubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj³ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj¯ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjvh²hh³jˆh´Kåubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjrh²hh³jˆh´Kåubah}”(h]”jmah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jˆh´Kåhjoh²hubjj )�”}”(hhh]”hï)�”}”(hŒCleanups a media device element”h]”hŒCleanups a media device element”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kåhj7h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjoh²hh³jˆh´Kåubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jRjŒ jRj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒÆ**Parameters** ``struct media_device *mdev`` pointer to struct :c:type:`media_device` **Description** This function that will destroy the graph_mutex that is initialized in media_device_init().”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj\h]”hŒ Parameters”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjZubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KéhjVubjÛ )�”}”(hhh]”jà )�”}”(hŒG``struct media_device *mdev`` pointer to struct :c:type:`media_device` ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hj{h]”hŒstruct media_device *mdev”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjyubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kçhjuubj)�”}”(hhh]”hï)�”}”(hŒ(pointer to struct :c:type:`media_device`”h]”(hŒpointer to struct ”…”�”}”(hj”h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hjžh]”hŒ media_device”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjœubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³j�h´Kçhj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j�h´Kçhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjuubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j�h´Kçhjrubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjVubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjÕh]”hŒ Description”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KéhjVubhï)�”}”(hŒ[This function that will destroy the graph_mutex that is initialized in media_device_init().”h]”hŒ[This function that will destroy the graph_mutex that is initialized in media_device_init().”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KèhjVubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ$__media_device_register (C function)”Œc.__media_device_register”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒMint __media_device_register (struct media_device *mdev, struct module *owner)”h]”j )�”}”(hŒLint __media_device_register(struct media_device *mdev, struct module *owner)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kïubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjh²hh³j(h´Kïubj8 )�”}”(hŒ__media_device_register”h]”j> )�”}”(hŒ__media_device_register”h]”hŒ__media_device_register”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj7ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjh²hh³j(h´Kïubj˜)�”}”(hŒ1(struct media_device *mdev, struct module *owner)”h]”(jž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjSubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjSubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjrubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jwŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j=sbŒc.__media_device_register”†”asbuh1hhjSubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjSubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjSubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjSubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjOubjž)�”}”(hŒstruct module *owner”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÅubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÅubh)�”}”(hhh]”j> )�”}”(hŒmodule”h]”hŒmodule”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjäubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jéŒmodname”NŒ classname”Njäjç)�”}”jê]”j‘Œc.__media_device_register”†”asbuh1hhjÅubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÅubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÅubj> )�”}”(hŒowner”h]”hŒowner”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÅubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjOubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjh²hh³j(h´Kïubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjh²hh³j(h´Kïubah}”(h]”j ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j(h´Kïhjh²hubjj )�”}”(hhh]”hï)�”}”(hŒ Registers a media device element”h]”hŒ Registers a media device element”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KïhjGh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjh²hh³j(h´Kïubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jbjŒ jbj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXl**Parameters** ``struct media_device *mdev`` pointer to struct :c:type:`media_device` ``struct module *owner`` should be filled with ``THIS_MODULE`` **Description** Users, should, instead, call the media_device_register() macro. The caller is responsible for initializing the :c:type:`media_device` structure before registration. The following fields of :c:type:`media_device` must be set: - :c:type:`media_device.model ` must be filled with the device model name as a NUL-terminated UTF-8 string. The device/model revision must not be stored in this field. The following fields are optional: - :c:type:`media_device.serial ` is a unique serial number stored as a NUL-terminated ASCII string. The field is big enough to store a GUID in text form. If the hardware doesn't provide a unique serial number this field must be left empty. - :c:type:`media_device.bus_info ` represents the location of the device in the system as a NUL-terminated ASCII string. For PCI/PCIe devices :c:type:`media_device.bus_info ` must be set to "PCI:" (or "PCIe:") followed by the value of pci_name(). For USB devices,the usb_make_path() function must be used. This field is used by applications to distinguish between otherwise identical devices that don't provide a serial number. - :c:type:`media_device.hw_revision ` is the hardware device revision in a driver-specific format. When possible the revision should be formatted with the KERNEL_VERSION() macro. .. note:: #) Upon successful registration a character device named media[0-9]+ is created. The device major and minor numbers are dynamic. The model name is exported as a sysfs attribute. #) Unregistering a media device that hasn't been registered is **NOT** safe. **Return** returns zero on success or a negative error code.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjlh]”hŒ Parameters”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KóhjfubjÛ )�”}”(hhh]”(jà )�”}”(hŒG``struct media_device *mdev`` pointer to struct :c:type:`media_device` ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hj‹h]”hŒstruct media_device *mdev”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kñhj…ubj)�”}”(hhh]”hï)�”}”(hŒ(pointer to struct :c:type:`media_device`”h]”(hŒpointer to struct ”…”�”}”(hj¤h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hj®h]”hŒ media_device”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj¬ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³j h´Kñhj¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j h´Kñhj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj…ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j h´Kñhj‚ubjà )�”}”(hŒ?``struct module *owner`` should be filled with ``THIS_MODULE`` ”h]”(jæ )�”}”(hŒ``struct module *owner``”h]”j’)�”}”(hjãh]”hŒstruct module *owner”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjáubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KòhjÝubj)�”}”(hhh]”hï)�”}”(hŒ%should be filled with ``THIS_MODULE``”h]”(hŒshould be filled with ”…”�”}”(hjüh²hh³Nh´Nubj’)�”}”(hŒ``THIS_MODULE``”h]”hŒ THIS_MODULE”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jøh´Kòhjùubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÝubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jøh´Kòhj‚ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjfubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj,h]”hŒ Description”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kôhjfubhï)�”}”(hŒ?Users, should, instead, call the media_device_register() macro.”h]”hŒ?Users, should, instead, call the media_device_register() macro.”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kóhjfubhï)�”}”(hŒ The caller is responsible for initializing the :c:type:`media_device` structure before registration. The following fields of :c:type:`media_device` must be set:”h]”(hŒ/The caller is responsible for initializing the ”…”�”}”(hjQh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hj[h]”hŒ media_device”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjYubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´KõhjQubhŒ8 structure before registration. The following fields of ”…”�”}”(hjQh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hjh]”hŒ media_device”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj}ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³jxh´KõhjQubhŒ must be set:”…”�”}”(hjQh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jxh´KõhjfubhŒ block_quote”“”)�”}”(hŒº- :c:type:`media_device.model ` must be filled with the device model name as a NUL-terminated UTF-8 string. The device/model revision must not be stored in this field. ”h]”j )�”}”(hhh]”j)�”}”(hŒ´:c:type:`media_device.model ` must be filled with the device model name as a NUL-terminated UTF-8 string. The device/model revision must not be stored in this field. ”h]”hï)�”}”(hŒ³:c:type:`media_device.model ` must be filled with the device model name as a NUL-terminated UTF-8 string. The device/model revision must not be stored in this field.”h]”(h)�”}”(hŒ+:c:type:`media_device.model `”h]”j’)�”}”(hj¹h]”hŒmedia_device.model”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj·ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jäjèjŒ media_device”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Køhj³ubhŒˆ must be filled with the device model name as a NUL-terminated UTF-8 string. The device/model revision must not be stored in this field.”…”�”}”(hj³h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÖh´Køhj¯ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¬ubah}”(h]”h ]”h"]”h$]”h&]”jIjJuh1j h³jÖh´Køhj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦h³jÖh´Køhjfubhï)�”}”(hŒ"The following fields are optional:”h]”hŒ"The following fields are optional:”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kühjfubj§)�”}”(hX�- :c:type:`media_device.serial ` is a unique serial number stored as a NUL-terminated ASCII string. The field is big enough to store a GUID in text form. If the hardware doesn't provide a unique serial number this field must be left empty. - :c:type:`media_device.bus_info ` represents the location of the device in the system as a NUL-terminated ASCII string. For PCI/PCIe devices :c:type:`media_device.bus_info ` must be set to "PCI:" (or "PCIe:") followed by the value of pci_name(). For USB devices,the usb_make_path() function must be used. This field is used by applications to distinguish between otherwise identical devices that don't provide a serial number. - :c:type:`media_device.hw_revision ` is the hardware device revision in a driver-specific format. When possible the revision should be formatted with the KERNEL_VERSION() macro. ”h]”j )�”}”(hhh]”(j)�”}”(hŒü:c:type:`media_device.serial ` is a unique serial number stored as a NUL-terminated ASCII string. The field is big enough to store a GUID in text form. If the hardware doesn't provide a unique serial number this field must be left empty. ”h]”hï)�”}”(hŒû:c:type:`media_device.serial ` is a unique serial number stored as a NUL-terminated ASCII string. The field is big enough to store a GUID in text form. If the hardware doesn't provide a unique serial number this field must be left empty.”h]”(h)�”}”(hŒ,:c:type:`media_device.serial `”h]”j’)�”}”(hj h]”hŒmedia_device.serial”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jäjèjŒ media_device”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Kþhj ubhŒÑ is a unique serial number stored as a NUL-terminated ASCII string. The field is big enough to store a GUID in text form. If the hardware doesn’t provide a unique serial number this field must be left empty.”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j0 h´Kþhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubj)�”}”(hXÆ:c:type:`media_device.bus_info ` represents the location of the device in the system as a NUL-terminated ASCII string. For PCI/PCIe devices :c:type:`media_device.bus_info ` must be set to "PCI:" (or "PCIe:") followed by the value of pci_name(). For USB devices,the usb_make_path() function must be used. This field is used by applications to distinguish between otherwise identical devices that don't provide a serial number. ”h]”hï)�”}”(hXÅ:c:type:`media_device.bus_info ` represents the location of the device in the system as a NUL-terminated ASCII string. For PCI/PCIe devices :c:type:`media_device.bus_info ` must be set to "PCI:" (or "PCIe:") followed by the value of pci_name(). For USB devices,the usb_make_path() function must be used. This field is used by applications to distinguish between otherwise identical devices that don't provide a serial number.”h]”(h)�”}”(hŒ.:c:type:`media_device.bus_info `”h]”j’)�”}”(hjK h]”hŒmedia_device.bus_info”…”�”}”(hjM h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjI ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jäjèjŒ media_device”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MhjE ubhŒl represents the location of the device in the system as a NUL-terminated ASCII string. For PCI/PCIe devices ”…”�”}”(hjE h²hh³Nh´Nubh)�”}”(hŒ.:c:type:`media_device.bus_info `”h]”j’)�”}”(hjo h]”hŒmedia_device.bus_info”…”�”}”(hjq h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjm ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jäjèjŒ media_device”uh1h•h³jh h´MhjE ubhX must be set to “PCI:â€� (or “PCIe:â€�) followed by the value of pci_name(). For USB devices,the usb_make_path() function must be used. This field is used by applications to distinguish between otherwise identical devices that don’t provide a serial number.”…”�”}”(hjE h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh h´MhjA ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubj)�”}”(hŒ¿:c:type:`media_device.hw_revision ` is the hardware device revision in a driver-specific format. When possible the revision should be formatted with the KERNEL_VERSION() macro. ”h]”hï)�”}”(hŒ¾:c:type:`media_device.hw_revision ` is the hardware device revision in a driver-specific format. When possible the revision should be formatted with the KERNEL_VERSION() macro.”h]”(h)�”}”(hŒ1:c:type:`media_device.hw_revision `”h]”j’)�”}”(hj¦ h]”hŒmedia_device.hw_revision”…”�”}”(hj¨ h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj¤ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jäjèjŒ media_device”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M hj  ubhŒ� is the hardware device revision in a driver-specific format. When possible the revision should be formatted with the KERNEL_VERSION() macro.”…”�”}”(hj  h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jà h´M hjœ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”jIjJuh1j h³j0 h´Kþhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦h³j0 h´Kþhjfubj¬)�”}”(hŒÿ#) Upon successful registration a character device named media[0-9]+ is created. The device major and minor numbers are dynamic. The model name is exported as a sysfs attribute. #) Unregistering a media device that hasn't been registered is **NOT** safe.”h]”hŒenumerated_list”“”)�”}”(hhh]”(j)�”}”(hŒ¯Upon successful registration a character device named media[0-9]+ is created. The device major and minor numbers are dynamic. The model name is exported as a sysfs attribute. ”h]”hï)�”}”(hŒ®Upon successful registration a character device named media[0-9]+ is created. The device major and minor numbers are dynamic. The model name is exported as a sysfs attribute.”h]”hŒ®Upon successful registration a character device named media[0-9]+ is created. The device major and minor numbers are dynamic. The model name is exported as a sysfs attribute.”…”�”}”(hjí h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mhjé ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjæ ubj)�”}”(hŒIUnregistering a media device that hasn't been registered is **NOT** safe.”h]”hï)�”}”(hj!h]”(hŒ>Unregistering a media device that hasn’t been registered is ”…”�”}”(hj!h²hh³Nh´Nubj')�”}”(hŒ**NOT**”h]”hŒNOT”…”�”}”(hj !h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj!ubhŒ safe.”…”�”}”(hj!h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mhj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjæ ubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ)”uh1jä hjà ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjfubhï)�”}”(hŒ **Return**”h]”j')�”}”(hj?!h]”hŒReturn”…”�”}”(hjA!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj=!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mhjfubhï)�”}”(hŒ1returns zero on success or a negative error code.”h]”hŒ1returns zero on success or a negative error code.”…”�”}”(hjU!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mhjfubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_device_register (C macro)”Œc.media_device_register”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_device_register”h]”j )�”}”(hŒmedia_device_register”h]”j8 )�”}”(hŒmedia_device_register”h]”j> )�”}”(hj~!h]”hŒmedia_device_register”…”�”}”(hjˆ!h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj„!ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj€!h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj|!h²hh³j›!h´Mubah}”(h]”jw!ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j›!h´Mhjy!h²hubjj )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1ji hjy!h²hh³j›!h´Mubeh}”(h]”h ]”(j³Œmacro”eh"]”h$]”h&]”jŠ j³j‹ j´!jŒ j´!j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubhï)�”}”(hŒ ``media_device_register (mdev)``”h]”j’)�”}”(hjº!h]”hŒmedia_device_register (mdev)”…”�”}”(hj¼!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¸!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mhjá h²hubj§)�”}”(hŒ!Registers a media device element ”h]”hï)�”}”(hŒ Registers a media device element”h]”hŒ Registers a media device element”…”�”}”(hjÔ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MhjÐ!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦h³jâ!h´Mhjá h²hubj‘ )�”}”(hŒÖ**Parameters** ``mdev`` pointer to struct :c:type:`media_device` **Description** This macro calls __media_device_register() passing ``THIS_MODULE`` as the __media_device_register() second argument (**owner**).”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjï!h]”hŒ Parameters”…”�”}”(hjñ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjí!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M hjé!ubjÛ )�”}”(hhh]”jà )�”}”(hŒ2``mdev`` pointer to struct :c:type:`media_device` ”h]”(jæ )�”}”(hŒ``mdev``”h]”j’)�”}”(hj"h]”hŒmdev”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj "ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mhj"ubj)�”}”(hhh]”hï)�”}”(hŒ(pointer to struct :c:type:`media_device`”h]”(hŒpointer to struct ”…”�”}”(hj'"h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hj1"h]”hŒ media_device”…”�”}”(hj3"h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj/"ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³j#"h´Mhj'"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j#"h´Mhj$"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j#"h´Mhj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjé!ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjh"h]”hŒ Description”…”�”}”(hjj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjf"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M hjé!ubhï)�”}”(hŒ€This macro calls __media_device_register() passing ``THIS_MODULE`` as the __media_device_register() second argument (**owner**).”h]”(hŒ3This macro calls __media_device_register() passing ”…”�”}”(hj~"h²hh³Nh´Nubj’)�”}”(hŒ``THIS_MODULE``”h]”hŒ THIS_MODULE”…”�”}”(hj†"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj~"ubhŒ3 as the __media_device_register() second argument (”…”�”}”(hj~"h²hh³Nh´Nubj')�”}”(hŒ **owner**”h]”hŒowner”…”�”}”(hj˜"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj~"ubhŒ).”…”�”}”(hj~"h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mhjé!ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ$media_device_unregister (C function)”Œc.media_device_unregister”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ8void media_device_unregister (struct media_device *mdev)”h]”j )�”}”(hŒ7void media_device_unregister(struct media_device *mdev)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÑ"h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjÍ"h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M&ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjà"h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÍ"h²hh³jß"h´M&ubj8 )�”}”(hŒmedia_device_unregister”h]”j> )�”}”(hŒmedia_device_unregister”h]”hŒmedia_device_unregister”…”�”}”(hjò"h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjî"ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÍ"h²hh³jß"h´M&ubj˜)�”}”(hŒ(struct media_device *mdev)”h]”jž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj #ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj #ubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hj,#h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj)#ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j.#Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jô"sbŒc.media_device_unregister”†”asbuh1hhj #ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjL#h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj #ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjZ#h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj #ubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hjg#h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj #ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj#ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjÍ"h²hh³jß"h´M&ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÉ"h²hh³jß"h´M&ubah}”(h]”jÄ"ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jß"h´M&hjÆ"h²hubjj )�”}”(hhh]”hï)�”}”(hŒ"Unregisters a media device element”h]”hŒ"Unregisters a media device element”…”�”}”(hj‘#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M&hjŽ#h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÆ"h²hh³jß"h´M&ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j©#jŒ j©#j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ¾**Parameters** ``struct media_device *mdev`` pointer to struct :c:type:`media_device` **Description** It is safe to call this function on an unregistered (but initialised) media device.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj³#h]”hŒ Parameters”…”�”}”(hjµ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj±#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M*hj­#ubjÛ )�”}”(hhh]”jà )�”}”(hŒG``struct media_device *mdev`` pointer to struct :c:type:`media_device` ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hjÒ#h]”hŒstruct media_device *mdev”…”�”}”(hjÔ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÐ#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M(hjÌ#ubj)�”}”(hhh]”hï)�”}”(hŒ(pointer to struct :c:type:`media_device`”h]”(hŒpointer to struct ”…”�”}”(hjë#h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hjõ#h]”hŒ media_device”…”�”}”(hj÷#h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjó#ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³jç#h´M(hjë#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jç#h´M(hjè#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÌ#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jç#h´M(hjÉ#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj­#ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj,$h]”hŒ Description”…”�”}”(hj.$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj*$ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M*hj­#ubhï)�”}”(hŒSIt is safe to call this function on an unregistered (but initialised) media device.”h]”hŒSIt is safe to call this function on an unregistered (but initialised) media device.”…”�”}”(hjB$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M)hj­#ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ)media_device_register_entity (C function)”Œc.media_device_register_entity”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒYint media_device_register_entity (struct media_device *mdev, struct media_entity *entity)”h]”j )�”}”(hŒXint media_device_register_entity(struct media_device *mdev, struct media_entity *entity)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hjq$h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjm$h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M0ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj€$h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjm$h²hh³j$h´M0ubj8 )�”}”(hŒmedia_device_register_entity”h]”j> )�”}”(hŒmedia_device_register_entity”h]”hŒmedia_device_register_entity”…”�”}”(hj’$h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjŽ$ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjm$h²hh³j$h´M0ubj˜)�”}”(hŒ8(struct media_device *mdev, struct media_entity *entity)”h]”(jž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj®$h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjª$ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»$h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjª$ubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hjÌ$h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÉ$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jÎ$Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j”$sbŒc.media_device_register_entity”†”asbuh1hhjª$ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjì$h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjª$ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjú$h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjª$ubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjª$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj¦$ubjž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj %h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj%ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-%h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj%ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hj>%h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj;%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j@%Œmodname”NŒ classname”Njäjç)�”}”jê]”jè$Œc.media_device_register_entity”†”asbuh1hhj%ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\%h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj%ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjj%h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj%ubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hjw%h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj%ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj¦$ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjm$h²hh³j$h´M0ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hji$h²hh³j$h´M0ubah}”(h]”jd$ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j$h´M0hjf$h²hubjj )�”}”(hhh]”hï)�”}”(hŒEregisters a media entity inside a previously registered media device.”h]”hŒEregisters a media entity inside a previously registered media device.”…”�”}”(hj¡%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M0hjž%h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjf$h²hh³j$h´M0ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j¹%jŒ j¹%j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXà**Parameters** ``struct media_device *mdev`` pointer to struct :c:type:`media_device` ``struct media_entity *entity`` pointer to struct :c:type:`media_entity` to be registered **Description** Entities are identified by a unique positive integer ID. The media controller framework will such ID automatically. IDs are not guaranteed to be contiguous, and the ID number can change on newer Kernel versions. So, neither the driver nor userspace should hardcode ID numbers to refer to the entities, but, instead, use the framework to find the ID, when needed. The media_entity name, type and flags fields should be initialized before calling media_device_register_entity(). Entities embedded in higher-level standard structures can have some of those fields set by the higher-level framework. If the device has pads, media_entity_pads_init() should be called before this function. Otherwise, the :c:type:`media_entity.pad ` and :c:type:`media_entity.num_pads ` should be zeroed before calling this function. Entities have flags that describe the entity capabilities and state: ``MEDIA_ENT_FL_DEFAULT`` indicates the default entity for a given type. This can be used to report the default audio and video devices or the default camera sensor. .. note:: Drivers should set the entity function before calling this function. Please notice that the values ``MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN`` and ``MEDIA_ENT_F_UNKNOWN`` should not be used by the drivers.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjÃ%h]”hŒ Parameters”…”�”}”(hjÅ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÁ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M4hj½%ubjÛ )�”}”(hhh]”(jà )�”}”(hŒG``struct media_device *mdev`` pointer to struct :c:type:`media_device` ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hjâ%h]”hŒstruct media_device *mdev”…”�”}”(hjä%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjà%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M3hjÜ%ubj)�”}”(hhh]”hï)�”}”(hŒ(pointer to struct :c:type:`media_device`”h]”(hŒpointer to struct ”…”�”}”(hjû%h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hj&h]”hŒ media_device”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj&ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³j÷%h´M3hjû%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j÷%h´M3hjø%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÜ%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j÷%h´M3hjÙ%ubjà )�”}”(hŒZ``struct media_entity *entity`` pointer to struct :c:type:`media_entity` to be registered ”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hj:&h]”hŒstruct media_entity *entity”…”�”}”(hj<&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj8&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M4hj4&ubj)�”}”(hhh]”hï)�”}”(hŒ9pointer to struct :c:type:`media_entity` to be registered”h]”(hŒpointer to struct ”…”�”}”(hjS&h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hj]&h]”hŒ media_entity”…”�”}”(hj_&h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj[&ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_entity”uh1hh³jO&h´M4hjS&ubhŒ to be registered”…”�”}”(hjS&h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jO&h´M4hjP&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj4&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jO&h´M4hjÙ%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj½%ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj˜&h]”hŒ Description”…”�”}”(hjš&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj–&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M6hj½%ubhï)�”}”(hXjEntities are identified by a unique positive integer ID. The media controller framework will such ID automatically. IDs are not guaranteed to be contiguous, and the ID number can change on newer Kernel versions. So, neither the driver nor userspace should hardcode ID numbers to refer to the entities, but, instead, use the framework to find the ID, when needed.”h]”hXjEntities are identified by a unique positive integer ID. The media controller framework will such ID automatically. IDs are not guaranteed to be contiguous, and the ID number can change on newer Kernel versions. So, neither the driver nor userspace should hardcode ID numbers to refer to the entities, but, instead, use the framework to find the ID, when needed.”…”�”}”(hj®&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M5hj½%ubhï)�”}”(hŒèThe media_entity name, type and flags fields should be initialized before calling media_device_register_entity(). Entities embedded in higher-level standard structures can have some of those fields set by the higher-level framework.”h]”hŒèThe media_entity name, type and flags fields should be initialized before calling media_device_register_entity(). Entities embedded in higher-level standard structures can have some of those fields set by the higher-level framework.”…”�”}”(hj½&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M<hj½%ubhï)�”}”(hŒòIf the device has pads, media_entity_pads_init() should be called before this function. Otherwise, the :c:type:`media_entity.pad ` and :c:type:`media_entity.num_pads ` should be zeroed before calling this function.”h]”(hŒgIf the device has pads, media_entity_pads_init() should be called before this function. Otherwise, the ”…”�”}”(hjÌ&h²hh³Nh´Nubh)�”}”(hŒ):c:type:`media_entity.pad `”h]”j’)�”}”(hjÖ&h]”hŒmedia_entity.pad”…”�”}”(hjØ&h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjÔ&ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jäjèjŒ media_entity”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MAhjÌ&ubhŒ and ”…”�”}”(hjÌ&h²hh³Nh´Nubh)�”}”(hŒ.:c:type:`media_entity.num_pads `”h]”j’)�”}”(hjú&h]”hŒmedia_entity.num_pads”…”�”}”(hjü&h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjø&ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jäjèjŒ media_entity”uh1hh³jó&h´MAhjÌ&ubhŒ/ should be zeroed before calling this function.”…”�”}”(hjÌ&h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jó&h´MAhj½%ubhï)�”}”(hŒDEntities have flags that describe the entity capabilities and state:”h]”hŒDEntities have flags that describe the entity capabilities and state:”…”�”}”(hj!'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MEhj½%ubjÛ )�”}”(hhh]”jà )�”}”(hŒ¥``MEDIA_ENT_FL_DEFAULT`` indicates the default entity for a given type. This can be used to report the default audio and video devices or the default camera sensor. ”h]”(jæ )�”}”(hŒ``MEDIA_ENT_FL_DEFAULT``”h]”j’)�”}”(hj9'h]”hŒMEDIA_ENT_FL_DEFAULT”…”�”}”(hj;'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj7'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MJhj3'ubj)�”}”(hhh]”hï)�”}”(hŒ‹indicates the default entity for a given type. This can be used to report the default audio and video devices or the default camera sensor.”h]”hŒ‹indicates the default entity for a given type. This can be used to report the default audio and video devices or the default camera sensor.”…”�”}”(hjR'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MHhjO'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj3'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jN'h´MJhj0'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj½%ubj¬)�”}”(hŒÅDrivers should set the entity function before calling this function. Please notice that the values ``MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN`` and ``MEDIA_ENT_F_UNKNOWN`` should not be used by the drivers.”h]”hï)�”}”(hŒÅDrivers should set the entity function before calling this function. Please notice that the values ``MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN`` and ``MEDIA_ENT_F_UNKNOWN`` should not be used by the drivers.”h]”(hŒcDrivers should set the entity function before calling this function. Please notice that the values ”…”�”}”(hjw'h²hh³Nh´Nubj’)�”}”(hŒ#``MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN``”h]”hŒMEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjw'ubhŒ and ”…”�”}”(hjw'h²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_ENT_F_UNKNOWN``”h]”hŒMEDIA_ENT_F_UNKNOWN”…”�”}”(hj‘'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjw'ubhŒ# should not be used by the drivers.”…”�”}”(hjw'h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MNhjs'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj½%ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ+media_device_unregister_entity (C function)”Œ c.media_device_unregister_entity”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒAvoid media_device_unregister_entity (struct media_entity *entity)”h]”j )�”}”(hŒ@void media_device_unregister_entity(struct media_entity *entity)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÐ'h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjÌ'h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MWubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjß'h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÌ'h²hh³jÞ'h´MWubj8 )�”}”(hŒmedia_device_unregister_entity”h]”j> )�”}”(hŒmedia_device_unregister_entity”h]”hŒmedia_device_unregister_entity”…”�”}”(hjñ'h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjí'ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÌ'h²hh³jÞ'h´MWubj˜)�”}”(hŒ(struct media_entity *entity)”h]”jž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj (h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj (ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj (ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hj+(h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj((ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j-(Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jó'sbŒ c.media_device_unregister_entity”†”asbuh1hhj (ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjK(h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj (ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjY(h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj (ubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hjf(h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj (ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj(ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjÌ'h²hh³jÞ'h´MWubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÈ'h²hh³jÞ'h´MWubah}”(h]”jÃ'ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÞ'h´MWhjÅ'h²hubjj )�”}”(hhh]”hï)�”}”(hŒunregisters a media entity.”h]”hŒunregisters a media entity.”…”�”}”(hj�(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MWhj�(h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÅ'h²hh³jÞ'h´MWubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j¨(jŒ j¨(j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXŽ**Parameters** ``struct media_entity *entity`` pointer to struct :c:type:`media_entity` to be unregistered **Description** All links associated with the entity and all PADs are automatically unregistered from the media_device when this function is called. Unregistering an entity will not change the IDs of the other entities and the previoully used ID will never be reused for a newly registered entities. When a media device is unregistered, all its entities are unregistered automatically. No manual entities unregistration is then required. .. note:: The media_entity instance itself must be freed explicitly by the driver if required.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj²(h]”hŒ Parameters”…”�”}”(hj´(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj°(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M[hj¬(ubjÛ )�”}”(hhh]”jà )�”}”(hŒ\``struct media_entity *entity`` pointer to struct :c:type:`media_entity` to be unregistered ”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hjÑ(h]”hŒstruct media_entity *entity”…”�”}”(hjÓ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÏ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MYhjË(ubj)�”}”(hhh]”hï)�”}”(hŒ;pointer to struct :c:type:`media_entity` to be unregistered”h]”(hŒpointer to struct ”…”�”}”(hjê(h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hjô(h]”hŒ media_entity”…”�”}”(hjö(h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjò(ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_entity”uh1hh³jæ(h´MYhjê(ubhŒ to be unregistered”…”�”}”(hjê(h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jæ(h´MYhjç(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjË(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jæ(h´MYhjÈ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj¬(ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj/)h]”hŒ Description”…”�”}”(hj1)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj-)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M[hj¬(ubhï)�”}”(hŒ„All links associated with the entity and all PADs are automatically unregistered from the media_device when this function is called.”h]”hŒ„All links associated with the entity and all PADs are automatically unregistered from the media_device when this function is called.”…”�”}”(hjE)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MZhj¬(ubhï)�”}”(hŒ–Unregistering an entity will not change the IDs of the other entities and the previoully used ID will never be reused for a newly registered entities.”h]”hŒ–Unregistering an entity will not change the IDs of the other entities and the previoully used ID will never be reused for a newly registered entities.”…”�”}”(hjT)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M]hj¬(ubhï)�”}”(hŒ‰When a media device is unregistered, all its entities are unregistered automatically. No manual entities unregistration is then required.”h]”hŒ‰When a media device is unregistered, all its entities are unregistered automatically. No manual entities unregistration is then required.”…”�”}”(hjc)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M`hj¬(ubj¬)�”}”(hŒTThe media_entity instance itself must be freed explicitly by the driver if required.”h]”hï)�”}”(hŒTThe media_entity instance itself must be freed explicitly by the driver if required.”h]”hŒTThe media_entity instance itself must be freed explicitly by the driver if required.”…”�”}”(hjv)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mehjr)ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj¬(ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ0media_device_register_entity_notify (C function)”Œ%c.media_device_register_entity_notify”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒfvoid media_device_register_entity_notify (struct media_device *mdev, struct media_entity_notify *nptr)”h]”j )�”}”(hŒevoid media_device_register_entity_notify(struct media_device *mdev, struct media_entity_notify *nptr)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj«)h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj§)h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mlubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjº)h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj§)h²hh³j¹)h´Mlubj8 )�”}”(hŒ#media_device_register_entity_notify”h]”j> )�”}”(hŒ#media_device_register_entity_notify”h]”hŒ#media_device_register_entity_notify”…”�”}”(hjÌ)h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÈ)ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj§)h²hh³j¹)h´Mlubj˜)�”}”(hŒ=(struct media_device *mdev, struct media_entity_notify *nptr)”h]”(jž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjè)h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjä)ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõ)h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjä)ubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j*Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jÎ)sbŒ%c.media_device_register_entity_notify”†”asbuh1hhjä)ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&*h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjä)ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj4*h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjä)ubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hjA*h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjä)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjà)ubjž)�”}”(hŒ struct media_entity_notify *nptr”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjZ*h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjV*ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjg*h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjV*ubh)�”}”(hhh]”j> )�”}”(hŒmedia_entity_notify”h]”hŒmedia_entity_notify”…”�”}”(hjx*h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hju*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jz*Œmodname”NŒ classname”Njäjç)�”}”jê]”j"*Œ%c.media_device_register_entity_notify”†”asbuh1hhjV*ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–*h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjV*ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj¤*h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjV*ubj> )�”}”(hŒnptr”h]”hŒnptr”…”�”}”(hj±*h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjV*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjà)ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj§)h²hh³j¹)h´Mlubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj£)h²hh³j¹)h´Mlubah}”(h]”jž)ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j¹)h´Mlhj )h²hubjj )�”}”(hhh]”hï)�”}”(hŒ(Registers a media entity_notify callback”h]”hŒ(Registers a media entity_notify callback”…”�”}”(hjÛ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MlhjØ*h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj )h²hh³j¹)h´Mlubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jó*jŒ jó*j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX**Parameters** ``struct media_device *mdev`` The media device ``struct media_entity_notify *nptr`` The media_entity_notify **Description** .. note:: When a new entity is registered, all the registered media_entity_notify callbacks are invoked.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjý*h]”hŒ Parameters”…”�”}”(hjÿ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjû*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mphj÷*ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ/``struct media_device *mdev`` The media device ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hj+h]”hŒstruct media_device *mdev”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mohj+ubj)�”}”(hhh]”hï)�”}”(hŒThe media device”h]”hŒThe media device”…”�”}”(hj5+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j1+h´Mohj2+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j1+h´Mohj+ubjà )�”}”(hŒ=``struct media_entity_notify *nptr`` The media_entity_notify ”h]”(jæ )�”}”(hŒ$``struct media_entity_notify *nptr``”h]”j’)�”}”(hjU+h]”hŒ struct media_entity_notify *nptr”…”�”}”(hjW+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjS+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MphjO+ubj)�”}”(hhh]”hï)�”}”(hŒThe media_entity_notify”h]”hŒThe media_entity_notify”…”�”}”(hjn+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jj+h´Mphjk+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjO+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jj+h´Mphj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj÷*ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj�+h]”hŒ Description”…”�”}”(hj’+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjŽ+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mrhj÷*ubj¬)�”}”(hŒ^When a new entity is registered, all the registered media_entity_notify callbacks are invoked.”h]”hï)�”}”(hŒ^When a new entity is registered, all the registered media_entity_notify callbacks are invoked.”h]”hŒ^When a new entity is registered, all the registered media_entity_notify callbacks are invoked.”…”�”}”(hjª+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mshj¦+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj÷*ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ2media_device_unregister_entity_notify (C function)”Œ'c.media_device_unregister_entity_notify”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒhvoid media_device_unregister_entity_notify (struct media_device *mdev, struct media_entity_notify *nptr)”h]”j )�”}”(hŒgvoid media_device_unregister_entity_notify(struct media_device *mdev, struct media_entity_notify *nptr)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjß+h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjÛ+h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M|ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjî+h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÛ+h²hh³jí+h´M|ubj8 )�”}”(hŒ%media_device_unregister_entity_notify”h]”j> )�”}”(hŒ%media_device_unregister_entity_notify”h]”hŒ%media_device_unregister_entity_notify”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjü+ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÛ+h²hh³jí+h´M|ubj˜)�”}”(hŒ=(struct media_device *mdev, struct media_entity_notify *nptr)”h]”(jž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj,ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj),h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj,ubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hj:,h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj7,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j<,Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j,sbŒ'c.media_device_unregister_entity_notify”†”asbuh1hhj,ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZ,h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj,ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjh,h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj,ubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hju,h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj,ubjž)�”}”(hŒ struct media_entity_notify *nptr”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjŽ,h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjŠ,ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›,h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjŠ,ubh)�”}”(hhh]”j> )�”}”(hŒmedia_entity_notify”h]”hŒmedia_entity_notify”…”�”}”(hj¬,h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj©,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j®,Œmodname”NŒ classname”Njäjç)�”}”jê]”jV,Œ'c.media_device_unregister_entity_notify”†”asbuh1hhjŠ,ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊ,h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjŠ,ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjØ,h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjŠ,ubj> )�”}”(hŒnptr”h]”hŒnptr”…”�”}”(hjå,h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjŠ,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj,ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjÛ+h²hh³jí+h´M|ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj×+h²hh³jí+h´M|ubah}”(h]”jÒ+ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jí+h´M|hjÔ+h²hubjj )�”}”(hhh]”hï)�”}”(hŒ)Unregister a media entity notify callback”h]”hŒ)Unregister a media entity notify callback”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M|hj -h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÔ+h²hh³jí+h´M|ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j'-jŒ j'-j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ€**Parameters** ``struct media_device *mdev`` The media device ``struct media_entity_notify *nptr`` The media_entity_notify”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj1-h]”hŒ Parameters”…”�”}”(hj3-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj/-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M€hj+-ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ/``struct media_device *mdev`` The media device ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hjP-h]”hŒstruct media_device *mdev”…”�”}”(hjR-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjN-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MhjJ-ubj)�”}”(hhh]”hï)�”}”(hŒThe media device”h]”hŒThe media device”…”�”}”(hji-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³je-h´Mhjf-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjJ-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³je-h´MhjG-ubjà )�”}”(hŒ<``struct media_entity_notify *nptr`` The media_entity_notify”h]”(jæ )�”}”(hŒ$``struct media_entity_notify *nptr``”h]”j’)�”}”(hj‰-h]”hŒ struct media_entity_notify *nptr”…”�”}”(hj‹-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj‡-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M�hjƒ-ubj)�”}”(hhh]”hï)�”}”(hŒThe media_entity_notify”h]”hŒThe media_entity_notify”…”�”}”(hj¢-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M€hjŸ-ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjƒ-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jž-h´M�hjG-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj+-ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ"media_device_pci_init (C function)”Œc.media_device_pci_init”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒavoid media_device_pci_init (struct media_device *mdev, struct pci_dev *pci_dev, const char *name)”h]”j )�”}”(hŒ`void media_device_pci_init(struct media_device *mdev, struct pci_dev *pci_dev, const char *name)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjã-h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjß-h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M—ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjò-h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjß-h²hh³jñ-h´M—ubj8 )�”}”(hŒmedia_device_pci_init”h]”j> )�”}”(hŒmedia_device_pci_init”h]”hŒmedia_device_pci_init”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj.ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjß-h²hh³jñ-h´M—ubj˜)�”}”(hŒF(struct media_device *mdev, struct pci_dev *pci_dev, const char *name)”h]”(jž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj .h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj.ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-.h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj.ubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hj>.h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj;.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j@.Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j.sbŒc.media_device_pci_init”†”asbuh1hhj.ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^.h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj.ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjl.h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj.ubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hjy.h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj.ubjž)�”}”(hŒstruct pci_dev *pci_dev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj’.h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjŽ.ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸ.h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjŽ.ubh)�”}”(hhh]”j> )�”}”(hŒpci_dev”h]”hŒpci_dev”…”�”}”(hj°.h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj­.ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j².Œmodname”NŒ classname”Njäjç)�”}”jê]”jZ.Œc.media_device_pci_init”†”asbuh1hhjŽ.ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎ.h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjŽ.ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÜ.h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjŽ.ubj> )�”}”(hŒpci_dev”h]”hŒpci_dev”…”�”}”(hjé.h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjŽ.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj.ubjž)�”}”(hŒconst char *name”h]”(j )�”}”(hŒconst”h]”hŒconst”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjþ.ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjþ.ubj`)�”}”(hŒchar”h]”hŒchar”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjþ.ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,/h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjþ.ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj:/h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjþ.ubj> )�”}”(hŒname”h]”hŒname”…”�”}”(hjG/h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjþ.ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj.ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjß-h²hh³jñ-h´M—ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÛ-h²hh³jñ-h´M—ubah}”(h]”jÖ-ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jñ-h´M—hjØ-h²hubjj )�”}”(hhh]”hï)�”}”(hŒHcreate and initialize a struct :c:type:`media_device` from a PCI device.”h]”(hŒcreate and initialize a struct ”…”�”}”(hjq/h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hj{/h]”hŒ media_device”…”�”}”(hj}/h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjy/ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjç)�”}”jê]”jZ.Œc.media_device_pci_init”†”asbjŒ media_device”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Khjq/ubhŒ from a PCI device.”…”�”}”(hjq/h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M—hjn/h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjØ-h²hh³jñ-h´M—ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j²/jŒ j²/j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX **Parameters** ``struct media_device *mdev`` pointer to struct :c:type:`media_device` ``struct pci_dev *pci_dev`` pointer to struct pci_dev ``const char *name`` media device name. If ``NULL``, the routine will use the default name for the pci device, given by pci_name() macro.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj¼/h]”hŒ Parameters”…”�”}”(hj¾/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjº/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M›hj¶/ubjÛ )�”}”(hhh]”(jà )�”}”(hŒG``struct media_device *mdev`` pointer to struct :c:type:`media_device` ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hjÛ/h]”hŒstruct media_device *mdev”…”�”}”(hjÝ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÙ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MšhjÕ/ubj)�”}”(hhh]”hï)�”}”(hŒ(pointer to struct :c:type:`media_device`”h]”(hŒpointer to struct ”…”�”}”(hjô/h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hjþ/h]”hŒ media_device”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjü/ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³jð/h´Mšhjô/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jð/h´Mšhjñ/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÕ/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jð/h´MšhjÒ/ubjà )�”}”(hŒ6``struct pci_dev *pci_dev`` pointer to struct pci_dev ”h]”(jæ )�”}”(hŒ``struct pci_dev *pci_dev``”h]”j’)�”}”(hj30h]”hŒstruct pci_dev *pci_dev”…”�”}”(hj50h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj10ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M›hj-0ubj)�”}”(hhh]”hï)�”}”(hŒpointer to struct pci_dev”h]”hŒpointer to struct pci_dev”…”�”}”(hjL0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jH0h´M›hjI0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj-0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jH0h´M›hjÒ/ubjà )�”}”(hŒ‰``const char *name`` media device name. If ``NULL``, the routine will use the default name for the pci device, given by pci_name() macro.”h]”(jæ )�”}”(hŒ``const char *name``”h]”j’)�”}”(hjl0h]”hŒconst char *name”…”�”}”(hjn0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mœhjf0ubj)�”}”(hhh]”hï)�”}”(hŒtmedia device name. If ``NULL``, the routine will use the default name for the pci device, given by pci_name() macro.”h]”(hŒmedia device name. If ”…”�”}”(hj…0h²hh³Nh´Nubj’)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj�0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj…0ubhŒV, the routine will use the default name for the pci device, given by pci_name() macro.”…”�”}”(hj…0h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j�0h´Mœhj‚0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjf0ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j�0h´MœhjÒ/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj¶/ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ$__media_device_usb_init (C function)”Œc.__media_device_usb_init”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ‚void __media_device_usb_init (struct media_device *mdev, struct usb_device *udev, const char *board_name, const char *driver_name)”h]”j )�”}”(hŒ�void __media_device_usb_init(struct media_device *mdev, struct usb_device *udev, const char *board_name, const char *driver_name)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj×0h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjÓ0h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M£ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæ0h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÓ0h²hh³jå0h´M£ubj8 )�”}”(hŒ__media_device_usb_init”h]”j> )�”}”(hŒ__media_device_usb_init”h]”hŒ__media_device_usb_init”…”�”}”(hjø0h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjô0ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÓ0h²hh³jå0h´M£ubj˜)�”}”(hŒe(struct media_device *mdev, struct usb_device *udev, const char *board_name, const char *driver_name)”h]”(jž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj1ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!1h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj1ubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hj21h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj/1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j41Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jú0sbŒc.__media_device_usb_init”†”asbuh1hhj1ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjR1h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj1ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj`1h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj1ubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hjm1h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj 1ubjž)�”}”(hŒstruct usb_device *udev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj†1h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj‚1ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“1h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj‚1ubh)�”}”(hhh]”j> )�”}”(hŒ usb_device”h]”hŒ usb_device”…”�”}”(hj¤1h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¡1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j¦1Œmodname”NŒ classname”Njäjç)�”}”jê]”jN1Œc.__media_device_usb_init”†”asbuh1hhj‚1ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÂ1h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj‚1ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÐ1h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj‚1ubj> )�”}”(hŒudev”h]”hŒudev”…”�”}”(hjÝ1h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj‚1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj 1ubjž)�”}”(hŒconst char *board_name”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hjö1h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjò1ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjò1ubj`)�”}”(hŒchar”h]”hŒchar”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjò1ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjò1ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj-2h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjò1ubj> )�”}”(hŒ board_name”h]”hŒ board_name”…”�”}”(hj:2h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjò1ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj 1ubjž)�”}”(hŒconst char *driver_name”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hjS2h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjO2ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`2h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjO2ubj`)�”}”(hŒchar”h]”hŒchar”…”�”}”(hjn2h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjO2ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|2h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjO2ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjŠ2h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjO2ubj> )�”}”(hŒ driver_name”h]”hŒ driver_name”…”�”}”(hj—2h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjO2ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj 1ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjÓ0h²hh³jå0h´M£ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÏ0h²hh³jå0h´M£ubah}”(h]”jÊ0ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jå0h´M£hjÌ0h²hubjj )�”}”(hhh]”hï)�”}”(hŒHcreate and initialize a struct :c:type:`media_device` from a PCI device.”h]”(hŒcreate and initialize a struct ”…”�”}”(hjÁ2h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hjË2h]”hŒ media_device”…”�”}”(hjÍ2h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjÉ2ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjç)�”}”jê]”jN1Œc.__media_device_usb_init”†”asbjŒ media_device”uh1hh³j�/h´KhjÁ2ubhŒ from a PCI device.”…”�”}”(hjÁ2h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M£hj¾2h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÌ0h²hh³jå0h´M£ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j3jŒ j3j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXN**Parameters** ``struct media_device *mdev`` pointer to struct :c:type:`media_device` ``struct usb_device *udev`` pointer to struct usb_device ``const char *board_name`` media device name. If ``NULL``, the routine will use the usb product name, if available. ``const char *driver_name`` name of the driver. if ``NULL``, the routine will use the name given by ``udev->dev->driver->name``, with is usually the wrong thing to do. **Description** .. note:: It is better to call media_device_usb_init() instead, as such macro fills driver_name with ``KBUILD_MODNAME``.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj 3h]”hŒ Parameters”…”�”}”(hj 3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj 3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M§hj3ubjÛ )�”}”(hhh]”(jà )�”}”(hŒG``struct media_device *mdev`` pointer to struct :c:type:`media_device` ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hj*3h]”hŒstruct media_device *mdev”…”�”}”(hj,3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj(3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M¦hj$3ubj)�”}”(hhh]”hï)�”}”(hŒ(pointer to struct :c:type:`media_device`”h]”(hŒpointer to struct ”…”�”}”(hjC3h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hjM3h]”hŒ media_device”…”�”}”(hjO3h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjK3ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³j?3h´M¦hjC3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j?3h´M¦hj@3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj$3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j?3h´M¦hj!3ubjà )�”}”(hŒ9``struct usb_device *udev`` pointer to struct usb_device ”h]”(jæ )�”}”(hŒ``struct usb_device *udev``”h]”j’)�”}”(hj‚3h]”hŒstruct usb_device *udev”…”�”}”(hj„3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj€3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M§hj|3ubj)�”}”(hhh]”hï)�”}”(hŒpointer to struct usb_device”h]”hŒpointer to struct usb_device”…”�”}”(hj›3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j—3h´M§hj˜3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj|3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j—3h´M§hj!3ubjà )�”}”(hŒt``const char *board_name`` media device name. If ``NULL``, the routine will use the usb product name, if available. ”h]”(jæ )�”}”(hŒ``const char *board_name``”h]”j’)�”}”(hj»3h]”hŒconst char *board_name”…”�”}”(hj½3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¹3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M©hjµ3ubj)�”}”(hhh]”hï)�”}”(hŒXmedia device name. If ``NULL``, the routine will use the usb product name, if available.”h]”(hŒmedia device name. If ”…”�”}”(hjÔ3h²hh³Nh´Nubj’)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjÜ3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÔ3ubhŒ:, the routine will use the usb product name, if available.”…”�”}”(hjÔ3h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M¨hjÑ3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjµ3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÐ3h´M©hj!3ubjà )�”}”(hŒ¨``const char *driver_name`` name of the driver. if ``NULL``, the routine will use the name given by ``udev->dev->driver->name``, with is usually the wrong thing to do. ”h]”(jæ )�”}”(hŒ``const char *driver_name``”h]”j’)�”}”(hj4h]”hŒconst char *driver_name”…”�”}”(hj 4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M¬hj4ubj)�”}”(hhh]”hï)�”}”(hŒ‹name of the driver. if ``NULL``, the routine will use the name given by ``udev->dev->driver->name``, with is usually the wrong thing to do.”h]”(hŒname of the driver. if ”…”�”}”(hj 4h²hh³Nh´Nubj’)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj(4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj 4ub•hŒ), the routine will use the name given by ”…”�”}”(hj 4h²hh³Nh´Nubj’)�”}”(hŒ``udev->dev->driver->name``”h]”hŒudev->dev->driver->name”…”�”}”(hj:4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj 4ubhŒ(, with is usually the wrong thing to do.”…”�”}”(hj 4h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mªhj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j4h´M¬hj!3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj3ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjg4h]”hŒ Description”…”�”}”(hji4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hje4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M®hj3ubj¬)�”}”(hŒnIt is better to call media_device_usb_init() instead, as such macro fills driver_name with ``KBUILD_MODNAME``.”h]”hï)�”}”(hŒnIt is better to call media_device_usb_init() instead, as such macro fills driver_name with ``KBUILD_MODNAME``.”h]”(hŒ[It is better to call media_device_usb_init() instead, as such macro fills driver_name with ”…”�”}”(hj�4h²hh³Nh´Nubj’)�”}”(hŒ``KBUILD_MODNAME``”h]”hŒKBUILD_MODNAME”…”�”}”(hj‰4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj�4ubhŒ.”…”�”}”(hj�4h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´M¯hj}4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj3ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_device_usb_init (C macro)”Œc.media_device_usb_init”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_device_usb_init”h]”j )�”}”(hŒmedia_device_usb_init”h]”j8 )�”}”(hŒmedia_device_usb_init”h]”j> )�”}”(hjÂ4h]”hŒmedia_device_usb_init”…”�”}”(hjÌ4h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÈ4ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÄ4h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Méubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÀ4h²hh³jß4h´Méubah}”(h]”j»4ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jß4h´Méhj½4h²hubjj )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1ji hj½4h²hh³jß4h´Méubeh}”(h]”h ]”(j³Œmacro”eh"]”h$]”h&]”jŠ j³j‹ jø4jŒ jø4j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubhï)�”}”(hŒ,``media_device_usb_init (mdev, udev, name)``”h]”j’)�”}”(hjþ4h]”hŒ(media_device_usb_init (mdev, udev, name)”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjü4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mëhjá h²hubj§)�”}”(hŒIcreate and initialize a struct :c:type:`media_device` from a PCI device. ”h]”hï)�”}”(hŒHcreate and initialize a struct :c:type:`media_device` from a PCI device.”h]”(hŒcreate and initialize a struct ”…”�”}”(hj5h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hj"5h]”hŒ media_device”…”�”}”(hj$5h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj 5ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Méhj5ubhŒ from a PCI device.”…”�”}”(hj5h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j?5h´Méhj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦h³j?5h´Méhjá h²hubj‘ )�”}”(hXl**Parameters** ``mdev`` pointer to struct :c:type:`media_device` ``udev`` pointer to struct usb_device ``name`` media device name. If ``NULL``, the routine will use the usb product name, if available. **Description** This macro calls media_device_usb_init() passing the media_device_usb_init() **driver_name** parameter filled with ``KBUILD_MODNAME``.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjV5h]”hŒ Parameters”…”�”}”(hjX5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjT5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MíhjP5ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ2``mdev`` pointer to struct :c:type:`media_device` ”h]”(jæ )�”}”(hŒ``mdev``”h]”j’)�”}”(hju5h]”hŒmdev”…”�”}”(hjw5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjs5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mìhjo5ubj)�”}”(hhh]”hï)�”}”(hŒ(pointer to struct :c:type:`media_device`”h]”(hŒpointer to struct ”…”�”}”(hjŽ5h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hj˜5h]”hŒ media_device”…”�”}”(hjš5h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj–5ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³jŠ5h´MìhjŽ5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŠ5h´Mìhj‹5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjo5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jŠ5h´Mìhjl5ubjà )�”}”(hŒ&``udev`` pointer to struct usb_device ”h]”(jæ )�”}”(hŒ``udev``”h]”j’)�”}”(hjÍ5h]”hŒudev”…”�”}”(hjÏ5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjË5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MíhjÇ5ubj)�”}”(hhh]”hï)�”}”(hŒpointer to struct usb_device”h]”hŒpointer to struct usb_device”…”�”}”(hjæ5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jâ5h´Míhjã5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÇ5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jâ5h´Míhjl5ubjà )�”}”(hŒb``name`` media device name. If ``NULL``, the routine will use the usb product name, if available. ”h]”(jæ )�”}”(hŒ``name``”h]”j’)�”}”(hj6h]”hŒname”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mïhj6ubj)�”}”(hhh]”hï)�”}”(hŒXmedia device name. If ``NULL``, the routine will use the usb product name, if available.”h]”(hŒmedia device name. If ”…”�”}”(hj6h²hh³Nh´Nubj’)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj'6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj6ubhŒ:, the routine will use the usb product name, if available.”…”�”}”(hj6h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mîhj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj6ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j6h´Mïhjl5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjP5ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjT6h]”hŒ Description”…”�”}”(hjV6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjR6ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MñhjP5ubhï)�”}”(hŒ†This macro calls media_device_usb_init() passing the media_device_usb_init() **driver_name** parameter filled with ``KBUILD_MODNAME``.”h]”(hŒMThis macro calls media_device_usb_init() passing the media_device_usb_init() ”…”�”}”(hjj6h²hh³Nh´Nubj')�”}”(hŒ**driver_name**”h]”hŒ driver_name”…”�”}”(hjr6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjj6ubhŒ parameter filled with ”…”�”}”(hjj6h²hh³Nh´Nubj’)�”}”(hŒ``KBUILD_MODNAME``”h]”hŒKBUILD_MODNAME”…”�”}”(hj„6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjj6ubhŒ.”…”�”}”(hjj6h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MðhjP5ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_set_bus_info (C function)”Œc.media_set_bus_info”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒRvoid media_set_bus_info (char *bus_info, size_t bus_info_size, struct device *dev)”h]”j )�”}”(hŒQvoid media_set_bus_info(char *bus_info, size_t bus_info_size, struct device *dev)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj½6h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj¹6h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mùubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌ6h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¹6h²hh³jË6h´Mùubj8 )�”}”(hŒmedia_set_bus_info”h]”j> )�”}”(hŒmedia_set_bus_info”h]”hŒmedia_set_bus_info”…”�”}”(hjÞ6h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÚ6ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj¹6h²hh³jË6h´Mùubj˜)�”}”(hŒ:(char *bus_info, size_t bus_info_size, struct device *dev)”h]”(jž)�”}”(hŒchar *bus_info”h]”(j`)�”}”(hŒchar”h]”hŒchar”…”�”}”(hjú6h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjö6ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjö6ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjö6ubj> )�”}”(hŒbus_info”h]”hŒbus_info”…”�”}”(hj#7h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjö6ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjò6ubjž)�”}”(hŒsize_t bus_info_size”h]”(h)�”}”(hhh]”j> )�”}”(hŒsize_t”h]”hŒsize_t”…”�”}”(hj?7h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj<7ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jA7Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jà6sbŒc.media_set_bus_info”†”asbuh1hhj87ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_7h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj87ubj> )�”}”(hŒ bus_info_size”h]”hŒ bus_info_size”…”�”}”(hjm7h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj87ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjò6ubjž)�”}”(hŒstruct device *dev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj†7h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj‚7ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“7h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj‚7ubh)�”}”(hhh]”j> )�”}”(hŒdevice”h]”hŒdevice”…”�”}”(hj¤7h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¡7ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j¦7Œmodname”NŒ classname”Njäjç)�”}”jê]”j[7Œc.media_set_bus_info”†”asbuh1hhj‚7ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÂ7h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj‚7ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÐ7h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj‚7ubj> )�”}”(hŒdev”h]”hŒdev”…”�”}”(hjÝ7h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj‚7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjò6ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj¹6h²hh³jË6h´Mùubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjµ6h²hh³jË6h´Mùubah}”(h]”j°6ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jË6h´Mùhj²6h²hubjj )�”}”(hhh]”hï)�”}”(hŒSet bus_info field”h]”hŒSet bus_info field”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mùhj8h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj²6h²hh³jË6h´Mùubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j8jŒ j8j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX—**Parameters** ``char *bus_info`` Variable where to write the bus info (char array) ``size_t bus_info_size`` Length of the bus_info ``struct device *dev`` Related struct device **Description** Sets bus information based on :c:type:`dev`. This is currently done for PCI and platform devices. dev is required to be non-NULL for this to happen. This function is not meant to be called from drivers.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj)8h]”hŒ Parameters”…”�”}”(hj+8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj'8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mýhj#8ubjÛ )�”}”(hhh]”(jà )�”}”(hŒE``char *bus_info`` Variable where to write the bus info (char array) ”h]”(jæ )�”}”(hŒ``char *bus_info``”h]”j’)�”}”(hjH8h]”hŒchar *bus_info”…”�”}”(hjJ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjF8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´MûhjB8ubj)�”}”(hhh]”hï)�”}”(hŒ1Variable where to write the bus info (char array)”h]”hŒ1Variable where to write the bus info (char array)”…”�”}”(hja8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j]8h´Mûhj^8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjB8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j]8h´Mûhj?8ubjà )�”}”(hŒ0``size_t bus_info_size`` Length of the bus_info ”h]”(jæ )�”}”(hŒ``size_t bus_info_size``”h]”j’)�”}”(hj�8h]”hŒsize_t bus_info_size”…”�”}”(hjƒ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mühj{8ubj)�”}”(hhh]”hï)�”}”(hŒLength of the bus_info”h]”hŒLength of the bus_info”…”�”}”(hjš8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j–8h´Mühj—8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj{8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j–8h´Mühj?8ubjà )�”}”(hŒ-``struct device *dev`` Related struct device ”h]”(jæ )�”}”(hŒ``struct device *dev``”h]”j’)�”}”(hjº8h]”hŒstruct device *dev”…”�”}”(hj¼8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¸8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mýhj´8ubj)�”}”(hhh]”hï)�”}”(hŒRelated struct device”h]”hŒRelated struct device”…”�”}”(hjÓ8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÏ8h´MýhjÐ8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj´8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÏ8h´Mýhj?8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj#8ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjõ8h]”hŒ Description”…”�”}”(hj÷8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjó8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mÿhj#8ubhï)�”}”(hŒ”Sets bus information based on :c:type:`dev`. This is currently done for PCI and platform devices. dev is required to be non-NULL for this to happen.”h]”(hŒSets bus information based on ”…”�”}”(hj 9h²hh³Nh´Nubh)�”}”(hŒ :c:type:`dev`”h]”j’)�”}”(hj9h]”hŒdev”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj9ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒdev”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mþhj 9ubhŒi. This is currently done for PCI and platform devices. dev is required to be non-NULL for this to happen.”…”�”}”(hj 9h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j29h´Mþhj#8ubhï)�”}”(hŒ5This function is not meant to be called from drivers.”h]”hŒ5This function is not meant to be called from drivers.”…”�”}”(hj=9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:333: ./include/media/media-device.h”h´Mhj#8ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ media_file_operations (C struct)”Œc.media_file_operations”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_file_operations”h]”j )�”}”(hŒstruct media_file_operations”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjl9h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjh9h²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´Kubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjz9h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjh9h²hh³jy9h´Kubj8 )�”}”(hŒmedia_file_operations”h]”j> )�”}”(hjf9h]”hŒmedia_file_operations”…”�”}”(hjŒ9h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjˆ9ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjh9h²hh³jy9h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjd9h²hh³jy9h´Kubah}”(h]”j_9ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jy9h´Khja9h²hubjj )�”}”(hhh]”hï)�”}”(hŒMedia device file operations”h]”hŒMedia device file operations”…”�”}”(hj®9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K&hj«9h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hja9h²hh³jy9h´Kubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ jÆ9jŒ jÆ9j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX“**Definition**:: struct media_file_operations { struct module *owner; ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); __poll_t (*poll) (struct file *, struct poll_table_struct *); long (*ioctl) (struct file *, unsigned int, unsigned long); long (*compat_ioctl) (struct file *, unsigned int, unsigned long); int (*open) (struct file *); int (*release) (struct file *); }; **Members** ``owner`` should be filled with ``THIS_MODULE`` ``read`` pointer to the function that implements read() syscall ``write`` pointer to the function that implements write() syscall ``poll`` pointer to the function that implements poll() syscall ``ioctl`` pointer to the function that implements ioctl() syscall ``compat_ioctl`` pointer to the function that will handle 32 bits userspace calls to the ioctl() syscall on a Kernel compiled with 64 bits. ``open`` pointer to the function that implements open() syscall ``release`` pointer to the function that will release the resources allocated by the **open** function.”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÒ9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÎ9ubhŒ:”…”�”}”(hjÎ9h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K*hjÊ9ubjÓ)�”}”(hXÜstruct media_file_operations { struct module *owner; ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); __poll_t (*poll) (struct file *, struct poll_table_struct *); long (*ioctl) (struct file *, unsigned int, unsigned long); long (*compat_ioctl) (struct file *, unsigned int, unsigned long); int (*open) (struct file *); int (*release) (struct file *); };”h]”hXÜstruct media_file_operations { struct module *owner; ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); __poll_t (*poll) (struct file *, struct poll_table_struct *); long (*ioctl) (struct file *, unsigned int, unsigned long); long (*compat_ioctl) (struct file *, unsigned int, unsigned long); int (*open) (struct file *); int (*release) (struct file *); };”…”�”}”hjë9sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K,hjÊ9ubhï)�”}”(hŒ **Members**”h]”j')�”}”(hjü9h]”hŒMembers”…”�”}”(hjþ9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjú9ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K7hjÊ9ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ0``owner`` should be filled with ``THIS_MODULE`` ”h]”(jæ )�”}”(hŒ ``owner``”h]”j’)�”}”(hj:h]”hŒowner”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K)hj:ubj)�”}”(hhh]”hï)�”}”(hŒ%should be filled with ``THIS_MODULE``”h]”(hŒshould be filled with ”…”�”}”(hj4:h²hh³Nh´Nubj’)�”}”(hŒ``THIS_MODULE``”h]”hŒ THIS_MODULE”…”�”}”(hj<:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj4:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j0:h´K)hj1:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j0:h´K)hj:ubjà )�”}”(hŒ@``read`` pointer to the function that implements read() syscall ”h]”(jæ )�”}”(hŒ``read``”h]”j’)�”}”(hjb:h]”hŒread”…”�”}”(hjd:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj`:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K*hj\:ubj)�”}”(hhh]”hï)�”}”(hŒ6pointer to the function that implements read() syscall”h]”hŒ6pointer to the function that implements read() syscall”…”�”}”(hj{:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jw:h´K*hjx:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj\:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jw:h´K*hj:ubjà )�”}”(hŒB``write`` pointer to the function that implements write() syscall ”h]”(jæ )�”}”(hŒ ``write``”h]”j’)�”}”(hj›:h]”hŒwrite”…”�”}”(hj�:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj™:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K+hj•:ubj)�”}”(hhh]”hï)�”}”(hŒ7pointer to the function that implements write() syscall”h]”hŒ7pointer to the function that implements write() syscall”…”�”}”(hj´:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j°:h´K+hj±:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj•:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j°:h´K+hj:ubjà )�”}”(hŒ@``poll`` pointer to the function that implements poll() syscall ”h]”(jæ )�”}”(hŒ``poll``”h]”j’)�”}”(hjÔ:h]”hŒpoll”…”�”}”(hjÖ:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÒ:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K,hjÎ:ubj)�”}”(hhh]”hï)�”}”(hŒ6pointer to the function that implements poll() syscall”h]”hŒ6pointer to the function that implements poll() syscall”…”�”}”(hjí:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jé:h´K,hjê:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÎ:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jé:h´K,hj:ubjà )�”}”(hŒB``ioctl`` pointer to the function that implements ioctl() syscall ”h]”(jæ )�”}”(hŒ ``ioctl``”h]”j’)�”}”(hj ;h]”hŒioctl”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj ;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K-hj;ubj)�”}”(hhh]”hï)�”}”(hŒ7pointer to the function that implements ioctl() syscall”h]”hŒ7pointer to the function that implements ioctl() syscall”…”�”}”(hj&;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j";h´K-hj#;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j";h´K-hj:ubjà )�”}”(hŒŒ``compat_ioctl`` pointer to the function that will handle 32 bits userspace calls to the ioctl() syscall on a Kernel compiled with 64 bits. ”h]”(jæ )�”}”(hŒ``compat_ioctl``”h]”j’)�”}”(hjF;h]”hŒ compat_ioctl”…”�”}”(hjH;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjD;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K/hj@;ubj)�”}”(hhh]”hï)�”}”(hŒzpointer to the function that will handle 32 bits userspace calls to the ioctl() syscall on a Kernel compiled with 64 bits.”h]”hŒzpointer to the function that will handle 32 bits userspace calls to the ioctl() syscall on a Kernel compiled with 64 bits.”…”�”}”(hj_;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K.hj\;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj@;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j[;h´K/hj:ubjà )�”}”(hŒ@``open`` pointer to the function that implements open() syscall ”h]”(jæ )�”}”(hŒ``open``”h]”j’)�”}”(hj€;h]”hŒopen”…”�”}”(hj‚;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj~;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K0hjz;ubj)�”}”(hhh]”hï)�”}”(hŒ6pointer to the function that implements open() syscall”h]”hŒ6pointer to the function that implements open() syscall”…”�”}”(hj™;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j•;h´K0hj–;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjz;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j•;h´K0hj:ubjà )�”}”(hŒg``release`` pointer to the function that will release the resources allocated by the **open** function.”h]”(jæ )�”}”(hŒ ``release``”h]”j’)�”}”(hj¹;h]”hŒrelease”…”�”}”(hj»;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj·;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K1hj³;ubj)�”}”(hhh]”hï)�”}”(hŒ[pointer to the function that will release the resources allocated by the **open** function.”h]”(hŒIpointer to the function that will release the resources allocated by the ”…”�”}”(hjÒ;h²hh³Nh´Nubj')�”}”(hŒ**open**”h]”hŒopen”…”�”}”(hjÚ;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÒ;ubhŒ function.”…”�”}”(hjÒ;h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÎ;h´K1hjÏ;ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj³;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÎ;h´K1hj:ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÊ9ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_devnode (C struct)”Œc.media_devnode”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ media_devnode”h]”j )�”}”(hŒstruct media_devnode”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj$<h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj <h²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K8ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2<h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj <h²hh³j1<h´K8ubj8 )�”}”(hŒ media_devnode”h]”j> )�”}”(hj<h]”hŒ media_devnode”…”�”}”(hjD<h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj@<ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj <h²hh³j1<h´K8ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj<h²hh³j1<h´K8ubah}”(h]”j<ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j1<h´K8hj<h²hubjj )�”}”(hhh]”hï)�”}”(hŒMedia device node”h]”hŒMedia device node”…”�”}”(hjf<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K?hjc<h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj<h²hh³j1<h´K8ubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ j~<jŒ j~<j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXH**Definition**:: struct media_devnode { struct media_device *media_dev; const struct media_file_operations *fops; struct device dev; struct cdev cdev; struct device *parent; int minor; unsigned long flags; void (*release)(struct media_devnode *devnode); }; **Members** ``media_dev`` pointer to struct :c:type:`media_device` ``fops`` pointer to struct :c:type:`media_file_operations` with media device ops ``dev`` pointer to struct :c:type:`device` containing the media controller device ``cdev`` struct cdev pointer character device ``parent`` parent device ``minor`` device node minor number ``flags`` flags, combination of the ``MEDIA_FLAG_*`` constants ``release`` release callback called at the end of ``media_devnode_release()`` routine at media-device.c.”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjŠ<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj†<ubhŒ:”…”�”}”(hj†<h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KChj‚<ubjÓ)�”}”(hXstruct media_devnode { struct media_device *media_dev; const struct media_file_operations *fops; struct device dev; struct cdev cdev; struct device *parent; int minor; unsigned long flags; void (*release)(struct media_devnode *devnode); };”h]”hXstruct media_devnode { struct media_device *media_dev; const struct media_file_operations *fops; struct device dev; struct cdev cdev; struct device *parent; int minor; unsigned long flags; void (*release)(struct media_devnode *devnode); };”…”�”}”hj£<sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KEhj‚<ubhï)�”}”(hŒ **Members**”h]”j')�”}”(hj´<h]”hŒMembers”…”�”}”(hj¶<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj²<ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KPhj‚<ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ7``media_dev`` pointer to struct :c:type:`media_device` ”h]”(jæ )�”}”(hŒ ``media_dev``”h]”j’)�”}”(hjÓ<h]”hŒ media_dev”…”�”}”(hjÕ<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÑ<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KAhjÍ<ubj)�”}”(hhh]”hï)�”}”(hŒ(pointer to struct :c:type:`media_device`”h]”(hŒpointer to struct ”…”�”}”(hjì<h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hjö<h]”hŒ media_device”…”�”}”(hjø<h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjô<ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³jè<h´KAhjì<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jè<h´KAhjé<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÍ<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jè<h´KAhjÊ<ubjà )�”}”(hŒQ``fops`` pointer to struct :c:type:`media_file_operations` with media device ops ”h]”(jæ )�”}”(hŒ``fops``”h]”j’)�”}”(hj+=h]”hŒfops”…”�”}”(hj-=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj)=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KBhj%=ubj)�”}”(hhh]”hï)�”}”(hŒGpointer to struct :c:type:`media_file_operations` with media device ops”h]”(hŒpointer to struct ”…”�”}”(hjD=h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_file_operations`”h]”j’)�”}”(hjN=h]”hŒmedia_file_operations”…”�”}”(hjP=h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjL=ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒmedia_file_operations”uh1hh³j@=h´KBhjD=ubhŒ with media device ops”…”�”}”(hjD=h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j@=h´KBhjA=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj%=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j@=h´KBhjÊ<ubjà )�”}”(hŒR``dev`` pointer to struct :c:type:`device` containing the media controller device ”h]”(jæ )�”}”(hŒ``dev``”h]”j’)�”}”(hj‡=h]”hŒdev”…”�”}”(hj‰=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj…=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KChj�=ubj)�”}”(hhh]”hï)�”}”(hŒIpointer to struct :c:type:`device` containing the media controller device”h]”(hŒpointer to struct ”…”�”}”(hj =h²hh³Nh´Nubh)�”}”(hŒ:c:type:`device`”h]”j’)�”}”(hjª=h]”hŒdevice”…”�”}”(hj¬=h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj¨=ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒdevice”uh1hh³jœ=h´KChj =ubhŒ' containing the media controller device”…”�”}”(hj =h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jœ=h´KChj�=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj�=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jœ=h´KChjÊ<ubjà )�”}”(hŒ.``cdev`` struct cdev pointer character device ”h]”(jæ )�”}”(hŒ``cdev``”h]”j’)�”}”(hjã=h]”hŒcdev”…”�”}”(hjå=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjá=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KDhjÝ=ubj)�”}”(hhh]”hï)�”}”(hŒ$struct cdev pointer character device”h]”hŒ$struct cdev pointer character device”…”�”}”(hjü=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jø=h´KDhjù=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÝ=ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jø=h´KDhjÊ<ubjà )�”}”(hŒ``parent`` parent device ”h]”(jæ )�”}”(hŒ ``parent``”h]”j’)�”}”(hj>h]”hŒparent”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KEhj>ubj)�”}”(hhh]”hï)�”}”(hŒ parent device”h]”hŒ parent device”…”�”}”(hj5>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j1>h´KEhj2>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j1>h´KEhjÊ<ubjà )�”}”(hŒ#``minor`` device node minor number ”h]”(jæ )�”}”(hŒ ``minor``”h]”j’)�”}”(hjU>h]”hŒminor”…”�”}”(hjW>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjS>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KFhjO>ubj)�”}”(hhh]”hï)�”}”(hŒdevice node minor number”h]”hŒdevice node minor number”…”�”}”(hjn>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jj>h´KFhjk>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjO>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jj>h´KFhjÊ<ubjà )�”}”(hŒ?``flags`` flags, combination of the ``MEDIA_FLAG_*`` constants ”h]”(jæ )�”}”(hŒ ``flags``”h]”j’)�”}”(hjŽ>h]”hŒflags”…”�”}”(hj�>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjŒ>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KGhjˆ>ubj)�”}”(hhh]”hï)�”}”(hŒ4flags, combination of the ``MEDIA_FLAG_*`` constants”h]”(hŒflags, combination of the ”…”�”}”(hj§>h²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_FLAG_*``”h]”hŒ MEDIA_FLAG_*”…”�”}”(hj¯>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj§>ubhŒ constants”…”�”}”(hj§>h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j£>h´KGhj¤>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjˆ>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j£>h´KGhjÊ<ubjà )�”}”(hŒh``release`` release callback called at the end of ``media_devnode_release()`` routine at media-device.c.”h]”(jæ )�”}”(hŒ ``release``”h]”j’)�”}”(hjÙ>h]”hŒrelease”…”�”}”(hjÛ>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj×>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KHhjÓ>ubj)�”}”(hhh]”hï)�”}”(hŒ\release callback called at the end of ``media_devnode_release()`` routine at media-device.c.”h]”(hŒ&release callback called at the end of ”…”�”}”(hjò>h²hh³Nh´Nubj’)�”}”(hŒ``media_devnode_release()``”h]”hŒmedia_devnode_release()”…”�”}”(hjú>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjò>ubhŒ routine at media-device.c.”…”�”}”(hjò>h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jî>h´KHhjï>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÓ>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jî>h´KHhjÊ<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj‚<ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj-?h]”hŒ Description”…”�”}”(hj/?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj+?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KLhjá h²hubhï)�”}”(hŒ6This structure represents a media-related device node.”h]”hŒ6This structure represents a media-related device node.”…”�”}”(hjC?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KIhjá h²hubhï)�”}”(hŒjThe **parent** is a physical device. It must be set by core or device drivers before registering the node.”h]”(hŒThe ”…”�”}”(hjR?h²hh³Nh´Nubj')�”}”(hŒ **parent**”h]”hŒparent”…”�”}”(hjZ?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjR?ubhŒ\ is a physical device. It must be set by core or device drivers before registering the node.”…”�”}”(hjR?h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KKhjá h²hubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ#media_devnode_register (C function)”Œc.media_devnode_register”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒkint media_devnode_register (struct media_device *mdev, struct media_devnode *devnode, struct module *owner)”h]”j )�”}”(hŒjint media_devnode_register(struct media_device *mdev, struct media_devnode *devnode, struct module *owner)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hjŒ?h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjˆ?h²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´Kfubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›?h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjˆ?h²hh³jš?h´Kfubj8 )�”}”(hŒmedia_devnode_register”h]”j> )�”}”(hŒmedia_devnode_register”h]”hŒmedia_devnode_register”…”�”}”(hj­?h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj©?ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjˆ?h²hh³jš?h´Kfubj˜)�”}”(hŒP(struct media_device *mdev, struct media_devnode *devnode, struct module *owner)”h]”(jž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÉ?h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÅ?ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖ?h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÅ?ubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hjç?h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjä?ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jé?Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j¯?sbŒc.media_devnode_register”†”asbuh1hhjÅ?ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÅ?ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÅ?ubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hj"@h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÅ?ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÁ?ubjž)�”}”(hŒstruct media_devnode *devnode”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj;@h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj7@ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjH@h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj7@ubh)�”}”(hhh]”j> )�”}”(hŒ media_devnode”h]”hŒ media_devnode”…”�”}”(hjY@h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjV@ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j[@Œmodname”NŒ classname”Njäjç)�”}”jê]”j@Œc.media_devnode_register”†”asbuh1hhj7@ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjw@h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj7@ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj…@h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj7@ubj> )�”}”(hŒdevnode”h]”hŒdevnode”…”�”}”(hj’@h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj7@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÁ?ubjž)�”}”(hŒstruct module *owner”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj«@h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj§@ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¸@h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj§@ubh)�”}”(hhh]”j> )�”}”(hŒmodule”h]”hŒmodule”…”�”}”(hjÉ@h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÆ@ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jË@Œmodname”NŒ classname”Njäjç)�”}”jê]”j@Œc.media_devnode_register”†”asbuh1hhj§@ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjç@h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj§@ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjõ@h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj§@ubj> )�”}”(hŒowner”h]”hŒowner”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj§@ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÁ?ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjˆ?h²hh³jš?h´Kfubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj„?h²hh³jš?h´Kfubah}”(h]”j?ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jš?h´Kfhj�?h²hubjj )�”}”(hhh]”hï)�”}”(hŒregister a media device node”h]”hŒregister a media device node”…”�”}”(hj,Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´Kfhj)Ah²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj�?h²hh³jš?h´Kfubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jDAjŒ jDAj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX¦**Parameters** ``struct media_device *mdev`` struct media_device we want to register a device node ``struct media_devnode *devnode`` media device node structure we want to register ``struct module *owner`` should be filled with ``THIS_MODULE`` **Description** The registration code assigns minor numbers and registers the new device node with the kernel. An error is returned if no free minor number can be found, or if the registration of the device node fails. Zero is returned on success. Note that if the media_devnode_register call fails, the release() callback of the media_devnode structure is *not* called, so the caller is responsible for freeing any data.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjNAh]”hŒ Parameters”…”�”}”(hjPAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjLAubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KjhjHAubjÛ )�”}”(hhh]”(jà )�”}”(hŒT``struct media_device *mdev`` struct media_device we want to register a device node ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hjmAh]”hŒstruct media_device *mdev”…”�”}”(hjoAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjkAubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KhhjgAubj)�”}”(hhh]”hï)�”}”(hŒ5struct media_device we want to register a device node”h]”hŒ5struct media_device we want to register a device node”…”�”}”(hj†Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j‚Ah´KhhjƒAubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjgAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j‚Ah´KhhjdAubjà )�”}”(hŒR``struct media_devnode *devnode`` media device node structure we want to register ”h]”(jæ )�”}”(hŒ!``struct media_devnode *devnode``”h]”j’)�”}”(hj¦Ah]”hŒstruct media_devnode *devnode”…”�”}”(hj¨Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¤Aubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´Kihj Aubj)�”}”(hhh]”hï)�”}”(hŒ/media device node structure we want to register”h]”hŒ/media device node structure we want to register”…”�”}”(hj¿Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j»Ah´Kihj¼Aubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj Aubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j»Ah´KihjdAubjà )�”}”(hŒ?``struct module *owner`` should be filled with ``THIS_MODULE`` ”h]”(jæ )�”}”(hŒ``struct module *owner``”h]”j’)�”}”(hjßAh]”hŒstruct module *owner”…”�”}”(hjáAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÝAubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KjhjÙAubj)�”}”(hhh]”hï)�”}”(hŒ%should be filled with ``THIS_MODULE``”h]”(hŒshould be filled with ”…”�”}”(hjøAh²hh³Nh´Nubj’)�”}”(hŒ``THIS_MODULE``”h]”hŒ THIS_MODULE”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjøAubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jôAh´KjhjõAubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÙAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jôAh´KjhjdAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjHAubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj(Bh]”hŒ Description”…”�”}”(hj*Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj&Bubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KlhjHAubhï)�”}”(hŒÊThe registration code assigns minor numbers and registers the new device node with the kernel. An error is returned if no free minor number can be found, or if the registration of the device node fails.”h]”hŒÊThe registration code assigns minor numbers and registers the new device node with the kernel. An error is returned if no free minor number can be found, or if the registration of the device node fails.”…”�”}”(hj>Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KkhjHAubhï)�”}”(hŒZero is returned on success.”h]”hŒZero is returned on success.”…”�”}”(hjMBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KohjHAubhï)�”}”(hŒ­Note that if the media_devnode_register call fails, the release() callback of the media_devnode structure is *not* called, so the caller is responsible for freeing any data.”h]”(hŒmNote that if the media_devnode_register call fails, the release() callback of the media_devnode structure is ”…”�”}”(hj\Bh²hh³Nh´NubhŒemphasis”“”)�”}”(hŒ*not*”h]”hŒnot”…”�”}”(hjfBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jdBhj\BubhŒ; called, so the caller is responsible for freeing any data.”…”�”}”(hj\Bh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KqhjHAubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ-media_devnode_unregister_prepare (C function)”Œ"c.media_devnode_unregister_prepare”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒEvoid media_devnode_unregister_prepare (struct media_devnode *devnode)”h]”j )�”}”(hŒDvoid media_devnode_unregister_prepare(struct media_devnode *devnode)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjŸBh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj›Bh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K{ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®Bh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj›Bh²hh³j­Bh´K{ubj8 )�”}”(hŒ media_devnode_unregister_prepare”h]”j> )�”}”(hŒ media_devnode_unregister_prepare”h]”hŒ media_devnode_unregister_prepare”…”�”}”(hjÀBh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¼Bubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj›Bh²hh³j­Bh´K{ubj˜)�”}”(hŒ(struct media_devnode *devnode)”h]”jž)�”}”(hŒstruct media_devnode *devnode”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÜBh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjØBubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjéBh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjØBubh)�”}”(hhh]”j> )�”}”(hŒ media_devnode”h]”hŒ media_devnode”…”�”}”(hjúBh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj÷Bubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jüBŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jÂBsbŒ"c.media_devnode_unregister_prepare”†”asbuh1hhjØBubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjØBubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj(Ch²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjØBubj> )�”}”(hŒdevnode”h]”hŒdevnode”…”�”}”(hj5Ch²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjØBubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÔBubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj›Bh²hh³j­Bh´K{ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj—Bh²hh³j­Bh´K{ubah}”(h]”j’Bah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j­Bh´K{hj”Bh²hubjj )�”}”(hhh]”hï)�”}”(hŒ(clear the media device node register bit”h]”hŒ(clear the media device node register bit”…”�”}”(hj_Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K{hj\Ch²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj”Bh²hh³j­Bh´K{ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jwCjŒ jwCj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX§**Parameters** ``struct media_devnode *devnode`` the device node to prepare for unregister **Description** This clears the passed device register bit. Future open calls will be met with errors. Should be called before media_devnode_unregister() to avoid races with unregister and device file open calls. This function can safely be called if the device node has never been registered or has already been unregistered.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj�Ch]”hŒ Parameters”…”�”}”(hjƒCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjCubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´Khj{CubjÛ )�”}”(hhh]”jà )�”}”(hŒL``struct media_devnode *devnode`` the device node to prepare for unregister ”h]”(jæ )�”}”(hŒ!``struct media_devnode *devnode``”h]”j’)�”}”(hj Ch]”hŒstruct media_devnode *devnode”…”�”}”(hj¢Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjžCubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K|hjšCubj)�”}”(hhh]”hï)�”}”(hŒ)the device node to prepare for unregister”h]”hŒ)the device node to prepare for unregister”…”�”}”(hj¹Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jµCh´K|hj¶Cubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjšCubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jµCh´K|hj—Cubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj{Cubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjÛCh]”hŒ Description”…”�”}”(hjÝCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÙCubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K~hj{Cubhï)�”}”(hŒÄThis clears the passed device register bit. Future open calls will be met with errors. Should be called before media_devnode_unregister() to avoid races with unregister and device file open calls.”h]”hŒÄThis clears the passed device register bit. Future open calls will be met with errors. Should be called before media_devnode_unregister() to avoid races with unregister and device file open calls.”…”�”}”(hjñCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K}hj{Cubhï)�”}”(hŒqThis function can safely be called if the device node has never been registered or has already been unregistered.”h]”hŒqThis function can safely be called if the device node has never been registered or has already been unregistered.”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K�hj{Cubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ%media_devnode_unregister (C function)”Œc.media_devnode_unregister”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ=void media_devnode_unregister (struct media_devnode *devnode)”h]”j )�”}”(hŒDh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj+Dh²hh³j=Dh´Kˆubj8 )�”}”(hŒmedia_devnode_unregister”h]”j> )�”}”(hŒmedia_devnode_unregister”h]”hŒmedia_devnode_unregister”…”�”}”(hjPDh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjLDubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj+Dh²hh³j=Dh´Kˆubj˜)�”}”(hŒ(struct media_devnode *devnode)”h]”jž)�”}”(hŒstruct media_devnode *devnode”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjlDh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjhDubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjyDh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjhDubh)�”}”(hhh]”j> )�”}”(hŒ media_devnode”h]”hŒ media_devnode”…”�”}”(hjŠDh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj‡Dubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jŒDŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jRDsbŒc.media_devnode_unregister”†”asbuh1hhjhDubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjªDh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjhDubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj¸Dh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjhDubj> )�”}”(hŒdevnode”h]”hŒdevnode”…”�”}”(hjÅDh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjhDubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjdDubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj+Dh²hh³j=Dh´Kˆubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj'Dh²hh³j=Dh´Kˆubah}”(h]”j"Dah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j=Dh´Kˆhj$Dh²hubjj )�”}”(hhh]”hï)�”}”(hŒunregister a media device node”h]”hŒunregister a media device node”…”�”}”(hjïDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KˆhjìDh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj$Dh²hh³j=Dh´Kˆubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jEjŒ jEj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒí**Parameters** ``struct media_devnode *devnode`` the device node to unregister **Description** This unregisters the passed device. Future open calls will be met with errors. Should be called after media_devnode_unregister_prepare()”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjEh]”hŒ Parameters”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjEubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KŒhj EubjÛ )�”}”(hhh]”jà )�”}”(hŒ@``struct media_devnode *devnode`` the device node to unregister ”h]”(jæ )�”}”(hŒ!``struct media_devnode *devnode``”h]”j’)�”}”(hj0Eh]”hŒstruct media_devnode *devnode”…”�”}”(hj2Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj.Eubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K‰hj*Eubj)�”}”(hhh]”hï)�”}”(hŒthe device node to unregister”h]”hŒthe device node to unregister”…”�”}”(hjIEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jEEh´K‰hjFEubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj*Eubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jEEh´K‰hj'Eubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj Eubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjkEh]”hŒ Description”…”�”}”(hjmEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjiEubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K‹hj Eubhï)�”}”(hŒNThis unregisters the passed device. Future open calls will be met with errors.”h]”hŒNThis unregisters the passed device. Future open calls will be met with errors.”…”�”}”(hj�Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KŠhj Eubhï)�”}”(hŒ9Should be called after media_devnode_unregister_prepare()”h]”hŒ9Should be called after media_devnode_unregister_prepare()”…”�”}”(hj�Eh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K�hj Eubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_devnode_data (C function)”Œc.media_devnode_data”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ=struct media_devnode * media_devnode_data (struct file *filp)”h]”j )�”}”(hŒ;struct media_devnode *media_devnode_data(struct file *filp)”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj¿Eh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj»Eh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K“ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍEh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj»Eh²hh³jÌEh´K“ubh)�”}”(hhh]”j> )�”}”(hŒ media_devnode”h]”hŒ media_devnode”…”�”}”(hjÞEh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÛEubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jàEŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_devnode_data”sbŒc.media_devnode_data”†”asbuh1hhj»Eh²hh³jÌEh´K“ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÿEh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj»Eh²hh³jÌEh´K“ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj Fh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj»Eh²hh³jÌEh´K“ubj8 )�”}”(hŒmedia_devnode_data”h]”j> )�”}”(hjüEh]”hŒmedia_devnode_data”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjFubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj»Eh²hh³jÌEh´K“ubj˜)�”}”(hŒ(struct file *filp)”h]”jž)�”}”(hŒstruct file *filp”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj9Fh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj5Fubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFFh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj5Fubh)�”}”(hhh]”j> )�”}”(hŒfile”h]”hŒfile”…”�”}”(hjWFh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjTFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jYFŒmodname”NŒ classname”Njäjç)�”}”jê]”júEŒc.media_devnode_data”†”asbuh1hhj5Fubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuFh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj5Fubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjƒFh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj5Fubj> )�”}”(hŒfilp”h]”hŒfilp”…”�”}”(hj�Fh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj5Fubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj1Fubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj»Eh²hh³jÌEh´K“ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj·Eh²hh³jÌEh´K“ubah}”(h]”j²Eah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÌEh´K“hj´Eh²hubjj )�”}”(hhh]”hï)�”}”(hŒ0returns a pointer to the :c:type:`media_devnode`”h]”(hŒreturns a pointer to the ”…”�”}”(hjºFh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_devnode`”h]”j’)�”}”(hjÄFh]”hŒ media_devnode”…”�”}”(hjÆFh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjÂFubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjç)�”}”jê]”júEŒc.media_devnode_data”†”asbjŒ media_devnode”uh1hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´KhjºFubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K“hj·Fh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj´Eh²hh³jÌEh´K“ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j÷FjŒ j÷Fj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒH**Parameters** ``struct file *filp`` pointer to struct :c:type:`file`”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjGh]”hŒ Parameters”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÿFubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K—hjûFubjÛ )�”}”(hhh]”jà )�”}”(hŒ6``struct file *filp`` pointer to struct :c:type:`file`”h]”(jæ )�”}”(hŒ``struct file *filp``”h]”j’)�”}”(hj Gh]”hŒstruct file *filp”…”�”}”(hj"Gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K™hjGubj)�”}”(hhh]”hï)�”}”(hŒ pointer to struct :c:type:`file`”h]”(hŒpointer to struct ”…”�”}”(hj9Gh²hh³Nh´Nubh)�”}”(hŒ:c:type:`file`”h]”j’)�”}”(hjCGh]”hŒfile”…”�”}”(hjEGh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjAGubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒfile”uh1hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K•hj9Gubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j`Gh´K•hj6Gubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j5Gh´K™hjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjûFubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ(media_devnode_is_registered (C function)”Œc.media_devnode_is_registered”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ?int media_devnode_is_registered (struct media_devnode *devnode)”h]”j )�”}”(hŒ>int media_devnode_is_registered(struct media_devnode *devnode)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hj™Gh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj•Gh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K�ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨Gh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj•Gh²hh³j§Gh´K�ubj8 )�”}”(hŒmedia_devnode_is_registered”h]”j> )�”}”(hŒmedia_devnode_is_registered”h]”hŒmedia_devnode_is_registered”…”�”}”(hjºGh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¶Gubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj•Gh²hh³j§Gh´K�ubj˜)�”}”(hŒ(struct media_devnode *devnode)”h]”jž)�”}”(hŒstruct media_devnode *devnode”h]”(j )�”}”(hj •h]”hŒstruct”…”�”}”(hjÖGh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÒGubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjãGh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÒGubh)�”}”(hhh]”j> )�”}”(hŒ media_devnode”h]”hŒ media_devnode”…”�”}”(hjôGh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjñGubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jöGŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j¼GsbŒc.media_devnode_is_registered”†”asbuh1hhjÒGubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÒGubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj"Hh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÒGubj> )�”}”(hŒdevnode”h]”hŒdevnode”…”�”}”(hj/Hh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÒGubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÎGubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj•Gh²hh³j§Gh´K�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj‘Gh²hh³j§Gh´K�ubah}”(h]”jŒGah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j§Gh´K�hjŽGh²hubjj )�”}”(hhh]”hï)�”}”(hŒGreturns true if :c:type:`media_devnode` is registered; false otherwise.”h]”(hŒreturns true if ”…”�”}”(hjYHh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_devnode`”h]”j’)�”}”(hjcHh]”hŒ media_devnode”…”�”}”(hjeHh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjaHubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjç)�”}”jê]”jHŒc.media_devnode_is_registered”†”asbjŒ media_devnode”uh1hh³jæFh´KhjYHubhŒ is registered; false otherwise.”…”�”}”(hjYHh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K�hjVHh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjŽGh²hh³j§Gh´K�ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j™HjŒ j™Hj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ‘**Parameters** ``struct media_devnode *devnode`` pointer to struct :c:type:`media_devnode`. **Note** If mdev is NULL, it also returns false.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj£Hh]”hŒ Parameters”…”�”}”(hj¥Hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¡Hubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K¡hj�HubjÛ )�”}”(hhh]”jà )�”}”(hŒM``struct media_devnode *devnode`` pointer to struct :c:type:`media_devnode`. ”h]”(jæ )�”}”(hŒ!``struct media_devnode *devnode``”h]”j’)�”}”(hjÂHh]”hŒstruct media_devnode *devnode”…”�”}”(hjÄHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÀHubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K hj¼Hubj)�”}”(hhh]”hï)�”}”(hŒ*pointer to struct :c:type:`media_devnode`.”h]”(hŒpointer to struct ”…”�”}”(hjÛHh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_devnode`”h]”j’)�”}”(hjåHh]”hŒ media_devnode”…”�”}”(hjçHh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjãHubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_devnode”uh1hh³j×Hh´K hjÛHubhŒ.”…”�”}”(hjÛHh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j×Hh´K hjØHubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¼Hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j×Hh´K hj¹Hubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj�Hubhï)�”}”(hŒ**Note**”h]”j')�”}”(hj Ih]”hŒNote”…”�”}”(hj"Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjIubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K¢hj�Hubhï)�”}”(hŒ'If mdev is NULL, it also returns false.”h]”hŒ'If mdev is NULL, it also returns false.”…”�”}”(hj6Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:335: ./include/media/media-devnode.h”h´K¢hj�Hubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_gobj_type (C enum)”Œc.media_gobj_type”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_gobj_type”h]”j )�”}”(hŒenum media_gobj_type”h]”(j )�”}”(hŒenum”h]”hŒenum”…”�”}”(hjeIh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjaIh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjtIh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjaIh²hh³jsIh´Kubj8 )�”}”(hŒmedia_gobj_type”h]”j> )�”}”(hj_Ih]”hŒmedia_gobj_type”…”�”}”(hj†Ih²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj‚Iubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjaIh²hh³jsIh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj]Ih²hh³jsIh´Kubah}”(h]”jXIah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jsIh´KhjZIh²hubjj )�”}”(hhh]”hï)�”}”(hŒtype of a graph object”h]”hŒtype of a graph object”…”�”}”(hj¨Ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Khj¥Ih²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjZIh²hh³jsIh´Kubeh}”(h]”h ]”(j³Œenum”eh"]”h$]”h&]”jŠ j³j‹ jÀIjŒ jÀIj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒó**Constants** ``MEDIA_GRAPH_ENTITY`` Identify a media entity ``MEDIA_GRAPH_PAD`` Identify a media pad ``MEDIA_GRAPH_LINK`` Identify a media link ``MEDIA_GRAPH_INTF_DEVNODE`` Identify a media Kernel API interface via a device node”h]”(hï)�”}”(hŒ **Constants**”h]”j')�”}”(hjÊIh]”hŒ Constants”…”�”}”(hjÌIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÈIubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KhjÄIubjÛ )�”}”(hhh]”(jà )�”}”(hŒ/``MEDIA_GRAPH_ENTITY`` Identify a media entity ”h]”(jæ )�”}”(hŒ``MEDIA_GRAPH_ENTITY``”h]”j’)�”}”(hjéIh]”hŒMEDIA_GRAPH_ENTITY”…”�”}”(hjëIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjçIubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K!hjãIubj)�”}”(hhh]”hï)�”}”(hŒIdentify a media entity”h]”hŒIdentify a media entity”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jþIh´K!hjÿIubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjãIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jþIh´K!hjàIubjà )�”}”(hŒ)``MEDIA_GRAPH_PAD`` Identify a media pad ”h]”(jæ )�”}”(hŒ``MEDIA_GRAPH_PAD``”h]”j’)�”}”(hj"Jh]”hŒMEDIA_GRAPH_PAD”…”�”}”(hj$Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj Jubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K$hjJubj)�”}”(hhh]”hï)�”}”(hŒIdentify a media pad”h]”hŒIdentify a media pad”…”�”}”(hj;Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j7Jh´K$hj8Jubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjJubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j7Jh´K$hjàIubjà )�”}”(hŒ+``MEDIA_GRAPH_LINK`` Identify a media link ”h]”(jæ )�”}”(hŒ``MEDIA_GRAPH_LINK``”h]”j’)�”}”(hj[Jh]”hŒMEDIA_GRAPH_LINK”…”�”}”(hj]Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjYJubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K'hjUJubj)�”}”(hhh]”hï)�”}”(hŒIdentify a media link”h]”hŒIdentify a media link”…”�”}”(hjtJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jpJh´K'hjqJubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjUJubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jpJh´K'hjàIubjà )�”}”(hŒT``MEDIA_GRAPH_INTF_DEVNODE`` Identify a media Kernel API interface via a device node”h]”(jæ )�”}”(hŒ``MEDIA_GRAPH_INTF_DEVNODE``”h]”j’)�”}”(hj”Jh]”hŒMEDIA_GRAPH_INTF_DEVNODE”…”�”}”(hj–Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj’Jubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K*hjŽJubj)�”}”(hhh]”hï)�”}”(hŒ7Identify a media Kernel API interface via a device node”h]”hŒ7Identify a media Kernel API interface via a device node”…”�”}”(hj­Jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j©Jh´K*hjªJubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjŽJubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j©Jh´K*hjàIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÄIubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_gobj (C struct)”Œ c.media_gobj”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ media_gobj”h]”j )�”}”(hŒstruct media_gobj”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjíJh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjéJh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K0ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjûJh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjéJh²hh³júJh´K0ubj8 )�”}”(hŒ media_gobj”h]”j> )�”}”(hjçJh]”hŒ media_gobj”…”�”}”(hj Kh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj Kubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjéJh²hh³júJh´K0ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjåJh²hh³júJh´K0ubah}”(h]”jàJah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³júJh´K0hjâJh²hubjj )�”}”(hhh]”hï)�”}”(hŒDefine a graph object.”h]”hŒDefine a graph object.”…”�”}”(hj/Kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K0hj,Kh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjâJh²hh³júJh´K0ubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ jGKjŒ jGKj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXí**Definition**:: struct media_gobj { struct media_device *mdev; u32 id; struct list_head list; }; **Members** ``mdev`` Pointer to the struct :c:type:`media_device` that owns the object ``id`` Non-zero object ID identifier. The ID should be unique inside a media_device, as it is composed by ``MEDIA_BITS_PER_TYPE`` to store the type plus ``MEDIA_BITS_PER_ID`` to store the ID ``list`` List entry stored in one of the per-type mdev object lists”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjSKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjOKubhŒ:”…”�”}”(hjOKh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K4hjKKubjÓ)�”}”(hŒgstruct media_gobj { struct media_device *mdev; u32 id; struct list_head list; };”h]”hŒgstruct media_gobj { struct media_device *mdev; u32 id; struct list_head list; };”…”�”}”hjlKsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K6hjKKubhï)�”}”(hŒ **Members**”h]”j')�”}”(hj}Kh]”hŒMembers”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj{Kubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K )�”}”(hjÑLh]”hŒmedia_entity_enum”…”�”}”(hj÷Lh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjóLubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÓLh²hh³jäLh´K=ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÏLh²hh³jäLh´K=ubah}”(h]”jÊLah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jäLh´K=hjÌLh²hubjj )�”}”(hhh]”hï)�”}”(hŒ!An enumeration of media entities.”h]”hŒ!An enumeration of media entities.”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KDhjMh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÌLh²hh³jäLh´K=ubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ j1MjŒ j1Mj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒø**Definition**:: struct media_entity_enum { unsigned long *bmap; int idx_max; }; **Members** ``bmap`` Bit map in which each bit represents one entity at struct media_entity->internal_idx. ``idx_max`` Number of bits in bmap”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj=Mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj9MubhŒ:”…”�”}”(hj9Mh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KHhj5MubjÓ)�”}”(hŒGstruct media_entity_enum { unsigned long *bmap; int idx_max; };”h]”hŒGstruct media_entity_enum { unsigned long *bmap; int idx_max; };”…”�”}”hjVMsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KJhj5Mubhï)�”}”(hŒ **Members**”h]”j')�”}”(hjgMh]”hŒMembers”…”�”}”(hjiMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjeMubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KOhj5MubjÛ )�”}”(hhh]”(jà )�”}”(hŒ_``bmap`` Bit map in which each bit represents one entity at struct media_entity->internal_idx. ”h]”(jæ )�”}”(hŒ``bmap``”h]”j’)�”}”(hj†Mh]”hŒbmap”…”�”}”(hjˆMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj„Mubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KHhj€Mubj)�”}”(hhh]”hï)�”}”(hŒUBit map in which each bit represents one entity at struct media_entity->internal_idx.”h]”hŒUBit map in which each bit represents one entity at struct media_entity->internal_idx.”…”�”}”(hjŸMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KGhjœMubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj€Mubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j›Mh´KHhj}Mubjà )�”}”(hŒ"``idx_max`` Number of bits in bmap”h]”(jæ )�”}”(hŒ ``idx_max``”h]”j’)�”}”(hjÀMh]”hŒidx_max”…”�”}”(hjÂMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¾Mubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KHhjºMubj)�”}”(hhh]”hï)�”}”(hŒNumber of bits in bmap”h]”hŒNumber of bits in bmap”…”�”}”(hjÙMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KIhjÖMubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjºMubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÕMh´KHhj}Mubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj5Mubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_graph (C struct)”Œ c.media_graph”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ media_graph”h]”j )�”}”(hŒstruct media_graph”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjNh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KOubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(Nh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjNh²hh³j'Nh´KOubj8 )�”}”(hŒ media_graph”h]”j> )�”}”(hjNh]”hŒ media_graph”…”�”}”(hj:Nh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj6Nubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjNh²hh³j'Nh´KOubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjNh²hh³j'Nh´KOubah}”(h]”j Nah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j'Nh´KOhjNh²hubjj )�”}”(hhh]”hï)�”}”(hŒMedia graph traversal state”h]”hŒMedia graph traversal state”…”�”}”(hj\Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KPhjYNh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjNh²hh³j'Nh´KOubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ jtNjŒ jtNj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXx**Definition**:: struct media_graph { struct { struct media_entity *entity; struct list_head *link; } stack[MEDIA_ENTITY_ENUM_MAX_DEPTH]; struct media_entity_enum ent_enum; int top; }; **Members** ``stack`` Graph traversal stack; the stack contains information on the path the media entities to be walked and the links through which they were reached. ``stack.entity`` pointer to :c:type:`struct media_entity ` at the graph. ``stack.link`` pointer to :c:type:`struct list_head `. ``ent_enum`` Visited entities ``top`` The top of the stack”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj€Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj|NubhŒ:”…”�”}”(hj|Nh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KThjxNubjÓ)�”}”(hŒÇstruct media_graph { struct { struct media_entity *entity; struct list_head *link; } stack[MEDIA_ENTITY_ENUM_MAX_DEPTH]; struct media_entity_enum ent_enum; int top; };”h]”hŒÇstruct media_graph { struct { struct media_entity *entity; struct list_head *link; } stack[MEDIA_ENTITY_ENUM_MAX_DEPTH]; struct media_entity_enum ent_enum; int top; };”…”�”}”hj™Nsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KVhjxNubhï)�”}”(hŒ **Members**”h]”j')�”}”(hjªNh]”hŒMembers”…”�”}”(hj¬Nh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¨Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K_hjxNubjÛ )�”}”(hhh]”(jà )�”}”(hŒ›``stack`` Graph traversal stack; the stack contains information on the path the media entities to be walked and the links through which they were reached. ”h]”(jæ )�”}”(hŒ ``stack``”h]”j’)�”}”(hjÉNh]”hŒstack”…”�”}”(hjËNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÇNubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KUhjÃNubj)�”}”(hhh]”hï)�”}”(hŒ�Graph traversal stack; the stack contains information on the path the media entities to be walked and the links through which they were reached.”h]”hŒ�Graph traversal stack; the stack contains information on the path the media entities to be walked and the links through which they were reached.”…”�”}”(hjâNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KShjßNubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÃNubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÞNh´KUhjÀNubjà )�”}”(hŒW``stack.entity`` pointer to :c:type:`struct media_entity ` at the graph. ”h]”(jæ )�”}”(hŒ``stack.entity``”h]”j’)�”}”(hjOh]”hŒ stack.entity”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KVhjýNubj)�”}”(hhh]”hï)�”}”(hŒEpointer to :c:type:`struct media_entity ` at the graph.”h]”(hŒ pointer to ”…”�”}”(hjOh²hh³Nh´Nubh)�”}”(hŒ,:c:type:`struct media_entity `”h]”j’)�”}”(hj&Oh]”hŒstruct media_entity”…”�”}”(hj(Oh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj$Oubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jäjèjŒ media_entity”uh1hh³jOh´KVhjOubhŒ at the graph.”…”�”}”(hjOh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jOh´KVhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjýNubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jOh´KVhjÀNubjà )�”}”(hŒB``stack.link`` pointer to :c:type:`struct list_head `. ”h]”(jæ )�”}”(hŒ``stack.link``”h]”j’)�”}”(hj_Oh]”hŒ stack.link”…”�”}”(hjaOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj]Oubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KWhjYOubj)�”}”(hhh]”hï)�”}”(hŒ2pointer to :c:type:`struct list_head `.”h]”(hŒ pointer to ”…”�”}”(hjxOh²hh³Nh´Nubh)�”}”(hŒ&:c:type:`struct list_head `”h]”j’)�”}”(hj‚Oh]”hŒstruct list_head”…”�”}”(hj„Oh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj€Oubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jäjèjŒ list_head”uh1hh³jtOh´KWhjxOubhŒ.”…”�”}”(hjxOh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jtOh´KWhjuOubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjYOubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jtOh´KWhjÀNubjà )�”}”(hŒ``ent_enum`` Visited entities ”h]”(jæ )�”}”(hŒ ``ent_enum``”h]”j’)�”}”(hj»Oh]”hŒent_enum”…”�”}”(hj½Oh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¹Oubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KXhjµOubj)�”}”(hhh]”hï)�”}”(hŒVisited entities”h]”hŒVisited entities”…”�”}”(hjÔOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÐOh´KXhjÑOubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjµOubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÐOh´KXhjÀNubjà )�”}”(hŒ``top`` The top of the stack”h]”(jæ )�”}”(hŒ``top``”h]”j’)�”}”(hjôOh]”hŒtop”…”�”}”(hjöOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjòOubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KXhjîOubj)�”}”(hhh]”hï)�”}”(hŒThe top of the stack”h]”hŒThe top of the stack”…”�”}”(hj Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KYhj Pubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjîOubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j Ph´KXhjÀNubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjxNubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_pipeline (C struct)”Œc.media_pipeline”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_pipeline”h]”j )�”}”(hŒstruct media_pipeline”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjNPh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjJPh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K_ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\Ph²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjJPh²hh³j[Ph´K_ubj8 )�”}”(hŒmedia_pipeline”h]”j> )�”}”(hjHPh]”hŒmedia_pipeline”…”�”}”(hjnPh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjjPubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjJPh²hh³j[Ph´K_ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjFPh²hh³j[Ph´K_ubah}”(h]”jAPah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j[Ph´K_hjCPh²hubjj )�”}”(hhh]”hï)�”}”(hŒ"Media pipeline related information”h]”hŒ"Media pipeline related information”…”�”}”(hj�Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kehj�Ph²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjCPh²hh³j[Ph´K_ubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ j¨PjŒ j¨Pj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX~**Definition**:: struct media_pipeline { bool allocated; struct media_device *mdev; struct list_head pads; int start_count; }; **Members** ``allocated`` Media pipeline allocated and freed by the framework ``mdev`` The media device the pipeline is part of ``pads`` List of media_pipeline_pad ``start_count`` Media pipeline start - stop count”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj´Ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj°PubhŒ:”…”�”}”(hj°Ph²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kihj¬PubjÓ)�”}”(hŒ}struct media_pipeline { bool allocated; struct media_device *mdev; struct list_head pads; int start_count; };”h]”hŒ}struct media_pipeline { bool allocated; struct media_device *mdev; struct list_head pads; int start_count; };”…”�”}”hjÍPsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kkhj¬Pubhï)�”}”(hŒ **Members**”h]”j')�”}”(hjÞPh]”hŒMembers”…”�”}”(hjàPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÜPubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Krhj¬PubjÛ )�”}”(hhh]”(jà )�”}”(hŒB``allocated`` Media pipeline allocated and freed by the framework ”h]”(jæ )�”}”(hŒ ``allocated``”h]”j’)�”}”(hjýPh]”hŒ allocated”…”�”}”(hjÿPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjûPubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Khhj÷Pubj)�”}”(hhh]”hï)�”}”(hŒ3Media pipeline allocated and freed by the framework”h]”hŒ3Media pipeline allocated and freed by the framework”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jQh´KhhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj÷Pubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jQh´KhhjôPubjà )�”}”(hŒ2``mdev`` The media device the pipeline is part of ”h]”(jæ )�”}”(hŒ``mdev``”h]”j’)�”}”(hj6Qh]”hŒmdev”…”�”}”(hj8Qh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj4Qubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kihj0Qubj)�”}”(hhh]”hï)�”}”(hŒ(The media device the pipeline is part of”h]”hŒ(The media device the pipeline is part of”…”�”}”(hjOQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jKQh´KihjLQubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj0Qubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jKQh´KihjôPubjà )�”}”(hŒ$``pads`` List of media_pipeline_pad ”h]”(jæ )�”}”(hŒ``pads``”h]”j’)�”}”(hjoQh]”hŒpads”…”�”}”(hjqQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjmQubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KjhjiQubj)�”}”(hhh]”hï)�”}”(hŒList of media_pipeline_pad”h]”hŒList of media_pipeline_pad”…”�”}”(hjˆQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j„Qh´Kjhj…Qubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjiQubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j„Qh´KjhjôPubjà )�”}”(hŒ1``start_count`` Media pipeline start - stop count”h]”(jæ )�”}”(hŒ``start_count``”h]”j’)�”}”(hj¨Qh]”hŒ start_count”…”�”}”(hjªQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¦Qubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kjhj¢Qubj)�”}”(hhh]”hï)�”}”(hŒ!Media pipeline start - stop count”h]”hŒ!Media pipeline start - stop count”…”�”}”(hjÁQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kkhj¾Qubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¢Qubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j½Qh´KjhjôPubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj¬Pubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_pipeline_pad (C struct)”Œc.media_pipeline_pad”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_pipeline_pad”h]”j )�”}”(hŒstruct media_pipeline_pad”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjþQh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kqubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjþQh²hh³jRh´Kqubj8 )�”}”(hŒmedia_pipeline_pad”h]”j> )�”}”(hjüQh]”hŒmedia_pipeline_pad”…”�”}”(hj"Rh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjRubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjþQh²hh³jRh´Kqubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjúQh²hh³jRh´Kqubah}”(h]”jõQah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jRh´Kqhj÷Qh²hubjj )�”}”(hhh]”hï)�”}”(hŒA pad part of a media pipeline”h]”hŒA pad part of a media pipeline”…”�”}”(hjDRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KthjARh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj÷Qh²hh³jRh´Kqubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ j\RjŒ j\Rj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX**Definition**:: struct media_pipeline_pad { struct list_head list; struct media_pipeline *pipe; struct media_pad *pad; }; **Members** ``list`` Entry in the media_pad pads list ``pipe`` The media_pipeline that the pad is part of ``pad`` The media pad”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjhRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjdRubhŒ:”…”�”}”(hjdRh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kxhj`RubjÓ)�”}”(hŒustruct media_pipeline_pad { struct list_head list; struct media_pipeline *pipe; struct media_pad *pad; };”h]”hŒustruct media_pipeline_pad { struct list_head list; struct media_pipeline *pipe; struct media_pad *pad; };”…”�”}”hj�Rsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kzhj`Rubhï)�”}”(hŒ **Members**”h]”j')�”}”(hj’Rh]”hŒMembers”…”�”}”(hj”Rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj�Rubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K€hj`RubjÛ )�”}”(hhh]”(jà )�”}”(hŒ*``list`` Entry in the media_pad pads list ”h]”(jæ )�”}”(hŒ``list``”h]”j’)�”}”(hj±Rh]”hŒlist”…”�”}”(hj³Rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¯Rubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kwhj«Rubj)�”}”(hhh]”hï)�”}”(hŒ Entry in the media_pad pads list”h]”hŒ Entry in the media_pad pads list”…”�”}”(hjÊRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÆRh´KwhjÇRubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj«Rubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÆRh´Kwhj¨Rubjà )�”}”(hŒ4``pipe`` The media_pipeline that the pad is part of ”h]”(jæ )�”}”(hŒ``pipe``”h]”j’)�”}”(hjêRh]”hŒpipe”…”�”}”(hjìRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjèRubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KxhjäRubj)�”}”(hhh]”hï)�”}”(hŒ*The media_pipeline that the pad is part of”h]”hŒ*The media_pipeline that the pad is part of”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÿRh´KxhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjäRubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÿRh´Kxhj¨Rubjà )�”}”(hŒ``pad`` The media pad”h]”(jæ )�”}”(hŒ``pad``”h]”j’)�”}”(hj#Sh]”hŒpad”…”�”}”(hj%Sh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj!Subah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KxhjSubj)�”}”(hhh]”hï)�”}”(hŒ The media pad”h]”hŒ The media pad”…”�”}”(hj` list. media_pipeline_stop() removes the entries from the list and deletes them.”h]”(hŒ«This structure associate a pad with a media pipeline. Instances of media_pipeline_pad are created by media_pipeline_start() when it builds the pipeline, and stored in the ”…”�”}”(hj|Sh²hh³Nh´Nubh)�”}”(hŒ$:c:type:`media_pad.pads `”h]”j’)�”}”(hj†Sh]”hŒmedia_pad.pads”…”�”}”(hjˆSh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj„Subah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jäjèjŒ media_pad”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kyhj|SubhŒP list. media_pipeline_stop() removes the entries from the list and deletes them.”…”�”}”(hj|Sh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j£Sh´Kyhjá h²hubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ"media_pipeline_pad_iter (C struct)”Œc.media_pipeline_pad_iter”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_pipeline_pad_iter”h]”j )�”}”(hŒstruct media_pipeline_pad_iter”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÇSh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÃSh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K�ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÕSh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÃSh²hh³jÔSh´K�ubj8 )�”}”(hŒmedia_pipeline_pad_iter”h]”j> )�”}”(hjÁSh]”hŒmedia_pipeline_pad_iter”…”�”}”(hjçSh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjãSubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÃSh²hh³jÔSh´K�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj¿Sh²hh³jÔSh´K�ubah}”(h]”jºSah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÔSh´K�hj¼Sh²hubjj )�”}”(hhh]”hï)�”}”(hŒ(Iterator for media_pipeline_for_each_pad”h]”hŒ(Iterator for media_pipeline_for_each_pad”…”�”}”(hj Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K†hjTh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj¼Sh²hh³jÔSh´K�ubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ j!TjŒ j!Tj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒˆ**Definition**:: struct media_pipeline_pad_iter { struct list_head *cursor; }; **Members** ``cursor`` The current element”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj-Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj)TubhŒ:”…”�”}”(hj)Th²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KŠhj%TubjÓ)�”}”(hŒAstruct media_pipeline_pad_iter { struct list_head *cursor; };”h]”hŒAstruct media_pipeline_pad_iter { struct list_head *cursor; };”…”�”}”hjFTsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KŒhj%Tubhï)�”}”(hŒ **Members**”h]”j')�”}”(hjWTh]”hŒMembers”…”�”}”(hjYTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjUTubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K�hj%TubjÛ )�”}”(hhh]”jà )�”}”(hŒ``cursor`` The current element”h]”(jæ )�”}”(hŒ ``cursor``”h]”j’)�”}”(hjvTh]”hŒcursor”…”�”}”(hjxTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjtTubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KˆhjpTubj)�”}”(hhh]”hï)�”}”(hŒThe current element”h]”hŒThe current element”…”�”}”(hj�Th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K‰hjŒTubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjpTubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j‹Th´KˆhjmTubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj%Tubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ%media_pipeline_entity_iter (C struct)”Œc.media_pipeline_entity_iter”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_pipeline_entity_iter”h]”j )�”}”(hŒ!struct media_pipeline_entity_iter”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÐTh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÌTh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K�ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞTh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÌTh²hh³jÝTh´K�ubj8 )�”}”(hŒmedia_pipeline_entity_iter”h]”j> )�”}”(hjÊTh]”hŒmedia_pipeline_entity_iter”…”�”}”(hjðTh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjìTubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÌTh²hh³jÝTh´K�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÈTh²hh³jÝTh´K�ubah}”(h]”jÃTah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÝTh´K�hjÅTh²hubjj )�”}”(hhh]”hï)�”}”(hŒ+Iterator for media_pipeline_for_each_entity”h]”hŒ+Iterator for media_pipeline_for_each_entity”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K�hjUh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÅTh²hh³jÝTh´K�ubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ j*UjŒ j*Uj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒã**Definition**:: struct media_pipeline_entity_iter { struct media_entity_enum ent_enum; struct list_head *cursor; }; **Members** ``ent_enum`` The entity enumeration tracker ``cursor`` The current element”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj6Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj2UubhŒ:”…”�”}”(hj2Uh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K“hj.UubjÓ)�”}”(hŒkstruct media_pipeline_entity_iter { struct media_entity_enum ent_enum; struct list_head *cursor; };”h]”hŒkstruct media_pipeline_entity_iter { struct media_entity_enum ent_enum; struct list_head *cursor; };”…”�”}”hjOUsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K•hj.Uubhï)�”}”(hŒ **Members**”h]”j')�”}”(hj`Uh]”hŒMembers”…”�”}”(hjbUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj^Uubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kšhj.UubjÛ )�”}”(hhh]”(jà )�”}”(hŒ,``ent_enum`` The entity enumeration tracker ”h]”(jæ )�”}”(hŒ ``ent_enum``”h]”j’)�”}”(hjUh]”hŒent_enum”…”�”}”(hj�Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj}Uubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K’hjyUubj)�”}”(hhh]”hï)�”}”(hŒThe entity enumeration tracker”h]”hŒThe entity enumeration tracker”…”�”}”(hj˜Uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j”Uh´K’hj•Uubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjyUubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j”Uh´K’hjvUubjà )�”}”(hŒ``cursor`` The current element”h]”(jæ )�”}”(hŒ ``cursor``”h]”j’)�”}”(hj¸Uh]”hŒcursor”…”�”}”(hjºUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¶Uubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K’hj²Uubj)�”}”(hhh]”hï)�”}”(hŒThe current element”h]”hŒThe current element”…”�”}”(hjÑUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K“hjÎUubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj²Uubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÍUh´K’hjvUubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj.Uubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_link (C struct)”Œ c.media_link”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ media_link”h]”j )�”}”(hŒstruct media_link”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjVh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K™ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Vh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjVh²hh³jVh´K™ubj8 )�”}”(hŒ media_link”h]”j> )�”}”(hj Vh]”hŒ media_link”…”�”}”(hj2Vh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj.Vubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjVh²hh³jVh´K™ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj Vh²hh³jVh´K™ubah}”(h]”jVah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jVh´K™hjVh²hubjj )�”}”(hhh]”hï)�”}”(hŒ$A link object part of a media graph.”h]”hŒ$A link object part of a media graph.”…”�”}”(hjTVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KšhjQVh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjVh²hh³jVh´K™ubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ jlVjŒ jlVj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXô**Definition**:: struct media_link { struct media_gobj graph_obj; struct list_head list; union { struct media_gobj *gobj0; struct media_pad *source; struct media_interface *intf; }; union { struct media_gobj *gobj1; struct media_pad *sink; struct media_entity *entity; }; struct media_link *reverse; unsigned long flags; bool is_backlink; }; **Members** ``graph_obj`` Embedded structure containing the media object common data ``list`` Linked list associated with an entity or an interface that owns the link. ``{unnamed_union}`` anonymous ``gobj0`` Part of a union. Used to get the pointer for the first graph_object of the link. ``source`` Part of a union. Used only if the first object (gobj0) is a pad. In that case, it represents the source pad. ``intf`` Part of a union. Used only if the first object (gobj0) is an interface. ``{unnamed_union}`` anonymous ``gobj1`` Part of a union. Used to get the pointer for the second graph_object of the link. ``sink`` Part of a union. Used only if the second object (gobj1) is a pad. In that case, it represents the sink pad. ``entity`` Part of a union. Used only if the second object (gobj1) is an entity. ``reverse`` Pointer to the link for the reverse direction of a pad to pad link. ``flags`` Link flags, as defined in uapi/media.h (MEDIA_LNK_FL_*) ``is_backlink`` Indicate if the link is a backlink.”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjxVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjtVubhŒ:”…”�”}”(hjtVh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KžhjpVubjÓ)�”}”(hX˜struct media_link { struct media_gobj graph_obj; struct list_head list; union { struct media_gobj *gobj0; struct media_pad *source; struct media_interface *intf; }; union { struct media_gobj *gobj1; struct media_pad *sink; struct media_entity *entity; }; struct media_link *reverse; unsigned long flags; bool is_backlink; };”h]”hX˜struct media_link { struct media_gobj graph_obj; struct list_head list; union { struct media_gobj *gobj0; struct media_pad *source; struct media_interface *intf; }; union { struct media_gobj *gobj1; struct media_pad *sink; struct media_entity *entity; }; struct media_link *reverse; unsigned long flags; bool is_backlink; };”…”�”}”hj‘Vsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K hjpVubhï)�”}”(hŒ **Members**”h]”j')�”}”(hj¢Vh]”hŒMembers”…”�”}”(hj¤Vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj Vubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K²hjpVubjÛ )�”}”(hhh]”(jà )�”}”(hŒI``graph_obj`` Embedded structure containing the media object common data ”h]”(jæ )�”}”(hŒ ``graph_obj``”h]”j’)�”}”(hjÁVh]”hŒ graph_obj”…”�”}”(hjÃVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¿Vubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K�hj»Vubj)�”}”(hhh]”hï)�”}”(hŒ:Embedded structure containing the media object common data”h]”hŒ:Embedded structure containing the media object common data”…”�”}”(hjÚVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÖVh´K�hj×Vubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj»Vubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÖVh´K�hj¸Vubjà )�”}”(hŒS``list`` Linked list associated with an entity or an interface that owns the link. ”h]”(jæ )�”}”(hŒ``list``”h]”j’)�”}”(hjúVh]”hŒlist”…”�”}”(hjüVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjøVubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KŸhjôVubj)�”}”(hhh]”hï)�”}”(hŒILinked list associated with an entity or an interface that owns the link.”h]”hŒILinked list associated with an entity or an interface that owns the link.”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KžhjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjôVubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jWh´KŸhj¸Vubjà )�”}”(hŒ``{unnamed_union}`` anonymous ”h]”(jæ )�”}”(hŒ``{unnamed_union}``”h]”j’)�”}”(hj4Wh]”hŒ{unnamed_union}”…”�”}”(hj6Wh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj2Wubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Khj.Wubj)�”}”(hhh]”hï)�”}”(hŒ anonymous”h]”hŒ anonymous”…”�”}”(hjMWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jIWh´KhjJWubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj.Wubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jIWh´Khj¸Vubjà )�”}”(hŒ[``gobj0`` Part of a union. Used to get the pointer for the first graph_object of the link. ”h]”(jæ )�”}”(hŒ ``gobj0``”h]”j’)�”}”(hjmWh]”hŒgobj0”…”�”}”(hjoWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjkWubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K¡hjgWubj)�”}”(hhh]”hï)�”}”(hŒPPart of a union. Used to get the pointer for the first graph_object of the link.”h]”hŒPPart of a union. Used to get the pointer for the first graph_object of the link.”…”�”}”(hj†Wh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K hjƒWubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjgWubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j‚Wh´K¡hj¸Vubjà )�”}”(hŒx``source`` Part of a union. Used only if the first object (gobj0) is a pad. In that case, it represents the source pad. ”h]”(jæ )�”}”(hŒ ``source``”h]”j’)�”}”(hj§Wh]”hŒsource”…”�”}”(hj©Wh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¥Wubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K£hj¡Wubj)�”}”(hhh]”hï)�”}”(hŒlPart of a union. Used only if the first object (gobj0) is a pad. In that case, it represents the source pad.”h]”hŒlPart of a union. Used only if the first object (gobj0) is a pad. In that case, it represents the source pad.”…”�”}”(hjÀWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K¢hj½Wubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¡Wubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j¼Wh´K£hj¸Vubjà )�”}”(hŒQ``intf`` Part of a union. Used only if the first object (gobj0) is an interface. ”h]”(jæ )�”}”(hŒ``intf``”h]”j’)�”}”(hjáWh]”hŒintf”…”�”}”(hjãWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjßWubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K¥hjÛWubj)�”}”(hhh]”hï)�”}”(hŒGPart of a union. Used only if the first object (gobj0) is an interface.”h]”hŒGPart of a union. Used only if the first object (gobj0) is an interface.”…”�”}”(hjúWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K¤hj÷Wubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÛWubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jöWh´K¥hj¸Vubjà )�”}”(hŒ``{unnamed_union}`` anonymous ”h]”(jæ )�”}”(hŒ``{unnamed_union}``”h]”j’)�”}”(hjXh]”hŒ{unnamed_union}”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KhjXubj)�”}”(hhh]”hï)�”}”(hŒ anonymous”h]”hŒ anonymous”…”�”}”(hj4Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j0Xh´Khj1Xubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j0Xh´Khj¸Vubjà )�”}”(hŒ\``gobj1`` Part of a union. Used to get the pointer for the second graph_object of the link. ”h]”(jæ )�”}”(hŒ ``gobj1``”h]”j’)�”}”(hjTXh]”hŒgobj1”…”�”}”(hjVXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjRXubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K§hjNXubj)�”}”(hhh]”hï)�”}”(hŒQPart of a union. Used to get the pointer for the second graph_object of the link.”h]”hŒQPart of a union. Used to get the pointer for the second graph_object of the link.”…”�”}”(hjmXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K¦hjjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjNXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jiXh´K§hj¸Vubjà )�”}”(hŒu``sink`` Part of a union. Used only if the second object (gobj1) is a pad. In that case, it represents the sink pad. ”h]”(jæ )�”}”(hŒ``sink``”h]”j’)�”}”(hjŽXh]”hŒsink”…”�”}”(hj�Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjŒXubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K©hjˆXubj)�”}”(hhh]”hï)�”}”(hŒkPart of a union. Used only if the second object (gobj1) is a pad. In that case, it represents the sink pad.”h]”hŒkPart of a union. Used only if the second object (gobj1) is a pad. In that case, it represents the sink pad.”…”�”}”(hj§Xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K¨hj¤Xubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjˆXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j£Xh´K©hj¸Vubjà )�”}”(hŒQ``entity`` Part of a union. Used only if the second object (gobj1) is an entity. ”h]”(jæ )�”}”(hŒ ``entity``”h]”j’)�”}”(hjÈXh]”hŒentity”…”�”}”(hjÊXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÆXubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K«hjÂXubj)�”}”(hhh]”hï)�”}”(hŒEPart of a union. Used only if the second object (gobj1) is an entity.”h]”hŒEPart of a union. Used only if the second object (gobj1) is an entity.”…”�”}”(hjáXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KªhjÞXubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÂXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÝXh´K«hj¸Vubjà )�”}”(hŒP``reverse`` Pointer to the link for the reverse direction of a pad to pad link. ”h]”(jæ )�”}”(hŒ ``reverse``”h]”j’)�”}”(hjYh]”hŒreverse”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjYubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K­hjüXubj)�”}”(hhh]”hï)�”}”(hŒCPointer to the link for the reverse direction of a pad to pad link.”h]”hŒCPointer to the link for the reverse direction of a pad to pad link.”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K¬hjYubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjüXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jYh´K­hj¸Vubjà )�”}”(hŒB``flags`` Link flags, as defined in uapi/media.h (MEDIA_LNK_FL_*) ”h]”(jæ )�”}”(hŒ ``flags``”h]”j’)�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj:Yubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K®hj6Yubj)�”}”(hhh]”hï)�”}”(hŒ7Link flags, as defined in uapi/media.h (MEDIA_LNK_FL_*)”h]”hŒ7Link flags, as defined in uapi/media.h (MEDIA_LNK_FL_*)”…”�”}”(hjUYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jQYh´K®hjRYubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj6Yubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jQYh´K®hj¸Vubjà )�”}”(hŒ3``is_backlink`` Indicate if the link is a backlink.”h]”(jæ )�”}”(hŒ``is_backlink``”h]”j’)�”}”(hjuYh]”hŒ is_backlink”…”�”}”(hjwYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjsYubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K®hjoYubj)�”}”(hhh]”hï)�”}”(hŒ#Indicate if the link is a backlink.”h]”hŒ#Indicate if the link is a backlink.”…”�”}”(hjŽYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´K¯hj‹Yubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjoYubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jŠYh´K®hj¸Vubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjpVubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_pad_signal_type (C enum)”Œc.media_pad_signal_type”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_pad_signal_type”h]”j )�”}”(hŒenum media_pad_signal_type”h]”(j )�”}”(hjgIh]”hŒenum”…”�”}”(hjÏYh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjËYh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kµubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÝYh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjËYh²hh³jÜYh´Kµubj8 )�”}”(hŒmedia_pad_signal_type”h]”j> )�”}”(hjÉYh]”hŒmedia_pad_signal_type”…”�”}”(hjïYh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjëYubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjËYh²hh³jÜYh´Kµubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÇYh²hh³jÜYh´Kµubah}”(h]”jÂYah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÜYh´KµhjÄYh²hubjj )�”}”(hhh]”hï)�”}”(hŒ%type of the signal inside a media pad”h]”hŒ%type of the signal inside a media pad”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KÃhjZh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÄYh²hh³jÜYh´Kµubeh}”(h]”h ]”(j³Œenum”eh"]”h$]”h&]”jŠ j³j‹ j)ZjŒ j)Zj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX&**Constants** ``PAD_SIGNAL_DEFAULT`` Default signal. Use this when all inputs or all outputs are uniquely identified by the pad number. ``PAD_SIGNAL_ANALOG`` The pad contains an analog signal. It can be Radio Frequency, Intermediate Frequency, a baseband signal or sub-carriers. Tuner inputs, IF-PLL demodulators, composite and s-video signals should use it. ``PAD_SIGNAL_DV`` Contains a digital video signal, with can be a bitstream of samples taken from an analog TV video source. On such case, it usually contains the VBI data on it. ``PAD_SIGNAL_AUDIO`` Contains an Intermediate Frequency analog signal from an audio sub-carrier or an audio bitstream. IF signals are provided by tuners and consumed by audio AM/FM decoders. Bitstream audio is provided by an audio decoder.”h]”(hï)�”}”(hŒ **Constants**”h]”j')�”}”(hj3Zh]”hŒ Constants”…”�”}”(hj5Zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&• hj1Zubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KÇhj-ZubjÛ )�”}”(hhh]”(jà )�”}”(hŒz``PAD_SIGNAL_DEFAULT`` Default signal. Use this when all inputs or all outputs are uniquely identified by the pad number. ”h]”(jæ )�”}”(hŒ``PAD_SIGNAL_DEFAULT``”h]”j’)�”}”(hjRZh]”hŒPAD_SIGNAL_DEFAULT”…”�”}”(hjTZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjPZubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KËhjLZubj)�”}”(hhh]”hï)�”}”(hŒbDefault signal. Use this when all inputs or all outputs are uniquely identified by the pad number.”h]”hŒbDefault signal. Use this when all inputs or all outputs are uniquely identified by the pad number.”…”�”}”(hjkZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KÊhjhZubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjLZubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jgZh´KËhjIZubjà )�”}”(hŒß``PAD_SIGNAL_ANALOG`` The pad contains an analog signal. It can be Radio Frequency, Intermediate Frequency, a baseband signal or sub-carriers. Tuner inputs, IF-PLL demodulators, composite and s-video signals should use it. ”h]”(jæ )�”}”(hŒ``PAD_SIGNAL_ANALOG``”h]”j’)�”}”(hjŒZh]”hŒPAD_SIGNAL_ANALOG”…”�”}”(hjŽZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjŠZubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KÑhj†Zubj)�”}”(hhh]”hï)�”}”(hŒÈThe pad contains an analog signal. It can be Radio Frequency, Intermediate Frequency, a baseband signal or sub-carriers. Tuner inputs, IF-PLL demodulators, composite and s-video signals should use it.”h]”hŒÈThe pad contains an analog signal. It can be Radio Frequency, Intermediate Frequency, a baseband signal or sub-carriers. Tuner inputs, IF-PLL demodulators, composite and s-video signals should use it.”…”�”}”(hj¥Zh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KÎhj¢Zubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj†Zubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j¡Zh´KÑhjIZubjà )�”}”(hŒ²``PAD_SIGNAL_DV`` Contains a digital video signal, with can be a bitstream of samples taken from an analog TV video source. On such case, it usually contains the VBI data on it. ”h]”(jæ )�”}”(hŒ``PAD_SIGNAL_DV``”h]”j’)�”}”(hjÆZh]”hŒ PAD_SIGNAL_DV”…”�”}”(hjÈZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÄZubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KÖhjÀZubj)�”}”(hhh]”hï)�”}”(hŒŸContains a digital video signal, with can be a bitstream of samples taken from an analog TV video source. On such case, it usually contains the VBI data on it.”h]”hŒŸContains a digital video signal, with can be a bitstream of samples taken from an analog TV video source. On such case, it usually contains the VBI data on it.”…”�”}”(hjßZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KÔhjÜZubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÀZubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÛZh´KÖhjIZubjà )�”}”(hŒï``PAD_SIGNAL_AUDIO`` Contains an Intermediate Frequency analog signal from an audio sub-carrier or an audio bitstream. IF signals are provided by tuners and consumed by audio AM/FM decoders. Bitstream audio is provided by an audio decoder.”h]”(jæ )�”}”(hŒ``PAD_SIGNAL_AUDIO``”h]”j’)�”}”(hj[h]”hŒPAD_SIGNAL_AUDIO”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjþZubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KÛhjúZubj)�”}”(hhh]”hï)�”}”(hŒÚContains an Intermediate Frequency analog signal from an audio sub-carrier or an audio bitstream. IF signals are provided by tuners and consumed by audio AM/FM decoders. Bitstream audio is provided by an audio decoder.”h]”hŒÚContains an Intermediate Frequency analog signal from an audio sub-carrier or an audio bitstream. IF signals are provided by tuners and consumed by audio AM/FM decoders. Bitstream audio is provided by an audio decoder.”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´KÙhj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjúZubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j[h´KÛhjIZubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj-Zubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_pad (C struct)”Œ c.media_pad”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ media_pad”h]”j )�”}”(hŒstruct media_pad”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjZ[h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjV[h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Káubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh[h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjV[h²hh³jg[h´Káubj8 )�”}”(hŒ media_pad”h]”j> )�”}”(hjT[h]”hŒ media_pad”…”�”}”(hjz[h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjv[ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjV[h²hh³jg[h´Káubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjR[h²hh³jg[h´Káubah}”(h]”jM[ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jg[h´KáhjO[h²hubjj )�”}”(hhh]”hï)�”}”(hŒA media pad graph object.”h]”hŒA media pad graph object.”…”�”}”(hjœ[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kßhj™[h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjO[h²hh³jg[h´Káubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ j´[jŒ j´[j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX **Definition**:: struct media_pad { struct media_gobj graph_obj; struct media_entity *entity; u16 index; u16 num_links; enum media_pad_signal_type sig_type; unsigned long flags; struct media_pipeline *pipe; }; **Members** ``graph_obj`` Embedded structure containing the media object common data ``entity`` Entity this pad belongs to ``index`` Pad index in the entity pads array, numbered from 0 to n ``num_links`` Number of links connected to this pad ``sig_type`` Type of the signal inside a media pad ``flags`` Pad flags, as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_PAD_FL_*``) ``pipe`` Pipeline this pad belongs to. Use media_entity_pipeline() to access this field.”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÀ[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¼[ubhŒ:”…”�”}”(hj¼[h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kãhj¸[ubjÓ)�”}”(hŒÜstruct media_pad { struct media_gobj graph_obj; struct media_entity *entity; u16 index; u16 num_links; enum media_pad_signal_type sig_type; unsigned long flags; struct media_pipeline *pipe; };”h]”hŒÜstruct media_pad { struct media_gobj graph_obj; struct media_entity *entity; u16 index; u16 num_links; enum media_pad_signal_type sig_type; unsigned long flags; struct media_pipeline *pipe; };”…”�”}”hjÙ[sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kåhj¸[ubhï)�”}”(hŒ **Members**”h]”j')�”}”(hjê[h]”hŒMembers”…”�”}”(hjì[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjè[ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kïhj¸[ubjÛ )�”}”(hhh]”(jà )�”}”(hŒI``graph_obj`` Embedded structure containing the media object common data ”h]”(jæ )�”}”(hŒ ``graph_obj``”h]”j’)�”}”(hj \h]”hŒ graph_obj”…”�”}”(hj \h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kâhj\ubj)�”}”(hhh]”hï)�”}”(hŒ:Embedded structure containing the media object common data”h]”hŒ:Embedded structure containing the media object common data”…”�”}”(hj"\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j\h´Kâhj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j\h´Kâhj\ubjà )�”}”(hŒ&``entity`` Entity this pad belongs to ”h]”(jæ )�”}”(hŒ ``entity``”h]”j’)�”}”(hjB\h]”hŒentity”…”�”}”(hjD\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj@\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kãhj<\ubj)�”}”(hhh]”hï)�”}”(hŒEntity this pad belongs to”h]”hŒEntity this pad belongs to”…”�”}”(hj[\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jW\h´KãhjX\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj<\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jW\h´Kãhj\ubjà )�”}”(hŒC``index`` Pad index in the entity pads array, numbered from 0 to n ”h]”(jæ )�”}”(hŒ ``index``”h]”j’)�”}”(hj{\h]”hŒindex”…”�”}”(hj}\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjy\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kähju\ubj)�”}”(hhh]”hï)�”}”(hŒ8Pad index in the entity pads array, numbered from 0 to n”h]”hŒ8Pad index in the entity pads array, numbered from 0 to n”…”�”}”(hj”\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j�\h´Kähj‘\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hju\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j�\h´Kähj\ubjà )�”}”(hŒ4``num_links`` Number of links connected to this pad ”h]”(jæ )�”}”(hŒ ``num_links``”h]”j’)�”}”(hj´\h]”hŒ num_links”…”�”}”(hj¶\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj²\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kåhj®\ubj)�”}”(hhh]”hï)�”}”(hŒ%Number of links connected to this pad”h]”hŒ%Number of links connected to this pad”…”�”}”(hjÍ\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÉ\h´KåhjÊ\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj®\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÉ\h´Kåhj\ubjà )�”}”(hŒ3``sig_type`` Type of the signal inside a media pad ”h]”(jæ )�”}”(hŒ ``sig_type``”h]”j’)�”}”(hjí\h]”hŒsig_type”…”�”}”(hjï\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjë\ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kæhjç\ubj)�”}”(hhh]”hï)�”}”(hŒ%Type of the signal inside a media pad”h]”hŒ%Type of the signal inside a media pad”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j]h´Kæhj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjç\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j]h´Kæhj\ubjà )�”}”(hŒr``flags`` Pad flags, as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_PAD_FL_*``) ”h]”(jæ )�”}”(hŒ ``flags``”h]”j’)�”}”(hj&]h]”hŒflags”…”�”}”(hj(]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj$]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kéhj ]ubj)�”}”(hhh]”hï)�”}”(hŒgPad flags, as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_PAD_FL_*``)”h]”(hŒPad flags, as defined in ”…”�”}”(hj?]h²hh³Nh´Nubh)�”}”(hŒ0:ref:`include/uapi/linux/media.h `”h]”hý)�”}”(hjI]h]”hŒinclude/uapi/linux/media.h”…”�”}”(hjK]h²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1hühjG]ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jU]Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjŒ media_header”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kçhj?]ubhŒ (seek for ”…”�”}”(hj?]h²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_PAD_FL_*``”h]”hŒMEDIA_PAD_FL_*”…”�”}”(hjl]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj?]ubhŒ)”…”�”}”(hj?]h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jg]h´Kçhj<]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj ]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j;]h´Kéhj\ubjà )�”}”(hŒX``pipe`` Pipeline this pad belongs to. Use media_entity_pipeline() to access this field.”h]”(jæ )�”}”(hŒ``pipe``”h]”j’)�”}”(hj–]h]”hŒpipe”…”�”}”(hj˜]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj”]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kêhj�]ubj)�”}”(hhh]”hï)�”}”(hŒOPipeline this pad belongs to. Use media_entity_pipeline() to access this field.”h]”hŒOPipeline this pad belongs to. Use media_entity_pipeline() to access this field.”…”�”}”(hj¯]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j«]h´Kêhj¬]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj�]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j«]h´Kêhj\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj¸[ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ"media_entity_operations (C struct)”Œc.media_entity_operations”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_entity_operations”h]”j )�”}”(hŒstruct media_entity_operations”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjï]h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjë]h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kñubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjý]h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjë]h²hh³jü]h´Kñubj8 )�”}”(hŒmedia_entity_operations”h]”j> )�”}”(hjé]h]”hŒmedia_entity_operations”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj ^ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjë]h²hh³jü]h´Kñubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjç]h²hh³jü]h´Kñubah}”(h]”jâ]ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jü]h´Kñhjä]h²hubjj )�”}”(hhh]”hï)�”}”(hŒMedia entity operations”h]”hŒMedia entity operations”…”�”}”(hj1^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kühj.^h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjä]h²hh³jü]h´Kñubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ jI^jŒ jI^j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXÌ**Definition**:: struct media_entity_operations { int (*get_fwnode_pad)(struct media_entity *entity, struct fwnode_endpoint *endpoint); int (*link_setup)(struct media_entity *entity, const struct media_pad *local, const struct media_pad *remote, u32 flags); int (*link_validate)(struct media_link *link); bool (*has_pad_interdep)(struct media_entity *entity, unsigned int pad0, unsigned int pad1); }; **Members** ``get_fwnode_pad`` Return the pad number based on a fwnode endpoint or a negative value on error. This operation can be used to map a fwnode to a media pad number. Optional. ``link_setup`` Notify the entity of link changes. The operation can return an error, in which case link setup will be cancelled. Optional. ``link_validate`` Return whether a link is valid from the entity point of view. The media_pipeline_start() function validates all links by calling this operation. Optional. ``has_pad_interdep`` Return whether two pads of the entity are interdependent. If two pads are interdependent they are part of the same pipeline and enabling one of the pads means that the other pad will become "locked" and doesn't allow configuration changes. pad0 and pad1 are guaranteed to not both be sinks or sources. Never call the .has_pad_interdep() operation directly, always use media_entity_has_pad_interdep(). Optional: If the operation isn't implemented all pads will be considered as interdependent.”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjU^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjQ^ubhŒ:”…”�”}”(hjQ^h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjM^ubjÓ)�”}”(hX�struct media_entity_operations { int (*get_fwnode_pad)(struct media_entity *entity, struct fwnode_endpoint *endpoint); int (*link_setup)(struct media_entity *entity, const struct media_pad *local, const struct media_pad *remote, u32 flags); int (*link_validate)(struct media_link *link); bool (*has_pad_interdep)(struct media_entity *entity, unsigned int pad0, unsigned int pad1); };”h]”hX�struct media_entity_operations { int (*get_fwnode_pad)(struct media_entity *entity, struct fwnode_endpoint *endpoint); int (*link_setup)(struct media_entity *entity, const struct media_pad *local, const struct media_pad *remote, u32 flags); int (*link_validate)(struct media_link *link); bool (*has_pad_interdep)(struct media_entity *entity, unsigned int pad0, unsigned int pad1); };”…”�”}”hjn^sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjM^ubhï)�”}”(hŒ **Members**”h]”j')�”}”(hj^h]”hŒMembers”…”�”}”(hj�^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj}^ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hjM^ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ®``get_fwnode_pad`` Return the pad number based on a fwnode endpoint or a negative value on error. This operation can be used to map a fwnode to a media pad number. Optional. ”h]”(jæ )�”}”(hŒ``get_fwnode_pad``”h]”j’)�”}”(hjž^h]”hŒget_fwnode_pad”…”�”}”(hj ^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjœ^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj˜^ubj)�”}”(hhh]”hï)�”}”(hŒšReturn the pad number based on a fwnode endpoint or a negative value on error. This operation can be used to map a fwnode to a media pad number. Optional.”h]”hŒšReturn the pad number based on a fwnode endpoint or a negative value on error. This operation can be used to map a fwnode to a media pad number. Optional.”…”�”}”(hj·^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Kþhj´^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj˜^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j³^h´Mhj•^ubjà )�”}”(hŒ‹``link_setup`` Notify the entity of link changes. The operation can return an error, in which case link setup will be cancelled. Optional. ”h]”(jæ )�”}”(hŒ``link_setup``”h]”j’)�”}”(hjØ^h]”hŒ link_setup”…”�”}”(hjÚ^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÖ^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjÒ^ubj)�”}”(hhh]”hï)�”}”(hŒ{Notify the entity of link changes. The operation can return an error, in which case link setup will be cancelled. Optional.”h]”hŒ{Notify the entity of link changes. The operation can return an error, in which case link setup will be cancelled. Optional.”…”�”}”(hjñ^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjî^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÒ^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jí^h´Mhj•^ubjà )�”}”(hŒ­``link_validate`` Return whether a link is valid from the entity point of view. The media_pipeline_start() function validates all links by calling this operation. Optional. ”h]”(jæ )�”}”(hŒ``link_validate``”h]”j’)�”}”(hj_h]”hŒ link_validate”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj _ubj)�”}”(hhh]”hï)�”}”(hŒšReturn whether a link is valid from the entity point of view. The media_pipeline_start() function validates all links by calling this operation. Optional.”h]”hŒšReturn whether a link is valid from the entity point of view. The media_pipeline_start() function validates all links by calling this operation. Optional.”…”�”}”(hj+_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj(_ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj _ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j'_h´Mhj•^ubjà )�”}”(hX``has_pad_interdep`` Return whether two pads of the entity are interdependent. If two pads are interdependent they are part of the same pipeline and enabling one of the pads means that the other pad will become "locked" and doesn't allow configuration changes. pad0 and pad1 are guaranteed to not both be sinks or sources. Never call the .has_pad_interdep() operation directly, always use media_entity_has_pad_interdep(). Optional: If the operation isn't implemented all pads will be considered as interdependent.”h]”(jæ )�”}”(hŒ``has_pad_interdep``”h]”j’)�”}”(hjL_h]”hŒhas_pad_interdep”…”�”}”(hjN_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjJ_ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjF_ubj)�”}”(hhh]”hï)�”}”(hXìReturn whether two pads of the entity are interdependent. If two pads are interdependent they are part of the same pipeline and enabling one of the pads means that the other pad will become "locked" and doesn't allow configuration changes. pad0 and pad1 are guaranteed to not both be sinks or sources. Never call the .has_pad_interdep() operation directly, always use media_entity_has_pad_interdep(). Optional: If the operation isn't implemented all pads will be considered as interdependent.”h]”hXôReturn whether two pads of the entity are interdependent. If two pads are interdependent they are part of the same pipeline and enabling one of the pads means that the other pad will become “lockedâ€� and doesn’t allow configuration changes. pad0 and pad1 are guaranteed to not both be sinks or sources. Never call the .has_pad_interdep() operation directly, always use media_entity_has_pad_interdep(). Optional: If the operation isn’t implemented all pads will be considered as interdependent.”…”�”}”(hje_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjb_ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjF_ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³ja_h´Mhj•^ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjM^ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj�_h]”hŒ Description”…”�”}”(hj‘_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj�_ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjá h²hubj¬)�”}”(hŒjThose these callbacks are called with struct :c:type:`media_device.graph_mutex ` mutex held.”h]”hï)�”}”(hŒjThose these callbacks are called with struct :c:type:`media_device.graph_mutex ` mutex held.”h]”(hŒ-Those these callbacks are called with struct ”…”�”}”(hj©_h²hh³Nh´Nubh)�”}”(hŒ1:c:type:`media_device.graph_mutex `”h]”j’)�”}”(hj³_h]”hŒmedia_device.graph_mutex”…”�”}”(hjµ_h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj±_ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jäjèjŒ media_device”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj©_ubhŒ mutex held.”…”�”}”(hj©_h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÐ_h´Mhj¥_ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_entity_type (C enum)”Œc.media_entity_type”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_entity_type”h]”j )�”}”(hŒenum media_entity_type”h]”(j )�”}”(hjgIh]”hŒenum”…”�”}”(hjú_h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjö_h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjö_h²hh³j`h´Mubj8 )�”}”(hŒmedia_entity_type”h]”j> )�”}”(hjô_h]”hŒmedia_entity_type”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj`ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjö_h²hh³j`h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjò_h²hh³j`h´Mubah}”(h]”jí_ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j`h´Mhjï_h²hubjj )�”}”(hhh]”hï)�”}”(hŒMedia entity type”h]”hŒMedia entity type”…”�”}”(hj<`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M"hj9`h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjï_h²hh³j`h´Mubeh}”(h]”h ]”(j³Œenum”eh"]”h$]”h&]”jŠ j³j‹ jT`jŒ jT`j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX#**Constants** ``MEDIA_ENTITY_TYPE_BASE`` The entity isn't embedded in another subsystem structure. ``MEDIA_ENTITY_TYPE_VIDEO_DEVICE`` The entity is embedded in a struct video_device instance. ``MEDIA_ENTITY_TYPE_V4L2_SUBDEV`` The entity is embedded in a struct v4l2_subdev instance.”h]”(hï)�”}”(hŒ **Constants**”h]”j')�”}”(hj^`h]”hŒ Constants”…”�”}”(hj``h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj\`ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M&hjX`ubjÛ )�”}”(hhh]”(jà )�”}”(hŒU``MEDIA_ENTITY_TYPE_BASE`` The entity isn't embedded in another subsystem structure. ”h]”(jæ )�”}”(hŒ``MEDIA_ENTITY_TYPE_BASE``”h]”j’)�”}”(hj}`h]”hŒMEDIA_ENTITY_TYPE_BASE”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj{`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M)hjw`ubj)�”}”(hhh]”hï)�”}”(hŒ9The entity isn't embedded in another subsystem structure.”h]”hŒ;The entity isn’t embedded in another subsystem structure.”…”�”}”(hj–`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j’`h´M)hj“`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjw`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j’`h´M)hjt`ubjà )�”}”(hŒ]``MEDIA_ENTITY_TYPE_VIDEO_DEVICE`` The entity is embedded in a struct video_device instance. ”h]”(jæ )�”}”(hŒ"``MEDIA_ENTITY_TYPE_VIDEO_DEVICE``”h]”j’)�”}”(hj¶`h]”hŒMEDIA_ENTITY_TYPE_VIDEO_DEVICE”…”�”}”(hj¸`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj´`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M,hj°`ubj)�”}”(hhh]”hï)�”}”(hŒ9The entity is embedded in a struct video_device instance.”h]”hŒ9The entity is embedded in a struct video_device instance.”…”�”}”(hjÏ`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jË`h´M,hjÌ`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj°`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jË`h´M,hjt`ubjà )�”}”(hŒZ``MEDIA_ENTITY_TYPE_V4L2_SUBDEV`` The entity is embedded in a struct v4l2_subdev instance.”h]”(jæ )�”}”(hŒ!``MEDIA_ENTITY_TYPE_V4L2_SUBDEV``”h]”j’)�”}”(hjï`h]”hŒMEDIA_ENTITY_TYPE_V4L2_SUBDEV”…”�”}”(hjñ`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjí`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M.hjé`ubj)�”}”(hhh]”hï)�”}”(hŒ8The entity is embedded in a struct v4l2_subdev instance.”h]”hŒ8The entity is embedded in a struct v4l2_subdev instance.”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M/hjaubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjé`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jah´M.hjt`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjX`ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj2ah]”hŒ Description”…”�”}”(hj4ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj0aubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M1hjá h²hubhï)�”}”(hXMedia entity objects are often not instantiated directly, but the media entity structure is inherited by (through embedding) other subsystem-specific structures. The media entity type identifies the type of the subclass structure that implements a media entity instance.”h]”hXMedia entity objects are often not instantiated directly, but the media entity structure is inherited by (through embedding) other subsystem-specific structures. The media entity type identifies the type of the subclass structure that implements a media entity instance.”…”�”}”(hjHah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M*hjá h²hubhï)�”}”(hXTThis allows runtime type identification of media entities and safe casting to the correct object type. For instance, a media entity structure instance embedded in a v4l2_subdev structure instance will have the type ``MEDIA_ENTITY_TYPE_V4L2_SUBDEV`` and can safely be cast to a :c:type:`v4l2_subdev` structure using the container_of() macro.”h]”(hŒ×This allows runtime type identification of media entities and safe casting to the correct object type. For instance, a media entity structure instance embedded in a v4l2_subdev structure instance will have the type ”…”�”}”(hjWah²hh³Nh´Nubj’)�”}”(hŒ!``MEDIA_ENTITY_TYPE_V4L2_SUBDEV``”h]”hŒMEDIA_ENTITY_TYPE_V4L2_SUBDEV”…”�”}”(hj_ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjWaubhŒ and can safely be cast to a ”…”�”}”(hjWah²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_subdev`”h]”j’)�”}”(hjsah]”hŒ v4l2_subdev”…”�”}”(hjuah²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjqaubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ v4l2_subdev”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M/hjWaubhŒ* structure using the container_of() macro.”…”�”}”(hjWah²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j�ah´M/hjá h²hubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_entity (C struct)”Œc.media_entity”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ media_entity”h]”j )�”}”(hŒstruct media_entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj´ah²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj°ah²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M8ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÂah²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj°ah²hh³jÁah´M8ubj8 )�”}”(hŒ media_entity”h]”j> )�”}”(hj®ah]”hŒ media_entity”…”�”}”(hjÔah²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÐaubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj°ah²hh³jÁah´M8ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj¬ah²hh³jÁah´M8ubah}”(h]”j§aah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÁah´M8hj©ah²hubjj )�”}”(hhh]”hï)�”}”(hŒA media entity graph object.”h]”hŒA media entity graph object.”…”�”}”(hjöah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M=hjóah²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj©ah²hh³jÁah´M8ubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ jbjŒ jbj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX¸**Definition**:: struct media_entity { struct media_gobj graph_obj; const char *name; enum media_entity_type obj_type; u32 function; unsigned long flags; u16 num_pads; u16 num_links; u16 num_backlinks; int internal_idx; struct media_pad *pads; struct list_head links; const struct media_entity_operations *ops; int use_count; union { struct { u32 major; u32 minor; } dev; } info; }; **Members** ``graph_obj`` Embedded structure containing the media object common data. ``name`` Entity name. ``obj_type`` Type of the object that implements the media_entity. ``function`` Entity main function, as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_ENT_F_*``) ``flags`` Entity flags, as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_ENT_FL_*``) ``num_pads`` Number of sink and source pads. ``num_links`` Total number of links, forward and back, enabled and disabled. ``num_backlinks`` Number of backlinks ``internal_idx`` An unique internal entity specific number. The numbers are re-used if entities are unregistered or registered again. ``pads`` Pads array with the size defined by **num_pads**. ``links`` List of data links. ``ops`` Entity operations. ``use_count`` Use count for the entity. ``info`` Union with devnode information. Kept just for backward compatibility. ``info.dev`` Contains device major and minor info. ``info.dev.major`` device node major, if the device is a devnode. ``info.dev.minor`` device node minor, if the device is a devnode.”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjbubhŒ:”…”�”}”(hjbh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MAhjbubjÓ)�”}”(hXÑstruct media_entity { struct media_gobj graph_obj; const char *name; enum media_entity_type obj_type; u32 function; unsigned long flags; u16 num_pads; u16 num_links; u16 num_backlinks; int internal_idx; struct media_pad *pads; struct list_head links; const struct media_entity_operations *ops; int use_count; union { struct { u32 major; u32 minor; } dev; } info; };”h]”hXÑstruct media_entity { struct media_gobj graph_obj; const char *name; enum media_entity_type obj_type; u32 function; unsigned long flags; u16 num_pads; u16 num_links; u16 num_backlinks; int internal_idx; struct media_pad *pads; struct list_head links; const struct media_entity_operations *ops; int use_count; union { struct { u32 major; u32 minor; } dev; } info; };”…”�”}”hj3bsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MChjbubhï)�”}”(hŒ **Members**”h]”j')�”}”(hjDbh]”hŒMembers”…”�”}”(hjFbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjBbubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MYhjbubjÛ )�”}”(hhh]”(jà )�”}”(hŒJ``graph_obj`` Embedded structure containing the media object common data. ”h]”(jæ )�”}”(hŒ ``graph_obj``”h]”j’)�”}”(hjcbh]”hŒ graph_obj”…”�”}”(hjebh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjabubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M@hj]bubj)�”}”(hhh]”hï)�”}”(hŒ;Embedded structure containing the media object common data.”h]”hŒ;Embedded structure containing the media object common data.”…”�”}”(hj|bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jxbh´M@hjybubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj]bubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jxbh´M@hjZbubjà )�”}”(hŒ``name`` Entity name. ”h]”(jæ )�”}”(hŒ``name``”h]”j’)�”}”(hjœbh]”hŒname”…”�”}”(hjžbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjšbubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MAhj–bubj)�”}”(hhh]”hï)�”}”(hŒ Entity name.”h]”hŒ Entity name.”…”�”}”(hjµbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j±bh´MAhj²bubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj–bubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j±bh´MAhjZbubjà )�”}”(hŒB``obj_type`` Type of the object that implements the media_entity. ”h]”(jæ )�”}”(hŒ ``obj_type``”h]”j’)�”}”(hjÕbh]”hŒobj_type”…”�”}”(hj×bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÓbubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MBhjÏbubj)�”}”(hhh]”hï)�”}”(hŒ4Type of the object that implements the media_entity.”h]”hŒ4Type of the object that implements the media_entity.”…”�”}”(hjîbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jêbh´MBhjëbubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÏbubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jêbh´MBhjZbubjà )�”}”(hŒ``function`` Entity main function, as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_ENT_F_*``) ”h]”(jæ )�”}”(hŒ ``function``”h]”j’)�”}”(hjch]”hŒfunction”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj cubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MEhjcubj)�”}”(hhh]”hï)�”}”(hŒqEntity main function, as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_ENT_F_*``)”h]”(hŒ$Entity main function, as defined in ”…”�”}”(hj'ch²hh³Nh´Nubh)�”}”(hŒ0:ref:`include/uapi/linux/media.h `”h]”hý)�”}”(hj1ch]”hŒinclude/uapi/linux/media.h”…”�”}”(hj3ch²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1hühj/cubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j=cŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjŒ media_header”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MChj'cubhŒ (seek for ”…”�”}”(hj'ch²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_ENT_F_*``”h]”hŒ MEDIA_ENT_F_*”…”�”}”(hjTch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj'cubhŒ)”…”�”}”(hj'ch²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jOch´MChj$cubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjcubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j#ch´MEhjZbubjà )�”}”(hŒu``flags`` Entity flags, as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_ENT_FL_*``) ”h]”(jæ )�”}”(hŒ ``flags``”h]”j’)�”}”(hj~ch]”hŒflags”…”�”}”(hj€ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj|cubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MHhjxcubj)�”}”(hhh]”hï)�”}”(hŒjEntity flags, as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_ENT_FL_*``)”h]”(hŒEntity flags, as defined in ”…”�”}”(hj—ch²hh³Nh´Nubh)�”}”(hŒ0:ref:`include/uapi/linux/media.h `”h]”hý)�”}”(hj¡ch]”hŒinclude/uapi/linux/media.h”…”�”}”(hj£ch²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1hühjŸcubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j­cŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjŒ media_header”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MFhj—cubhŒ (seek for ”…”�”}”(hj—ch²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_ENT_FL_*``”h]”hŒMEDIA_ENT_FL_*”…”�”}”(hjÄch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj—cubhŒ)”…”�”}”(hj—ch²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¿ch´MFhj”cubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjxcubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j“ch´MHhjZbubjà )�”}”(hŒ-``num_pads`` Number of sink and source pads. ”h]”(jæ )�”}”(hŒ ``num_pads``”h]”j’)�”}”(hjîch]”hŒnum_pads”…”�”}”(hjðch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjìcubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MIhjècubj)�”}”(hhh]”hï)�”}”(hŒNumber of sink and source pads.”h]”hŒNumber of sink and source pads.”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jdh´MIhjdubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjècubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jdh´MIhjZbubjà )�”}”(hŒM``num_links`` Total number of links, forward and back, enabled and disabled. ”h]”(jæ )�”}”(hŒ ``num_links``”h]”j’)�”}”(hj'dh]”hŒ num_links”…”�”}”(hj)dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj%dubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MJhj!dubj)�”}”(hhh]”hï)�”}”(hŒ>Total number of links, forward and back, enabled and disabled.”h]”hŒ>Total number of links, forward and back, enabled and disabled.”…”�”}”(hj@dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj:fubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MUhj6fubj)�”}”(hhh]”hï)�”}”(hŒ.device node major, if the device is a devnode.”h]”hŒ.device node major, if the device is a devnode.”…”�”}”(hjUfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jQfh´MUhjRfubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj6fubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jQfh´MUhjZbubjà )�”}”(hŒA``info.dev.minor`` device node minor, if the device is a devnode.”h]”(jæ )�”}”(hŒ``info.dev.minor``”h]”j’)�”}”(hjufh]”hŒinfo.dev.minor”…”�”}”(hjwfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjsfubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MUhjofubj)�”}”(hhh]”hï)�”}”(hŒ.device node minor, if the device is a devnode.”h]”hŒ.device node minor, if the device is a devnode.”…”�”}”(hjŽfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MVhj‹fubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjofubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jŠfh´MUhjZbubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjbubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj¸fh]”hŒ Description”…”�”}”(hjºfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¶fubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MYhjá h²hubj¬)�”}”(hŒÄThe **use_count** reference count must never be negative, but is a signed integer on purpose: a simple ``WARN_ON(<0)`` check can be used to detect reference count bugs that would make it negative.”h]”hï)�”}”(hŒÄThe **use_count** reference count must never be negative, but is a signed integer on purpose: a simple ``WARN_ON(<0)`` check can be used to detect reference count bugs that would make it negative.”h]”(hŒThe ”…”�”}”(hjÒfh²hh³Nh´Nubj')�”}”(hŒ **use_count**”h]”hŒ use_count”…”�”}”(hjÚfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÒfubhŒV reference count must never be negative, but is a signed integer on purpose: a simple ”…”�”}”(hjÒfh²hh³Nh´Nubj’)�”}”(hŒ``WARN_ON(<0)``”h]”hŒ WARN_ON(<0)”…”�”}”(hjìfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÒfubhŒN check can be used to detect reference count bugs that would make it negative.”…”�”}”(hjÒfh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MXhjÎfubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ#media_entity_for_each_pad (C macro)”Œc.media_entity_for_each_pad”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_entity_for_each_pad”h]”j )�”}”(hŒmedia_entity_for_each_pad”h]”j8 )�”}”(hŒmedia_entity_for_each_pad”h]”j> )�”}”(hjgh]”hŒmedia_entity_for_each_pad”…”�”}”(hj(gh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj$gubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj gh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Myubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjgh²hh³j;gh´Myubah}”(h]”jgah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j;gh´Myhjgh²hubjj )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1ji hjgh²hh³j;gh´Myubeh}”(h]”h ]”(j³Œmacro”eh"]”h$]”h&]”jŠ j³j‹ jTgjŒ jTgj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubhï)�”}”(hŒ,``media_entity_for_each_pad (entity, iter)``”h]”j’)�”}”(hjZgh]”hŒ(media_entity_for_each_pad (entity, iter)”…”�”}”(hj\gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjXgubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M{hjá h²hubj§)�”}”(hŒ!Iterate on all pads in an entity ”h]”hï)�”}”(hŒ Iterate on all pads in an entity”h]”hŒ Iterate on all pads in an entity”…”�”}”(hjtgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Myhjpgubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦h³j‚gh´Myhjá h²hubj‘ )�”}”(hŒ�**Parameters** ``entity`` The entity the pads belong to ``iter`` The iterator pad **Description** Iterate on all pads in a media entity.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj�gh]”hŒ Parameters”…”�”}”(hj‘gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj�gubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M}hj‰gubjÛ )�”}”(hhh]”(jà )�”}”(hŒ)``entity`` The entity the pads belong to ”h]”(jæ )�”}”(hŒ ``entity``”h]”j’)�”}”(hj®gh]”hŒentity”…”�”}”(hj°gh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¬gubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mzhj¨gubj)�”}”(hhh]”hï)�”}”(hŒThe entity the pads belong to”h]”hŒThe entity the pads belong to”…”�”}”(hjÇgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÃgh´MzhjÄgubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¨gubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÃgh´Mzhj¥gubjà )�”}”(hŒ``iter`` The iterator pad ”h]”(jæ )�”}”(hŒ``iter``”h]”j’)�”}”(hjçgh]”hŒiter”…”�”}”(hjégh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjågubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M{hjágubj)�”}”(hhh]”hï)�”}”(hŒThe iterator pad”h]”hŒThe iterator pad”…”�”}”(hjhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jügh´M{hjýgubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjágubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jügh´M{hj¥gubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj‰gubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj"hh]”hŒ Description”…”�”}”(hj$hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj hubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M}hj‰gubhï)�”}”(hŒ&Iterate on all pads in a media entity.”h]”hŒ&Iterate on all pads in a media entity.”…”�”}”(hj8hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M|hj‰gubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_interface (C struct)”Œc.media_interface”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_interface”h]”j )�”}”(hŒstruct media_interface”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjghh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjchh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjuhh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjchh²hh³jthh´M�ubj8 )�”}”(hŒmedia_interface”h]”j> )�”}”(hjahh]”hŒmedia_interface”…”�”}”(hj‡hh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjƒhubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjchh²hh³jthh´M�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj_hh²hh³jthh´M�ubah}”(h]”jZhah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jthh´M�hj\hh²hubjj )�”}”(hhh]”hï)�”}”(hŒA media interface graph object.”h]”hŒA media interface graph object.”…”�”}”(hj©hh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M…hj¦hh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj\hh²hh³jthh´M�ubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ jÁhjŒ jÁhj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX**Definition**:: struct media_interface { struct media_gobj graph_obj; struct list_head links; u32 type; u32 flags; }; **Members** ``graph_obj`` embedded graph object ``links`` List of links pointing to graph entities ``type`` Type of the interface as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_INTF_T_*``) ``flags`` Interface flags as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_INTF_FL_*``)”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÍhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÉhubhŒ:”…”�”}”(hjÉhh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M‰hjÅhubjÓ)�”}”(hŒ’struct media_interface { struct media_gobj graph_obj; struct list_head links; u32 type; u32 flags; };”h]”hŒ’struct media_interface { struct media_gobj graph_obj; struct list_head links; u32 type; u32 flags; };”…”�”}”hjæhsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M‹hjÅhubhï)�”}”(hŒ **Members**”h]”j')�”}”(hj÷hh]”hŒMembers”…”�”}”(hjùhh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjõhubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M’hjÅhubjÛ )�”}”(hhh]”(jà )�”}”(hŒ$``graph_obj`` embedded graph object ”h]”(jæ )�”}”(hŒ ``graph_obj``”h]”j’)�”}”(hjih]”hŒ graph_obj”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjiubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mˆhjiubj)�”}”(hhh]”hï)�”}”(hŒembedded graph object”h]”hŒembedded graph object”…”�”}”(hj/ih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j+ih´Mˆhj,iubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjiubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j+ih´Mˆhj iubjà )�”}”(hŒ3``links`` List of links pointing to graph entities ”h]”(jæ )�”}”(hŒ ``links``”h]”j’)�”}”(hjOih]”hŒlinks”…”�”}”(hjQih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjMiubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M‰hjIiubj)�”}”(hhh]”hï)�”}”(hŒ(List of links pointing to graph entities”h]”hŒ(List of links pointing to graph entities”…”�”}”(hjhih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jdih´M‰hjeiubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjIiubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jdih´M‰hj iubjà )�”}”(hŒ|``type`` Type of the interface as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_INTF_T_*``) ”h]”(jæ )�”}”(hŒ``type``”h]”j’)�”}”(hjˆih]”hŒtype”…”�”}”(hjŠih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj†iubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŒhj‚iubj)�”}”(hhh]”hï)�”}”(hŒrType of the interface as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_INTF_T_*``)”h]”(hŒ$Type of the interface as defined in ”…”�”}”(hj¡ih²hh³Nh´Nubh)�”}”(hŒ0:ref:`include/uapi/linux/media.h `”h]”hý)�”}”(hj«ih]”hŒinclude/uapi/linux/media.h”…”�”}”(hj­ih²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1hühj©iubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j·iŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjŒ media_header”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŠhj¡iubhŒ (seek for ”…”�”}”(hj¡ih²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_INTF_T_*``”h]”hŒMEDIA_INTF_T_*”…”�”}”(hjÎih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¡iubhŒ)”…”�”}”(hj¡ih²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÉih´MŠhjžiubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj‚iubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j�ih´MŒhj iubjà )�”}”(hŒw``flags`` Interface flags as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_INTF_FL_*``)”h]”(jæ )�”}”(hŒ ``flags``”h]”j’)�”}”(hjøih]”hŒflags”…”�”}”(hjúih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjöiubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŽhjòiubj)�”}”(hhh]”hï)�”}”(hŒmInterface flags as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_INTF_FL_*``)”h]”(hŒInterface flags as defined in ”…”�”}”(hjjh²hh³Nh´Nubh)�”}”(hŒ0:ref:`include/uapi/linux/media.h `”h]”hý)�”}”(hjjh]”hŒinclude/uapi/linux/media.h”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1hühjjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j'jŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjŒ media_header”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�hjjubhŒ (seek for ”…”�”}”(hjjh²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_INTF_FL_*``”h]”hŒMEDIA_INTF_FL_*”…”�”}”(hj>jh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjjubhŒ)”…”�”}”(hjjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j9jh´M�hjjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjòiubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j jh´MŽhj iubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÅhubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjqjh]”hŒ Description”…”�”}”(hjsjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjojubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M’hjá h²hubj¬)�”}”(hŒ=Currently, no flags for :c:type:`media_interface` is defined.”h]”hï)�”}”(hj‰jh]”(hŒCurrently, no flags for ”…”�”}”(hj‹jh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_interface`”h]”j’)�”}”(hj”jh]”hŒmedia_interface”…”�”}”(hj–jh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj’jubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒmedia_interface”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M‘hj‹jubhŒ is defined.”…”�”}”(hj‹jh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j±jh´M‘hj‡jubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_intf_devnode (C struct)”Œc.media_intf_devnode”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_intf_devnode”h]”j )�”}”(hŒstruct media_intf_devnode”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÛjh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj×jh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M–ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjéjh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj×jh²hh³jèjh´M–ubj8 )�”}”(hŒmedia_intf_devnode”h]”j> )�”}”(hjÕjh]”hŒmedia_intf_devnode”…”�”•}”(hjûjh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj÷jubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj×jh²hh³jèjh´M–ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÓjh²hh³jèjh´M–ubah}”(h]”jÎjah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jèjh´M–hjÐjh²hubjj )�”}”(hhh]”hï)�”}”(hŒ$A media interface via a device node.”h]”hŒ$A media interface via a device node.”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mœhjkh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÐjh²hh³jèjh´M–ubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ j5kjŒ j5kj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX **Definition**:: struct media_intf_devnode { struct media_interface intf; u32 major; u32 minor; }; **Members** ``intf`` embedded interface object ``major`` Major number of a device node ``minor`` Minor number of a device node”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjAkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj=kubhŒ:”…”�”}”(hj=kh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hj9kubjÓ)�”}”(hŒfstruct media_intf_devnode { struct media_interface intf; u32 major; u32 minor; };”h]”hŒfstruct media_intf_devnode { struct media_interface intf; u32 major; u32 minor; };”…”�”}”hjZksbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¢hj9kubhï)�”}”(hŒ **Members**”h]”j')�”}”(hjkkh]”hŒMembers”…”�”}”(hjmkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjikubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¨hj9kubjÛ )�”}”(hhh]”(jà )�”}”(hŒ#``intf`` embedded interface object ”h]”(jæ )�”}”(hŒ``intf``”h]”j’)�”}”(hjŠkh]”hŒintf”…”�”}”(hjŒkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjˆkubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŸhj„kubj)�”}”(hhh]”hï)�”}”(hŒembedded interface object”h]”hŒembedded interface object”…”�”}”(hj£kh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŸkh´MŸhj kubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj„kubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jŸkh´MŸhj�kubjà )�”}”(hŒ(``major`` Major number of a device node ”h]”(jæ )�”}”(hŒ ``major``”h]”j’)�”}”(hjÃkh]”hŒmajor”…”�”}”(hjÅkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÁkubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hj½kubj)�”}”(hhh]”hï)�”}”(hŒMajor number of a device node”h]”hŒMajor number of a device node”…”�”}”(hjÜkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jØkh´M hjÙkubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj½kubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jØkh´M hj�kubjà )�”}”(hŒ'``minor`` Minor number of a device node”h]”(jæ )�”}”(hŒ ``minor``”h]”j’)�”}”(hjükh]”hŒminor”…”�”}”(hjþkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjúkubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hjökubj)�”}”(hhh]”hï)�”}”(hŒMinor number of a device node”h]”hŒMinor number of a device node”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¡hjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjökubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jlh´M hj�kubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj9kubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_entity_id (C function)”Œc.media_entity_id”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ1u32 media_entity_id (struct media_entity *entity)”h]”j )�”}”(hŒ0u32 media_entity_id(struct media_entity *entity)”h]”(h)�”}”(hhh]”j> )�”}”(hŒu32”h]”hŒu32”…”�”}”(hjYlh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjVlubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j[lŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_entity_id”sbŒc.media_entity_id”†”asbuh1hhjRlh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M«ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{lh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjRlh²hh³jzlh´M«ubj8 )�”}”(hŒmedia_entity_id”h]”j> )�”}”(hjwlh]”hŒmedia_entity_id”…”�”}”(hj�lh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj‰lubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjRlh²hh³jzlh´M«ubj˜)�”}”(hŒ(struct media_entity *entity)”h]”jž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj¨lh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj¤lubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjµlh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¤lubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hjÆlh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÃlubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jÈlŒmodname”NŒ classname”Njäjç)�”}”jê]”julŒc.media_entity_id”†”asbuh1hhj¤lubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjälh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¤lubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjòlh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj¤lubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hjÿlh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¤lubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj lubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjRlh²hh³jzlh´M«ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjNlh²hh³jzlh´M«ubah}”(h]”jIlah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jzlh´M«hjKlh²hubjj )�”}”(hhh]”hï)�”}”(hŒ'return the media entity graph object id”h]”hŒ'return the media entity graph object id”…”�”}”(hj)mh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M«hj&mh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjKlh²hh³jzlh´M«ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jAmjŒ jAmj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒS**Parameters** ``struct media_entity *entity`` pointer to :c:type:`media_entity`”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjKmh]”hŒ Parameters”…”�”}”(hjMmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjImubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¯hjEmubjÛ )�”}”(hhh]”jà )�”}”(hŒA``struct media_entity *entity`` pointer to :c:type:`media_entity`”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hjjmh]”hŒstruct media_entity *entity”…”�”}”(hjlmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjhmubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M±hjdmubj)�”}”(hhh]”hï)�”}”(hŒ!pointer to :c:type:`media_entity`”h]”(hŒ pointer to ”…”�”}”(hjƒmh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hj�mh]”hŒ media_entity”…”�”}”(hj�mh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj‹mubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_entity”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M­hjƒmubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jªmh´M­hj€mubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjdmubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jmh´M±hjamubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjEmubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_type (C function)”Œ c.media_type”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ9enum media_gobj_type media_type (struct media_gobj *gobj)”h]”j )�”}”(hŒ8enum media_gobj_type media_type(struct media_gobj *gobj)”h]”(j )�”}”(hjgIh]”hŒenum”…”�”}”(hjãmh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjßmh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mµubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñmh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjßmh²hh³jðmh´Mµubh)�”}”(hhh]”j> )�”}”(hŒmedia_gobj_type”h]”hŒmedia_gobj_type”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÿmubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jnŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌ media_type”sbŒ c.media_type”†”asbuh1hhjßmh²hh³jðmh´Mµubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#nh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjßmh²hh³jðmh´Mµubj8 )�”}”(hŒ media_type”h]”j> )�”}”(hj nh]”hŒ media_type”…”�”}”(hj5nh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj1nubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjßmh²hh³jðmh´Mµubj˜)�”}”(hŒ(struct media_gobj *gobj)”h]”jž)�”}”(hŒstruct media_gobj *gobj”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjPnh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjLnubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]nh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjLnubh)�”}”(hhh]”j> )�”}”(hŒ media_gobj”h]”hŒ media_gobj”…”�”}”(hjnnh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjknubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jpnŒmodname”NŒ classname”Njäjç)�”}”jê]”jnŒ c.media_type”†”asbuh1hhjLnubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŒnh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjLnubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjšnh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjLnubj> )�”}”(hŒgobj”h]”hŒgobj”…”�”}”(hj§nh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjLnubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjHnubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjßmh²hh³jðmh´Mµubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÛmh²hh³jðmh´Mµubah}”(h]”jÖmah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jðmh´MµhjØmh²hubjj )�”}”(hhh]”hï)�”}”(hŒreturn the media object type”h]”hŒreturn the media object type”…”�”}”(hjÑnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MµhjÎnh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjØmh²hh³jðmh´Mµubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jénjŒ jénj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒe**Parameters** ``struct media_gobj *gobj`` Pointer to the struct :c:type:`media_gobj` graph object”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjónh]”hŒ Parameters”…”�”}”(hjõnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjñnubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¹hjínubjÛ )�”}”(hhh]”jà )�”}”(hŒS``struct media_gobj *gobj`` Pointer to the struct :c:type:`media_gobj` graph object”h]”(jæ )�”}”(hŒ``struct media_gobj *gobj``”h]”j’)�”}”(hjoh]”hŒstruct media_gobj *gobj”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M»hj oubj)�”}”(hhh]”hï)�”}”(hŒ7Pointer to the struct :c:type:`media_gobj` graph object”h]”(hŒPointer to the struct ”…”�”}”(hj+oh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_gobj`”h]”j’)�”}”(hj5oh]”hŒ media_gobj”…”�”}”(hj7oh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj3oubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_gobj”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M·hj+oubhŒ graph object”…”�”}”(hj+oh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jRoh´M·hj(oubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj oubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j'oh´M»hj oubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjínubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_id (C function)”Œ c.media_id”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ&u32 media_id (struct media_gobj *gobj)”h]”j )�”}”(hŒ%u32 media_id(struct media_gobj *gobj)”h]”(h)�”}”(hhh]”j> )�”}”(hŒu32”h]”hŒu32”…”�”}”(hj’oh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj�oubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j”oŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_id”sbŒ c.media_id”†”asbuh1hhj‹oh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¿ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´oh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj‹oh²hh³j³oh´M¿ubj8 )�”}”(hŒmedia_id”h]”j> )�”}”(hj°oh]”hŒmedia_id”…”�”}”(hjÆoh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÂoubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj‹oh²hh³j³oh´M¿ubj˜)�”}”(hŒ(struct media_gobj *gobj)”h]”jž)�”}”(hŒstruct media_gobj *gobj”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjáoh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÝoubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjîoh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÝoubh)�”}”(hhh]”j> )�”}”(hŒ media_gobj”h]”hŒ media_gobj”…”�”}”(hjÿoh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjüoubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jpŒmodname”NŒ classname”Njäjç)�”}”jê]”j®oŒ c.media_id”†”asbuh1hhjÝoubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÝoubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj+ph²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÝoubj> )�”}”(hŒgobj”h]”hŒgobj”…”�”}”(hj8ph²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÝoubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÙoubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj‹oh²hh³j³oh´M¿ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj‡oh²hh³j³oh´M¿ubah}”(h]”j‚oah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j³oh´M¿hj„oh²hubjj )�”}”(hhh]”hï)�”}”(hŒreturn the media object ID”h]”hŒreturn the media object ID”…”�”}”(hjbph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¿hj_ph²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj„oh²hh³j³oh´M¿ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jzpjŒ jzpj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒe**Parameters** ``struct media_gobj *gobj`` Pointer to the struct :c:type:`media_gobj` graph object”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj„ph]”hŒ Parameters”…”�”}”(hj†ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj‚pubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÃhj~pubjÛ )�”}”(hhh]”jà )�”}”(hŒS``struct media_gobj *gobj`` Pointer to the struct :c:type:`media_gobj` graph object”h]”(jæ )�”}”(hŒ``struct media_gobj *gobj``”h]”j’)�”}”(hj£ph]”hŒstruct media_gobj *gobj”…”�”}”(hj¥ph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¡pubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÅhj�pubj)�”}”(hhh]”hï)�”}”(hŒ7Pointer to the struct :c:type:`media_gobj` graph object”h]”(hŒPointer to the struct ”…”�”}”(hj¼ph²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_gobj`”h]”j’)�”}”(hjÆph]”hŒ media_gobj”…”�”}”(hjÈph²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjÄpubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_gobj”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÁhj¼pubhŒ graph object”…”�”}”(hj¼ph²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jãph´MÁhj¹pubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj�pubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j¸ph´MÅhjšpubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj~pubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_gobj_gen_id (C function)”Œc.media_gobj_gen_id”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ?u32 media_gobj_gen_id (enum media_gobj_type type, u64 local_id)”h]”j )�”}”(hŒ>u32 media_gobj_gen_id(enum media_gobj_type type, u64 local_id)”h]”(h)�”}”(hhh]”j> )�”}”(hŒu32”h]”hŒu32”…”�”}”(hj#qh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj qubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j%qŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_gobj_gen_id”sbŒc.media_gobj_gen_id”†”asbuh1hhjqh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÉubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEqh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjqh²hh³jDqh´MÉubj8 )�”}”(hŒmedia_gobj_gen_id”h]”j> )�”}”(hjAqh]”hŒmedia_gobj_gen_id”…”�”}”(hjWqh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjSqubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjqh²hh³jDqh´MÉubj˜)�”}”(hŒ)(enum media_gobj_type type, u64 local_id)”h]”(jž)�”}”(hŒenum media_gobj_type type”h]”(j )�”}”(hjgIh]”hŒenum”…”�”}”(hjrqh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjnqubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjnqubh)�”}”(hhh]”j> )�”}”(hŒmedia_gobj_type”h]”hŒmedia_gobj_type”…”�”}”(hj�qh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj�qubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j’qŒmodname”NŒ classname”Njäjç)�”}”jê]”j?qŒc.media_gobj_gen_id”†”asbuh1hhjnqubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®qh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjnqubj> )�”}”(hŒtype”h]”hŒtype”…”�”}”(hj¼qh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjnqubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjjqubjž)�”}”(hŒ u64 local_id”h]”(h)�”}”(hhh]”j> )�”}”(hŒu64”h]”hŒu64”…”�”}”(hjØqh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÕqubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jÚqŒmodname”NŒ classname”Njäjç)�”}”jê]”j?qŒc.media_gobj_gen_id”†”asbuh1hhjÑqubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjöqh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÑqubj> )�”}”(hŒlocal_id”h]”hŒlocal_id”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÑqubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjjqubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjqh²hh³jDqh´MÉubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjqh²hh³jDqh´MÉubah}”(h]”jqah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jDqh´MÉhjqh²hubjj )�”}”(hhh]”hï)�”}”(hŒ,encapsulates type and ID on at the object ID”h]”hŒ,encapsulates type and ID on at the object ID”…”�”}”(hj.rh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÉhj+rh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjqh²hh³jDqh´MÉubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jFrjŒ jFrj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ»**Parameters** ``enum media_gobj_type type`` object type as define at enum :c:type:`media_gobj_type`. ``u64 local_id`` next ID, from struct :c:type:`media_device.id `.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjPrh]”hŒ Parameters”…”�”}”(hjRrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjNrubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÍhjJrubjÛ )�”}”(hhh]”(jà )�”}”(hŒW``enum media_gobj_type type`` object type as define at enum :c:type:`media_gobj_type`. ”h]”(jæ )�”}”(hŒ``enum media_gobj_type type``”h]”j’)�”}”(hjorh]”hŒenum media_gobj_type type”…”�”}”(hjqrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjmrubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MËhjirubj)�”}”(hhh]”hï)�”}”(hŒ8object type as define at enum :c:type:`media_gobj_type`.”h]”(hŒobject type as define at enum ”…”�”}”(hjˆrh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_gobj_type`”h]”j’)�”}”(hj’rh]”hŒmedia_gobj_type”…”�”}”(hj”rh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj�rubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒmedia_gobj_type”uh1hh³j„rh´MËhjˆrubhŒ.”…”�”}”(hjˆrh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j„rh´MËhj…rubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjirubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j„rh´MËhjfrubjà )�”}”(hŒO``u64 local_id`` next ID, from struct :c:type:`media_device.id `.”h]”(jæ )�”}”(hŒ``u64 local_id``”h]”j’)�”}”(hjËrh]”hŒ u64 local_id”…”�”}”(hjÍrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÉrubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÍhjÅrubj)�”}”(hhh]”hï)�”}”(hŒ>next ID, from struct :c:type:`media_device.id `.”h]”(hŒnext ID, from struct ”…”�”}”(hjärh²hh³Nh´Nubh)�”}”(hŒ(:c:type:`media_device.id `”h]”j’)�”}”(hjîrh]”hŒmedia_device.id”…”�”}”(hjðrh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjìrubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jäjèjŒ media_device”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÌhjärubhŒ.”…”�”}”(hjärh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j sh´MÌhjárubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÅrubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jàrh´MÍhjfrubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjJrubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ.is_media_entity_v4l2_video_device (C function)”Œ#c.is_media_entity_v4l2_video_device”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒDbool is_media_entity_v4l2_video_device (struct media_entity *entity)”h]”j )�”}”(hŒCbool is_media_entity_v4l2_video_device(struct media_entity *entity)”h]”(j`)�”}”(hŒbool”h]”hŒbool”…”�”}”(hjHsh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjDsh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÙubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjWsh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjDsh²hh³jVsh´MÙubj8 )�”}”(hŒ!is_media_entity_v4l2_video_device”h]”j> )�”}”(hŒ!is_media_entity_v4l2_video_device”h]”hŒ!is_media_entity_v4l2_video_device”…”�”}”(hjish²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjesubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjDsh²hh³jVsh´MÙubj˜)�”}”(hŒ(struct media_entity *entity)”h]”jž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj…sh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj�subj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj’sh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj�subh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hj£sh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj subah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j¥sŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jkssbŒ#c.is_media_entity_v4l2_video_device”†”asbuh1hhj�subj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÃsh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj�subjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÑsh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj�subj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hjÞsh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj�subeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj}subah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjDsh²hh³jVsh´MÙubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj@sh²hh³jVsh´MÙubah}”(h]”j;sah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jVsh´MÙhj=sh²hubjj )�”}”(hhh]”hï)�”}”(hŒ%Check if the entity is a video_device”h]”hŒ%Check if the entity is a video_device”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÙhjth²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj=sh²hh³jVsh´MÙubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j tjŒ j tj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ÷**Parameters** ``struct media_entity *entity`` pointer to entity **Return** ``true`` if the entity is an instance of a video_device object and can safely be cast to a struct video_device using the container_of() macro, or ``false`` otherwise.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj*th]”hŒ Parameters”…”�”}”(hj,th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj(tubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÝhj$tubjÛ )�”}”(hhh]”jà )�”}”(hŒ2``struct media_entity *entity`` pointer to entity ”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hjIth]”hŒstruct media_entity *entity”…”�”}”(hjKth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjGtubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÚhjCtubj)�”}”(hhh]”hï)�”}”(hŒpointer to entity”h]”hŒpointer to entity”…”�”}”(hjbth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j^th´MÚhj_tubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjCtubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j^th´MÚhj@tubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj$tubhï)�”}”(hŒ **Return**”h]”j')�”}”(hj„th]”hŒReturn”…”�”}”(hj†th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj‚tubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÜhj$tubhï)�”}”(hŒ¦``true`` if the entity is an instance of a video_device object and can safely be cast to a struct video_device using the container_of() macro, or ``false`` otherwise.”h]”(j’)�”}”(hŒ``true``”h]”hŒtrue”…”�”}”(hjžth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjštubhŒŠ if the entity is an instance of a video_device object and can safely be cast to a struct video_device using the container_of() macro, or ”…”�”}”(hjšth²hh³Nh´Nubj’)�”}”(hŒ ``false``”h]”hŒfalse”…”�”}”(hj°th²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjštubhŒ otherwise.”…”�”}”(hjšth²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÜhj$tubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ(is_media_entity_v4l2_subdev (C function)”Œc.is_media_entity_v4l2_subdev”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ>bool is_media_entity_v4l2_subdev (struct media_entity *entity)”h]”j )�”}”(hŒ=bool is_media_entity_v4l2_subdev(struct media_entity *entity)”h]”(j`)�”}”(hjJsh]”hŒbool”…”�”}”(hjéth²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjåth²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mæubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷th²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjåth²hh³jöth´Mæubj8 )�”}”(hŒis_media_entity_v4l2_subdev”h]”j> )�”}”(hŒis_media_entity_v4l2_subdev”h]”hŒis_media_entity_v4l2_subdev”…”�”}”(hj uh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjuubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjåth²hh³jöth´Mæubj˜)�”}”(hŒ(struct media_entity *entity)”h]”jž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj%uh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj!uubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj2uh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj!uubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hjCuh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj@uubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jEuŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j usbŒc.is_media_entity_v4l2_subdev”†”asbuh1hhj!uubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjcuh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj!uubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjquh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj!uubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hj~uh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj!uubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjuubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjåth²hh³jöth´Mæubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjáth²hh³jöth´Mæubah}”(h]”jÜtah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jöth´MæhjÞth²hubjj )�”}”(hhh]”hï)�”}”(hŒ$Check if the entity is a v4l2_subdev”h]”hŒ$Check if the entity is a v4l2_subdev”…”�”}”(hj¨uh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mæhj¥uh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÞth²hh³jöth´Mæubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jÀujŒ jÀuj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX **Parameters** ``struct media_entity *entity`` pointer to entity **Return** ``true`` if the entity is an instance of a :c:type:`v4l2_subdev` object and can safely be cast to a struct :c:type:`v4l2_subdev` using the container_of() macro, or ``false`` otherwise.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjÊuh]”hŒ Parameters”…”�”}”(hjÌuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÈuubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MêhjÄuubjÛ )�”}”(hhh]”jà )�”}”(hŒ2``struct media_entity *entity`` pointer to entity ”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hjéuh]”hŒstruct media_entity *entity”…”�”}”(hjëuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjçuubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mçhjãuubj)�”}”(hhh]”hï)�”}”(hŒpointer to entity”h]”hŒpointer to entity”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jþuh´Mçhjÿuubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjãuubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jþuh´Mçhjàuubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÄuubhï)�”}”(hŒ **Return**”h]”j')�”}”(hj$vh]”hŒReturn”…”�”}”(hj&vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj"vubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MéhjÄuubhï)�”}”(hŒ¸``true`` if the entity is an instance of a :c:type:`v4l2_subdev` object and can safely be cast to a struct :c:type:`v4l2_subdev` using the container_of() macro, or ``false`` otherwise.”h]”(j’)�”}”(hŒ``true``”h]”hŒtrue”…”�”}”(hj>vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj:vubhŒ# if the entity is an instance of a ”…”�”}”(hj:vh²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_subdev`”h]”j’)�”}”(hjRvh]”hŒ v4l2_subdev”…”�”}”(hjTvh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjPvubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ v4l2_subdev”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Méhj:vubhŒ+ object and can safely be cast to a struct ”…”�”}”(hj:vh²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_subdev`”h]”j’)�”}”(hjvvh]”hŒ v4l2_subdev”…”�”}”(hjxvh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjtvubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ v4l2_subdev”uh1hh³jovh´Méhj:vubhŒ$ using the container_of() macro, or ”…”�”}”(hj:vh²hh³Nh´Nubj’)�”}”(hŒ ``false``”h]”hŒfalse”…”�”}”(hj—vh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj:vubhŒ otherwise.”…”�”}”(hj:vh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jovh´MéhjÄuubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ#media_entity_enum_init (C function)”Œc.media_entity_enum_init”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒZint media_entity_enum_init (struct media_entity_enum *ent_enum, struct media_device *mdev)”h]”j )�”}”(hŒYint media_entity_enum_init(struct media_entity_enum *ent_enum, struct media_device *mdev)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hjÏvh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjËvh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Móubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞvh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjËvh²hh³jÝvh´Móubj8 )�”}”(hŒmedia_entity_enum_init”h]”j> )�”}”(hŒmedia_entity_enum_init”h]”hŒmedia_entity_enum_init”…”�”}”(hjðvh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjìvubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjËvh²hh³jÝvh´Móubj˜)�”}”(hŒ?(struct media_entity_enum *ent_enum, struct media_device *mdev)”h]”(jž)�”}”(hŒ"struct media_entity_enum *ent_enum”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj wh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjwubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjwubh)�”}”(hhh]”j> )�”}”(hŒmedia_entity_enum”h]”hŒmedia_entity_enum”…”�”}”(hj*wh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj'wubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j,wŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jòvsbŒc.media_entity_enum_init”†”asbuh1hhjwubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJwh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjwubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjXwh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjwubj> )�”}”(hŒent_enum”h]”hŒent_enum”…”�”}”(hjewh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjwubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjwubjž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj~wh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjzwubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‹wh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjzwubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hjœwh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj™wubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jžwŒmodname”NŒ classname”Njäjç)�”}”jê]”jFwŒc.media_entity_enum_init”†”asbuh1hhjzwubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjºwh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjzwubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÈwh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjzwubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hjÕwh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjzwubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjwubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjËvh²hh³jÝvh´Móubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÇvh²hh³jÝvh´Móubah}”(h]”jÂvah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÝvh´MóhjÄvh²hubjj )�”}”(hhh]”hï)�”}”(hŒ Initialise an entity enumeration”h]”hŒ Initialise an entity enumeration”…”�”}”(hjÿwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Móhjüwh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÄvh²hh³jÝvh´Móubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jxjŒ jxj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒÎ**Parameters** ``struct media_entity_enum *ent_enum`` Entity enumeration to be initialised ``struct media_device *mdev`` The related media device **Return** zero on success or a negative error code.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj!xh]”hŒ Parameters”…”�”}”(hj#xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjxubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M÷hjxubjÛ )�”}”(hhh]”(jà )�”}”(hŒL``struct media_entity_enum *ent_enum`` Entity enumeration to be initialised ”h]”(jæ )�”}”(hŒ&``struct media_entity_enum *ent_enum``”h]”j’)�”}”(hj@xh]”hŒ"struct media_entity_enum *ent_enum”…”�”}”(hjBxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj>xubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mõhj:xubj)�”}”(hhh]”hï)�”}”(hŒ$Entity enumeration to be initialised”h]”hŒ$Entity enumeration to be initialised”…”�”}”(hjYxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jUxh´MõhjVxubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj:xubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jUxh´Mõhj7xubjà )�”}”(hŒ7``struct media_device *mdev`` The related media device ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hjyxh]”hŒstruct media_device *mdev”…”�”}”(hj{xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjwxubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Möhjsxubj)�”}”(hhh]”hï)�”}”(hŒThe related media device”h]”hŒThe related media device”…”�”}”(hj’xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŽxh´Möhj�xubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjsxubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jŽxh´Möhj7xubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjxubhï)�”}”(hŒ **Return**”h]”j')�”}”(hj´xh]”hŒReturn”…”�”}”(hj¶xh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj²xubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Møhjxubhï)�”}”(hŒ)zero on success or a negative error code.”h]”hŒ)zero on success or a negative error code.”…”�”}”(hjÊxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Møhjxubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ&media_entity_enum_cleanup (C function)”Œc.media_entity_enum_cleanup”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒCvoid media_entity_enum_cleanup (struct media_entity_enum *ent_enum)”h]”j )�”}”(hŒBvoid media_entity_enum_cleanup(struct media_entity_enum *ent_enum)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjùxh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjõxh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mþubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjõxh²hh³jyh´Mþubj8 )�”}”(hŒmedia_entity_enum_cleanup”h]”j> )�”}”(hŒmedia_entity_enum_cleanup”h]”hŒmedia_entity_enum_cleanup”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjyubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjõxh²hh³jyh´Mþubj˜)�”}”(hŒ$(struct media_entity_enum *ent_enum)”h]”jž)�”}”(hŒ"struct media_entity_enum *ent_enum”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj6yh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj2yubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCyh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj2yubh)�”}”(hhh]”j> )�”}”(hŒmedia_entity_enum”h]”hŒmedia_entity_enum”…”�”}”(hjTyh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjQyubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jVyŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jysbŒc.media_entity_enum_cleanup”†”asbuh1hhj2yubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjtyh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj2yubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj‚yh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj2yubj> )�”}”(hŒent_enum”h]”hŒent_enum”…”�”}”(hj�yh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj2yubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj.yubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjõxh²hh³jyh´Mþubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjñxh²hh³jyh´Mþubah}”(h]”jìxah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jyh´Mþhjîxh²hubjj )�”}”(hhh]”hï)�”}”(hŒ*Release resources of an entity enumeration”h]”hŒ*Release resources of an entity enumeration”…”�”}”(hj¹yh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mþhj¶yh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjîxh²hh³jyh´Mþubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jÑyjŒ jÑyj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒZ**Parameters** ``struct media_entity_enum *ent_enum`` Entity enumeration to be released”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjÛyh]”hŒ Parameters”…”�”}”(hjÝyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÙyubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjÕyubjÛ )�”}”(hhh]”jà )�”}”(hŒH``struct media_entity_enum *ent_enum`` Entity enumeration to be released”h]”(jæ )�”}”(hŒ&``struct media_entity_enum *ent_enum``”h]”j’)�”}”(hjúyh]”hŒ"struct media_entity_enum *ent_enum”…”�”}”(hjüyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjøyubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjôyubj)�”}”(hhh]”hï)�”}”(hŒ!Entity enumeration to be released”h]”hŒ!Entity enumeration to be released”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjzubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjôyubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jzh´Mhjñyubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÕyubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ#media_entity_enum_zero (C function)”Œc.media_entity_enum_zero”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ@void media_entity_enum_zero (struct media_entity_enum *ent_enum)”h]”j )�”}”(hŒ?void media_entity_enum_zero(struct media_entity_enum *ent_enum)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjTzh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjPzh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjczh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjPzh²hh³jbzh´Mubj8 )�”}”(hŒmedia_entity_enum_zero”h]”j> )�”}”(hŒmedia_entity_enum_zero”h]”hŒmedia_entity_enum_zero”…”�”}”(hjuzh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjqzubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjPzh²hh³jbzh´Mubj˜)�”}”(hŒ$(struct media_entity_enum *ent_enum)”h]”jž)�”}”(hŒ"struct media_entity_enum *ent_enum”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj‘zh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj�zubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjžzh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj�zubh)�”}”(hhh]”j> )�”}”(hŒmedia_entity_enum”h]”hŒmedia_entity_enum”…”�”}”(hj¯zh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¬zubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j±zŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jwzsbŒc.media_entity_enum_zero”†”asbuh1hhj�zubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏzh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj�zubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÝzh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj�zubj> )�”}”(hŒent_enum”h]”hŒent_enum”…”�”}”(hjêzh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj�zubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj‰zubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjPzh²hh³jbzh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjLzh²hh³jbzh´Mubah}”(h]”jGzah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jbzh´MhjIzh²hubjj )�”}”(hhh]”hï)�”}”(hŒClear the entire enum”h]”hŒClear the entire enum”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj{h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjIzh²hh³jbzh´Mubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j,{jŒ j,{j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒY**Parameters** ``struct media_entity_enum *ent_enum`` Entity enumeration to be cleared”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj6{h]”hŒ Parameters”…”�”}”(hj8{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj4{ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hj0{ubjÛ )�”}”(hhh]”jà )�”}”(hŒG``struct media_entity_enum *ent_enum`` Entity enumeration to be cleared”h]”(jæ )�”}”(hŒ&``struct media_entity_enum *ent_enum``”h]”j’)�”}”(hjU{h]”hŒ"struct media_entity_enum *ent_enum”…”�”}”(hjW{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjS{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hjO{ubj)�”}”(hhh]”hï)�”}”(hŒ Entity enumeration to be cleared”h]”hŒ Entity enumeration to be cleared”…”�”}”(hjn{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjk{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjO{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jj{h´M hjL{ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj0{ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ"media_entity_enum_set (C function)”Œc.media_entity_enum_set”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ\void media_entity_enum_set (struct media_entity_enum *ent_enum, struct media_entity *entity)”h]”j )�”}”(hŒ[void media_entity_enum_set(struct media_entity_enum *ent_enum, struct media_entity *entity)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¯{h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj«{h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¾{h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj«{h²hh³j½{h´Mubj8 )�”}”(hŒmedia_entity_enum_set”h]”j> )�”}”(hŒmedia_entity_enum_set”h]”hŒmedia_entity_enum_set”…”�”}”(hjÐ{h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÌ{ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj«{h²hh³j½{h´Mubj˜)�”}”(hŒA(struct media_entity_enum *ent_enum, struct media_entity *entity)”h]”(jž)�”}”(hŒ"struct media_entity_enum *ent_enum”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjì{h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjè{ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjù{h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjè{ubh)�”}”(hhh]”j> )�”}”(hŒmedia_entity_enum”h]”hŒmedia_entity_enum”…”�”}”(hj |h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj|ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j |Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jÒ{sbŒc.media_entity_enum_set”†”asbuh1hhjè{ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*|h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjè{ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj8|h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjè{ubj> )�”}”(hŒent_enum”h]”hŒent_enum”…”�”}”(hjE|h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjè{ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjä{ubjž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj^|h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjZ|ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjk|h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjZ|ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hj||h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjy|ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j~|Œmodname”NŒ classname”Njäjç)�”}”jê]”j&|Œc.media_entity_enum_set”†”asbuh1hhjZ|ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjš|h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjZ|ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj¨|h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjZ|ubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hjµ|h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjZ|ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjä{ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj«{h²hh³j½{h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj§{h²hh³j½{h´Mubah}”(h]”j¢{ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j½{h´Mhj¤{h²hubjj )�”}”(hhh]”hï)�”}”(hŒ Mark a single entity in the enum”h]”hŒ Mark a single entity in the enum”…”�”}”(hjß|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjÜ|h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj¤{h²hh³j½{h´Mubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j÷|jŒ j÷|j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ‚**Parameters** ``struct media_entity_enum *ent_enum`` Entity enumeration ``struct media_entity *entity`` Entity to be marked”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj}h]”hŒ Parameters”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÿ|ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjû|ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ:``struct media_entity_enum *ent_enum`` Entity enumeration ”h]”(jæ )�”}”(hŒ&``struct media_entity_enum *ent_enum``”h]”j’)�”}”(hj }h]”hŒ"struct media_entity_enum *ent_enum”…”�”}”(hj"}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj}ubj)�”}”(hhh]”hï)�”}”(hŒEntity enumeration”h]”hŒEntity enumeration”…”�”}”(hj9}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j5}h´Mhj6}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j5}h´Mhj}ubjà )�”}”(hŒ3``struct media_entity *entity`` Entity to be marked”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hjY}h]”hŒstruct media_entity *entity”…”�”}”(hj[}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjW}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjS}ubj)�”}”(hhh]”hï)�”}”(hŒEntity to be marked”h]”hŒEntity to be marked”…”�”}”(hjr}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjo}ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjS}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jn}h´Mhj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjû|ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ$media_entity_enum_clear (C function)”Œc.media_entity_enum_clear”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ^void media_entity_enum_clear (struct media_entity_enum *ent_enum, struct media_entity *entity)”h]”j )�”}”(hŒ]void media_entity_enum_clear(struct media_entity_enum *ent_enum, struct media_entity *entity)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj³}h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj¯}h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÂ}h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¯}h²hh³jÁ}h´Mubj8 )�”}”(hŒmedia_entity_enum_clear”h]”j> )�”}”(hŒmedia_entity_enum_clear”h]”hŒmedia_entity_enum_clear”…”�”}”(hjÔ}h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÐ}ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj¯}h²hh³jÁ}h´Mubj˜)�”}”(hŒA(struct media_entity_enum *ent_enum, struct media_entity *entity)”h]”(jž)�”}”(hŒ"struct media_entity_enum *ent_enum”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjð}h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjì}ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjý}h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjì}ubh)�”}”(hhh]”j> )�”}”(hŒmedia_entity_enum”h]”hŒmedia_entity_enum”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj ~ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j~Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jÖ}sbŒc.media_entity_enum_clear”†”asbuh1hhjì}ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj.~h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjì}ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj<~h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjì}ubj> )�”}”(hŒent_enum”h]”hŒent_enum”…”�”}”(hjI~h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjì}ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjè}ubjž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjb~h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj^~ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjo~h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj^~ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hj€~h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj}~ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j‚~Œmodname”NŒ classname”Njäjç)�”}”jê]”j*~Œc.media_entity_enum_clear”†”asbuh1hhj^~ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjž~h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj^~ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj¬~h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj^~ubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hj¹~h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj^~ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjè}ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj¯}h²hh³jÁ}h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj«}h²hh³jÁ}h´Mubah}”(h]”j¦}ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÁ}h´Mhj¨}h²hubjj )�”}”(hhh]”hï)�”}”(hŒ"Unmark a single entity in the enum”h]”hŒ"Unmark a single entity in the enum”…”�”}”(hjã~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjà~h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj¨}h²hh³jÁ}h´Mubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jû~jŒ jû~j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ„**Parameters** ``struct media_entity_enum *ent_enum`` Entity enumeration ``struct media_entity *entity`` Entity to be unmarked”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M"hjÿ~ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ:``struct media_entity_enum *ent_enum`` Entity enumeration ”h]”(jæ )�”}”(hŒ&``struct media_entity_enum *ent_enum``”h]”j’)�”}”(hj$h]”hŒ"struct media_entity_enum *ent_enum”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hjubj)�”}”(hhh]”hï)�”}”(hŒEntity enumeration”h]”hŒEntity enumeration”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j9h´M hj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j9h´M hjubjà )�”}”(hŒ5``struct media_entity *entity`` Entity to be unmarked”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hj]h]”hŒstruct media_entity *entity”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M"hjWubj)�”}”(hhh]”hï)�”}”(hŒEntity to be unmarked”h]”hŒEntity to be unmarked”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M!hjsubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjWubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jrh´M"hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÿ~ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ#media_entity_enum_test (C function)”Œc.media_entity_enum_test”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ]bool media_entity_enum_test (struct media_entity_enum *ent_enum, struct media_entity *entity)”h]”j )�”}”(hŒ\bool media_entity_enum_test(struct media_entity_enum *ent_enum, struct media_entity *entity)”h]”(j`)�”}”(hjJsh]”hŒbool”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj³h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M-ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj³h²hh³jÄh´M-ubj8 )�”}”(hŒmedia_entity_enum_test”h]”j> )�”}”(hŒmedia_entity_enum_test”h]”hŒmedia_entity_enum_test”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÓubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj³h²hh³jÄh´M-ubj˜)�”}”(hŒA(struct media_entity_enum *ent_enum, struct media_entity *entity)”h]”(jž)�”}”(hŒ"struct media_entity_enum *ent_enum”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjïubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjïubh)�”}”(hhh]”j> )�”}”(hŒmedia_entity_enum”h]”hŒmedia_entity_enum”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj€ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j€Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jÙsbŒc.media_entity_enum_test”†”asbuh1hhjïubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1€h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjïubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj?€h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjïubj> )�”}”(hŒent_enum”h]”hŒent_enum”…”�”}”(hjL€h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjïubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjëubjž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hje€h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hja€ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjr€h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hja€ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hjƒ€h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj€€ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j…€Œmodname”NŒ classname”Njäjç)�”}”jê]”j-€Œc.media_entity_enum_test”†”asbuh1hhja€ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¡€h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hja€ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj¯€h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhja€ubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hj¼€h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hja€ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjëubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj³h²hh³jÄh´M-ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj¯h²hh³jÄh´M-ubah}”(h]”jªah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÄh´M-hj¬h²hubjj )�”}”(hhh]”hï)�”}”(hŒ!Test whether the entity is marked”h]”hŒ!Test whether the entity is marked”…”�”}”(hjæ€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M-hjã€h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj¬h²hh³jÄh´M-ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jþ€jŒ jþ€j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ¿**Parameters** ``struct media_entity_enum *ent_enum`` Entity enumeration ``struct media_entity *entity`` Entity to be tested **Description** Returns ``true`` if the entity was marked.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj�h]”hŒ Parameters”…”�”}”(hj �h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M1hj�ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ:``struct media_entity_enum *ent_enum`` Entity enumeration ”h]”(jæ )�”}”(hŒ&``struct media_entity_enum *ent_enum``”h]”j’)�”}”(hj'�h]”hŒ"struct media_entity_enum *ent_enum”…”�”}”(hj)�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj%�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M/hj!�ubj)�”}”(hhh]”hï)�”}”(hŒEntity enumeration”h]”hŒEntity enumeration”…”�”}”(hj@�h²hh³Nh´Nubah•}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j<�h´M/hj=�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj!�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j<�h´M/hj�ubjà )�”}”(hŒ4``struct media_entity *entity`` Entity to be tested ”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hj`�h]”hŒstruct media_entity *entity”…”�”}”(hjb�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj^�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M0hjZ�ubj)�”}”(hhh]”hï)�”}”(hŒEntity to be tested”h]”hŒEntity to be tested”…”�”}”(hjy�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ju�h´M0hjv�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjZ�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³ju�h´M0hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj�ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj›�h]”hŒ Description”…”�”}”(hj��h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj™�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M2hj�ubhï)�”}”(hŒ*Returns ``true`` if the entity was marked.”h]”(hŒReturns ”…”�”}”(hj±�h²hh³Nh´Nubj’)�”}”(hŒ``true``”h]”hŒtrue”…”�”}”(hj¹�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj±�ubhŒ if the entity was marked.”…”�”}”(hj±�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M1hj�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ+media_entity_enum_test_and_set (C function)”Œ c.media_entity_enum_test_and_set”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒebool media_entity_enum_test_and_set (struct media_entity_enum *ent_enum, struct media_entity *entity)”h]”j )�”}”(hŒdbool media_entity_enum_test_and_set(struct media_entity_enum *ent_enum, struct media_entity *entity)”h]”(j`)�”}”(hjJsh]”hŒbool”…”�”}”(hjò�h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjî�h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M>ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjî�h²hh³jÿ�h´M>ubj8 )�”}”(hŒmedia_entity_enum_test_and_set”h]”j> )�”}”(hŒmedia_entity_enum_test_and_set”h]”hŒmedia_entity_enum_test_and_set”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj‚ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjî�h²hh³jÿ�h´M>ubj˜)�”}”(hŒA(struct media_entity_enum *ent_enum, struct media_entity *entity)”h]”(jž)�”}”(hŒ"struct media_entity_enum *ent_enum”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj.‚h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj*‚ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;‚h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj*‚ubh)�”}”(hhh]”j> )�”}”(hŒmedia_entity_enum”h]”hŒmedia_entity_enum”…”�”}”(hjL‚h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjI‚ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jN‚Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j‚sbŒ c.media_entity_enum_test_and_set”†”asbuh1hhj*‚ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjl‚h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj*‚ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjz‚h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj*‚ubj> )�”}”(hŒent_enum”h]”hŒent_enum”…”�”}”(hj‡‚h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj*‚ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj&‚ubjž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj ‚h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjœ‚ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­‚h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjœ‚ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hj¾‚h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj»‚ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jÀ‚Œmodname”NŒ classname”Njäjç)�”}”jê]”jh‚Œ c.media_entity_enum_test_and_set”†”asbuh1hhjœ‚ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜ‚h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjœ‚ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjê‚h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjœ‚ubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hj÷‚h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjœ‚ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj&‚ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjî�h²hh³jÿ�h´M>ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjê�h²hh³jÿ�h´M>ubah}”(h]”jå�ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÿ�h´M>hjç�h²hubjj )�”}”(hhh]”hï)�”}”(hŒ.Test whether the entity is marked, and mark it”h]”hŒ.Test whether the entity is marked, and mark it”…”�”}”(hj!ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M>hjƒh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjç�h²hh³jÿ�h´M>ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j9ƒjŒ j9ƒj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒÜ**Parameters** ``struct media_entity_enum *ent_enum`` Entity enumeration ``struct media_entity *entity`` Entity to be tested **Description** Returns ``true`` if the entity was marked, and mark it before doing so.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjCƒh]”hŒ Parameters”…”�”}”(hjEƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjAƒubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MBhj=ƒubjÛ )�”}”(hhh]”(jà )�”}”(hŒ:``struct media_entity_enum *ent_enum`` Entity enumeration ”h]”(jæ )�”}”(hŒ&``struct media_entity_enum *ent_enum``”h]”j’)�”}”(hjbƒh]”hŒ"struct media_entity_enum *ent_enum”…”�”}”(hjdƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj`ƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MAhj\ƒubj)�”}”(hhh]”hï)�”}”(hŒEntity enumeration”h]”hŒEntity enumeration”…”�”}”(hj{ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jwƒh´MAhjxƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj\ƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jwƒh´MAhjYƒubjà )�”}”(hŒ4``struct media_entity *entity`` Entity to be tested ”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hj›ƒh]”hŒstruct media_entity *entity”…”�”}”(hj�ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj™ƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MBhj•ƒubj)�”}”(hhh]”hï)�”}”(hŒEntity to be tested”h]”hŒEntity to be tested”…”�”}”(hj´ƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j°ƒh´MBhj±ƒubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj•ƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j°ƒh´MBhjYƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj=ƒubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjÖƒh]”hŒ Description”…”�”}”(hj؃h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÔƒubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MDhj=ƒubhï)�”}”(hŒGReturns ``true`` if the entity was marked, and mark it before doing so.”h]”(hŒReturns ”…”�”}”(hjìƒh²hh³Nh´Nubj’)�”}”(hŒ``true``”h]”hŒtrue”…”�”}”(hjôƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjìƒubhŒ7 if the entity was marked, and mark it before doing so.”…”�”}”(hjìƒh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MChj=ƒubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ$media_entity_enum_empty (C function)”Œc.media_entity_enum_empty”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒAbool media_entity_enum_empty (struct media_entity_enum *ent_enum)”h]”j )�”}”(hŒ@bool media_entity_enum_empty(struct media_entity_enum *ent_enum)”h]”(j`)�”}”(hjJsh]”hŒbool”…”�”}”(hj-„h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj)„h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MQubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;„h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj)„h²hh³j:„h´MQubj8 )�”}”(hŒmedia_entity_enum_empty”h]”j> )�”}”(hŒmedia_entity_enum_empty”h]”hŒmedia_entity_enum_empty”…”�”}”(hjM„h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjI„ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj)„h²hh³j:„h´MQubj˜)�”}”(hŒ$(struct media_entity_enum *ent_enum)”h]”jž)�”}”(hŒ"struct media_entity_enum *ent_enum”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hji„h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hje„ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjv„h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hje„ubh)�”}”(hhh]”j> )�”}”(hŒmedia_entity_enum”h]”hŒmedia_entity_enum”…”�”}”(hj‡„h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj„„ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j‰„Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jO„sbŒc.media_entity_enum_empty”†”asbuh1hhje„ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§„h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hje„ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjµ„h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhje„ubj> )�”}”(hŒent_enum”h]”hŒent_enum”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hje„ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hja„ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj)„h²hh³j:„h´MQubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj%„h²hh³j:„h´MQubah}”(h]”j „ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j:„h´MQhj"„h²hubjj )�”}”(hhh]”hï)�”}”(hŒ%Test whether the entire enum is empty”h]”hŒ%Test whether the entire enum is empty”…”�”}”(hjì„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MQhjé„h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj"„h²hh³j:„h´MQubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j…jŒ j…j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒz**Parameters** ``struct media_entity_enum *ent_enum`` Entity enumeration **Return** ``true`` if the entity was empty.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj…h]”hŒ Parameters”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj …ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MUhj…ubjÛ )�”}”(hhh]”jà )�”}”(hŒ:``struct media_entity_enum *ent_enum`` Entity enumeration ”h]”(jæ )�”}”(hŒ&``struct media_entity_enum *ent_enum``”h]”j’)�”}”(hj-…h]”hŒ"struct media_entity_enum *ent_enum”…”�”}”(hj/…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj+…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MShj'…ubj)�”}”(hhh]”hï)�”}”(hŒEntity enumeration”h]”hŒEntity enumeration”…”�”}”(hjF…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jB…h´MShjC…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj'…ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jB…h´MShj$…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj…ubhï)�”}”(hŒ **Return**”h]”j')�”}”(hjh…h]”hŒReturn”…”�”}”(hjj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjf…ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MUhj…ubhï)�”}”(hŒ!``true`` if the entity was empty.”h]”(j’)�”}”(hŒ``true``”h]”hŒtrue”…”�”}”(hj‚…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj~…ubhŒ if the entity was empty.”…”�”}”(hj~…h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MUhj…ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ)media_entity_enum_intersects (C function)”Œc.media_entity_enum_intersects”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒlbool media_entity_enum_intersects (struct media_entity_enum *ent_enum1, struct media_entity_enum *ent_enum2)”h]”j )�”}”(hŒkbool media_entity_enum_intersects(struct media_entity_enum *ent_enum1, struct media_entity_enum *ent_enum2)”h]”(j`)�”}”(hjJsh]”hŒbool”…”�”}”(hj»…h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj·…h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M]ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉ…h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj·…h²hh³jÈ…h´M]ubj8 )�”}”(hŒmedia_entity_enum_intersects”h]”j> )�”}”(hŒmedia_entity_enum_intersects”h]”hŒmedia_entity_enum_intersects”…”�”}”(hjÛ…h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj×…ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj·…h²hh³jÈ…h´M]ubj˜)�”}”(hŒJ(struct media_entity_enum *ent_enum1, struct media_entity_enum *ent_enum2)”h]”(jž)�”}”(hŒ#struct media_entity_enum *ent_enum1”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj÷…h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjó…ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjó…ubh)�”}”(hhh]”j> )�”}”(hŒmedia_entity_enum”h]”hŒmedia_entity_enum”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj†ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j†Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jÝ…sbŒc.media_entity_enum_intersects”†”asbuh1hhjó…ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5†h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjó…ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjC†h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjó…ubj> )�”}”(hŒ ent_enum1”h]”hŒ ent_enum1”…”�”}”(hjP†h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjó…ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjï…ubjž)�”}”(hŒ#struct media_entity_enum *ent_enum2”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hji†h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hje†ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjv†h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hje†ubh)�”}”(hhh]”j> )�”}”(hŒmedia_entity_enum”h]”hŒmedia_entity_enum”…”�”}”(hj‡†h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj„†ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j‰†Œmodname”NŒ classname”Njäjç)�”}”jê]”j1†Œc.media_entity_enum_intersects”†”asbuh1hhje†ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥†h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hje†ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj³†h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhje†ubj> )�”}”(hŒ ent_enum2”h]”hŒ ent_enum2”…”�”}”(hjÀ†h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hje†ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjï…ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj·…h²hh³jÈ…h´M]ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj³…h²hh³jÈ…h´M]ubah}”(h]”j®…ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÈ…h´M]hj°…h²hubjj )�”}”(hhh]”hï)�”}”(hŒ Test whether two enums intersect”h]”hŒ Test whether two enums intersect”…”�”}”(hjê†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M]hjç†h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj°…h²hh³jÈ…h´M]ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j‡jŒ j‡j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX**Parameters** ``struct media_entity_enum *ent_enum1`` First entity enumeration ``struct media_entity_enum *ent_enum2`` Second entity enumeration **Return** ``true`` if entity enumerations **ent_enum1** and **ent_enum2** intersect, otherwise ``false``.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj ‡h]”hŒ Parameters”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj ‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mahj‡ubjÛ )�”}”(hhh]”(jà )�”}”(hŒA``struct media_entity_enum *ent_enum1`` First entity enumeration ”h]”(jæ )�”}”(hŒ'``struct media_entity_enum *ent_enum1``”h]”j’)�”}”(hj+‡h]”hŒ#struct media_entity_enum *ent_enum1”…”�”}”(hj-‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj)‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M_hj%‡ubj)�”}”(hhh]”hï)�”}”(hŒFirst entity enumeration”h]”hŒFirst entity enumeration”…”�”}”(hjD‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j@‡h´M_hjA‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj%‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j@‡h´M_hj"‡ubjà )�”}”(hŒB``struct media_entity_enum *ent_enum2`` Second entity enumeration ”h]”(jæ )�”}”(hŒ'``struct media_entity_enum *ent_enum2``”h]”j’)�”}”(hjd‡h]”hŒ#struct media_entity_enum *ent_enum2”…”�”}”(hjf‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjb‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M`hj^‡ubj)�”}”(hhh]”hï)�”}”(hŒSecond entity enumeration”h]”hŒSecond entity enumeration”…”�”}”(hj}‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jy‡h´M`hjz‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj^‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jy‡h´M`hj"‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj‡ubhï)�”}”(hŒ **Return**”h]”j')�”}”(hjŸ‡h]”hŒReturn”…”�”}”(hj¡‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj�‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mbhj‡ubhï)�”}”(hŒ_``true`` if entity enumerations **ent_enum1** and **ent_enum2** intersect, otherwise ``false``.”h]”(j’)�”}”(hŒ``true``”h]”hŒtrue”…”�”}”(hj¹‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjµ‡ubhŒ if entity enumerations ”…”�”}”(hjµ‡h²hh³Nh´Nubj')�”}”(hŒ **ent_enum1**”h]”hŒ ent_enum1”…”�”}”(hjˇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjµ‡ubhŒ and ”…”�”}”(hjµ‡h²hh³Nh´Nubj')�”}”(hŒ **ent_enum2**”h]”hŒ ent_enum2”…”�”}”(hj݇h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjµ‡ubhŒ intersect, otherwise ”…”�”}”(hjµ‡h²hh³Nh´Nubj’)�”}”(hŒ ``false``”h]”hŒfalse”…”�”}”(hjï‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjµ‡ubhŒ.”…”�”}”(hjµ‡h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mbhj‡ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œgobj_to_entity (C macro)”Œc.gobj_to_entity”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒgobj_to_entity”h]”j )�”}”(hŒgobj_to_entity”h]”j8 )�”}”(hŒgobj_to_entity”h]”j> )�”}”(hj"ˆh]”hŒgobj_to_entity”…”�”}”(hj,ˆh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj(ˆubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj$ˆh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mpubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj ˆh²hh³j?ˆh´Mpubah}”(h]”jˆah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j?ˆh´Mphjˆh²hubjj )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1ji hjˆh²hh³j?ˆh´Mpubeh}”(h]”h ]”(j³Œmacro”eh"]”h$]”h&]”jŠ j³j‹ jXˆjŒ jXˆj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubhï)�”}”(hŒ``gobj_to_entity (gobj)``”h]”j’)�”}”(hj^ˆh]”hŒgobj_to_entity (gobj)”…”�”}”(hj`ˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj\ˆubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mrhjá h²hubj§)�”}”(hŒUreturns the struct :c:type:`media_entity` pointer from the **gobj** contained on it. ”h]”hï)�”}”(hŒTreturns the struct :c:type:`media_entity` pointer from the **gobj** contained on it.”h]”(hŒreturns the struct ”…”�”}”(hjxˆh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hj‚ˆh]”hŒ media_entity”…”�”}”(hj„ˆh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj€ˆubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_entity”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MphjxˆubhŒ pointer from the ”…”�”}”(hjxˆh²hh³Nh´Nubj')�”}”(hŒ**gobj**”h]”hŒgobj”…”�”}”(hj¤ˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjxˆubhŒ contained on it.”…”�”}”(hjxˆh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŸˆh´Mphjtˆubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦h³jŸˆh´Mphjá h²hubj‘ )�”}”(hŒR**Parameters** ``gobj`` Pointer to the struct :c:type:`media_gobj` graph object”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjȈh]”hŒ Parameters”…”�”}”(hjʈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjƈubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MthjˆubjÛ )�”}”(hhh]”jà )�”}”(hŒ@``gobj`` Pointer to the struct :c:type:`media_gobj` graph object”h]”(jæ )�”}”(hŒ``gobj``”h]”j’)�”}”(hjçˆh]”hŒgobj”…”�”}”(hjéˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjåˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mvhjáˆubj)�”}”(hhh]”hï)�”}”(hŒ7Pointer to the struct :c:type:`media_gobj` graph object”h]”(hŒPointer to the struct ”…”�”}”(hj‰h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_gobj`”h]”j’)�”}”(hj ‰h]”hŒ media_gobj”…”�”}”(hj ‰h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj‰ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_gobj”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mshj‰ubhŒ graph object”…”�”}”(hj‰h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j'‰h´Mshjýˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjáˆubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jüˆh´MvhjÞˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjˆubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œgobj_to_pad (C macro)”Œ c.gobj_to_pad”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ gobj_to_pad”h]”j )�”}”(hŒ gobj_to_pad”h]”j8 )�”}”(hŒ gobj_to_pad”h]”j> )�”}”(hj^‰h]”hŒ gobj_to_pad”…”�”}”(hjh‰h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjd‰ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj`‰h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Myubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj\‰h²hh³j{‰h´Myubah}”(h]”jW‰ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j{‰h´MyhjY‰h²hubjj )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1ji hjY‰h²hh³j{‰h´Myubeh}”(h]”h ]”(j³Œmacro”eh"]”h$]”h&]”jŠ j³j‹ j”‰jŒ j”‰j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubhï)�”}”(hŒ``gobj_to_pad (gobj)``”h]”j’)�”}”(hjš‰h]”hŒgobj_to_pad (gobj)”…”�”}”(hjœ‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj˜‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M{hjá h²hubj§)�”}”(hŒRreturns the struct :c:type:`media_pad` pointer from the **gobj** contained on it. ”h]”hï)�”}”(hŒQreturns the struct :c:type:`media_pad` pointer from the **gobj** contained on it.”h]”(hŒreturns the struct ”…”�”}”(hj´‰h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_pad`”h]”j’)�”}”(hj¾‰h]”hŒ media_pad”…”�”}”(hjÀ‰h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj¼‰ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_pad”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Myhj´‰ubhŒ pointer from the ”…”�”}”(hj´‰h²hh³Nh´Nubj')�”}”(hŒ**gobj**”h]”hŒgobj”…”�”}”(hjà‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj´‰ubhŒ contained on it.”…”�”}”(hj´‰h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÛ‰h´Myhj°‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦h³jÛ‰h´Myhjá h²hubj‘ )�”}”(hŒR**Parameters** ``gobj`` Pointer to the struct :c:type:`media_gobj` graph object”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjŠh]”hŒ Parameters”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M}hjþ‰ubjÛ )�”}”(hhh]”jà )�”}”(hŒ@``gobj`` Pointer to the struct :c:type:`media_gobj` graph object”h]”(jæ )�”}”(hŒ``gobj``”h]”j’)�”}”(hj#Šh]”hŒgobj”…”�”}”(hj%Šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj!Šubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjŠubj)�”}”(hhh]”hï)�”}”(hŒ7Pointer to the struct :c:type:`media_gobj` graph object”h]”(hŒPointer to the struct ”…”�”}”(hj<Šh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_gobj`”h]”j’)�”}”(hjFŠh]”hŒ media_gobj”…”�”}”(hjHŠh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjDŠubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_gobj”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M|hj<ŠubhŒ graph object”…”�”}”(hj<Šh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jcŠh´M|hj9Šubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j8Šh´MhjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjþ‰ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œgobj_to_link (C macro)”Œc.gobj_to_link”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ gobj_to_link”h]”j )�”}”(hŒ gobj_to_link”h]”j8 )�”}”(hŒ gobj_to_link”h]”j> )�”}”(hjšŠh]”hŒ gobj_to_link”…”�”}”(hj¤Šh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj Šubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjœŠh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M‚ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj˜Šh²hh³j·Šh´M‚ubah}”(h]”j“Šah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j·Šh´M‚hj•Šh²hubjj )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1ji hj•Šh²hh³j·Šh´M‚ubeh}”(h]”h ]”(j³Œmacro”eh"]”h$]”h&]”jŠ j³j‹ jЊjŒ jЊj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubhï)�”}”(hŒ``gobj_to_link (gobj)``”h]”j’)�”}”(hjÖŠh]”hŒgobj_to_link (gobj)”…”�”}”(hjØŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÔŠubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M„hjá h²hubj§)�”}”(hŒSreturns the struct :c:type:`media_link` pointer from the **gobj** contained on it. ”h]”hï)�”}”(hŒRreturns the struct :c:type:`media_link` pointer from the **gobj** contained on it.”h]”(hŒreturns the struct ”…”�”}”(hjðŠh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_link`”h]”j’)�”}”(hjúŠh]”hŒ media_link”…”�”}”(hjüŠh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjøŠubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_link”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M‚hjðŠubhŒ pointer from the ”…”�”}”(hjðŠh²hh³Nh´Nubj')�”}”(hŒ**gobj**”h]”hŒgobj”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjðŠubhŒ contained on it.”…”�”}”(hjðŠh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j‹h´M‚hjìŠubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦h³j‹h´M‚hjá h²hubj‘ )�”}”(hŒR**Parameters** ``gobj`` Pointer to the struct :c:type:`media_gobj` graph object”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj@‹h]”hŒ Parameters”…”�”}”(hjB‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj>‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M†hj:‹ubjÛ )�”}”(hhh]”jà )�”}”(hŒ@``gobj`` Pointer to the struct :c:type:`media_gobj` graph object”h]”(jæ )�”}”(hŒ``gobj``”h]”j’)�”}”(hj_‹h]”hŒgobj”…”�”}”(hja‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj]‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MˆhjY‹ubj)�”}”(hhh]”hï)�”}”(hŒ7Pointer to the struct :c:type:`media_gobj` graph object”h]”(hŒPointer to the struct ”…”�”}”(hjx‹h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_gobj`”h]”j’)�”}”(hj‚‹h]”hŒ media_gobj”…”�”}”(hj„‹h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj€‹ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_gobj”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M…hjx‹ubhŒ graph object”…”�”}”(hjx‹h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŸ‹h´M…hju‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjY‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jt‹h´MˆhjV‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj:‹ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œgobj_to_intf (C macro)”Œc.gobj_to_intf”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ gobj_to_intf”h]”j )�”}”(hŒ gobj_to_intf”h]”j8 )�”}”(hŒ gobj_to_intf”h]”j> )�”}”(hjÖ‹h]”hŒ gobj_to_intf”…”�”}”(hjà‹h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÜ‹ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjØ‹h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M‹ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÔ‹h²hh³jó‹h´M‹ubah}”(h]”jÏ‹ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jó‹h´M‹hjÑ‹h²hubjj )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÑ‹h²hh³jó‹h´M‹ubeh}”(h]”h ]”(j³Œmacro”eh"]”h$]”h&]”jŠ j³j‹ j ŒjŒ j Œj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubhï)�”}”(hŒ``gobj_to_intf (gobj)``”h]”j’)�”}”(hjŒh]”hŒgobj_to_intf (gobj)”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�hjá h²hubj§)�”}”(hŒXreturns the struct :c:type:`media_interface` pointer from the **gobj** contained on it. ”h]”hï)�”}”(hŒWreturns the struct :c:type:`media_interface` pointer from the **gobj** contained on it.”h]”(hŒreturns the struct ”…”�”}”(hj,Œh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_interface`”h]”j’)�”}”(hj6Œh]”hŒmedia_interface”…”�”}”(hj8Œh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj4Œubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒmedia_interface”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M‹hj,ŒubhŒ pointer from the ”…”�”}”(hj,Œh²hh³Nh´Nubj')�”}”(hŒ**gobj**”h]”hŒgobj”…”�”}”(hjXŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj,ŒubhŒ contained on it.”…”�”}”(hj,Œh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jSŒh´M‹hj(Œubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦h³jSŒh´M‹hjá h²hubj‘ )�”}”(hŒR**Parameters** ``gobj`` Pointer to the struct :c:type:`media_gobj` graph object”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj|Œh]”hŒ Parameters”…”�”}”(hj~Œh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjzŒubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�hjvŒubjÛ )�”}”(hhh]”jà )�”}”(hŒ@``gobj`` Pointer to the struct :c:type:`media_gobj` graph object”h]”(jæ )�”}”(hŒ``gobj``”h]”j’)�”}”(hj›Œh]”hŒgobj”…”�”}”(hj�Œh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj™Œubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M‘hj•Œubj)�”}”(hhh]”hï)�”}”(hŒ7Pointer to the struct :c:type:`media_gobj` graph object”h]”(hŒPointer to the struct ”…”�”}”(hj´Œh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_gobj`”h]”j’)�”}”(hj¾Œh]”hŒ media_gobj”…”�”}”(hjÀŒh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj¼Œubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_gobj”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŽhj´ŒubhŒ graph object”…”�”}”(hj´Œh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÛŒh´MŽhj±Œubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj•Œubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j°Œh´M‘hj’Œubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjvŒubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œintf_to_devnode (C macro)”Œc.intf_to_devnode”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒintf_to_devnode”h]”j )�”}”(hŒintf_to_devnode”h]”j8 )�”}”(hŒintf_to_devnode”h]”j> )�”}”(hj�h]”hŒintf_to_devnode”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj�ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj�h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M”ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj�h²hh³j/�h´M”ubah}”(h]”j �ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j/�h´M”hj �h²hubjj )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1ji hj �h²hh³j/�h´M”ubeh}”(h]”h ]”(j³Œmacro”eh"]”h$]”h&]”jŠ j³j‹ jH�jŒ jH�j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubhï)�”}”(hŒ``intf_to_devnode (intf)``”h]”j’)�”}”(hjN�h]”hŒintf_to_devnode (intf)”…”�”}”(hjP�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjL�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M–hjá h²hubj§)�”}”(hŒQreturns the struct media_intf_devnode pointer from the **intf** contained on it. ”h]”hï)�”}”(hŒPreturns the struct media_intf_devnode pointer from the **intf** contained on it.”h]”(hŒ7returns the struct media_intf_devnode pointer from the ”…”�”}”(hjh�h²hh³Nh´Nubj')�”}”(hŒ**intf**”h]”hŒintf”…”�”}”(hjp�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjh�ubhŒ contained on it.”…”�”}”(hjh�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M”hjd�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦h³jˆ�h´M”hjá h²hubj‘ )�”}”(hŒI**Parameters** ``intf`` Pointer to struct :c:type:`media_intf_devnode`”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj•�h]”hŒ Parameters”…”�”}”(hj—�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj“�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M˜hj��ubjÛ )�”}”(hhh]”jà )�”}”(hŒ7``intf`` Pointer to struct :c:type:`media_intf_devnode`”h]”(jæ )�”}”(hŒ``intf``”h]”j’)�”}”(hj´�h]”hŒintf”…”�”}”(hj¶�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj²�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mšhj®�ubj)�”}”(hhh]”hï)�”}”(hŒ.Pointer to struct :c:type:`media_intf_devnode`”h]”(hŒPointer to struct ”…”�”}”(hjÍ�h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_intf_devnode`”h]”j’)�”}”(hj×�h]”hŒmedia_intf_devnode”…”�”}”(hjÙ�h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjÕ�ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒmedia_intf_devnode”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M—hjÍ�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jô�h´M—hjÊ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj®�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÉ�h´Mšhj«�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj��ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_gobj_create (C function)”Œc.media_gobj_create”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒfvoid media_gobj_create (struct media_device *mdev, enum media_gobj_type type, struct media_gobj *gobj)”h]”j )�”}”(hŒevoid media_gobj_create(struct media_device *mdev, enum media_gobj_type type, struct media_gobj *gobj)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj-Žh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj)Žh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj<Žh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj)Žh²hh³j;Žh´M�ubj8 )�”}”(hŒmedia_gobj_create”h]”j> )�”}”(hŒmedia_gobj_create”h]”hŒmedia_gobj_create”…”�”}”(hjNŽh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjJŽubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj)Žh²hh³j;Žh´M�ubj˜)�”}”(hŒO(struct media_device *mdev, enum media_gobj_type type, struct media_gobj *gobj)”h]”(jž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjjŽh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjfŽubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwŽh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjfŽubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hjˆŽh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj…Žubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jŠŽŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jPŽsbŒc.media_gobj_create”†”asbuh1hhjfŽubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨Žh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjfŽubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj¶Žh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjfŽubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hjÃŽh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjfŽubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjbŽubjž)�”}”(hŒenum media_gobj_type type”h]”(j )�”}”(hjgIh]”hŒenum”…”�”}”(hjÜŽh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjØŽubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjéŽh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjØŽubh)�”}”(hhh]”j> )�”}”(hŒmedia_gobj_type”h]”hŒmedia_gobj_type”…”�”}”(hjúŽh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj÷Žubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jüŽŒmodname”NŒ classname”Njäjç)�”}”jê]”j¤ŽŒc.media_gobj_create”†”asbuh1hhjØŽubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjØŽubj> )�”}”(hŒtype”h]”hŒtype”…”�”}”(hj&�h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjØŽubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjbŽubjž)�”}”(hŒstruct media_gobj *gobj”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj?�h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj;�ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjL�h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj;�ubh)�”}”(hhh]”j> )�”}”(hŒ media_gobj”h]”hŒ media_gobj”…”�”}”(hj]�h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjZ�ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j_�Œmodname”NŒ classname”Njäjç)�”}”jê]”j¤ŽŒc.media_gobj_create”†”asbuh1hhj;�ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj{�h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj;�ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj‰�h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj;�ubj> )�”}”(hŒgobj”h]”hŒgobj”…”�”}”(hj–�h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj;�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjbŽubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj)Žh²hh³j;Žh´M�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj%Žh²hh³j;Žh´M�ubah}”(h]”j Žah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j;Žh´M�hj"Žh²hubjj )�”}”(hhh]”hï)�”}”(hŒInitialize a graph object”h]”hŒInitialize a graph object”…”�”}”(hjÀ�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�hj½�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj"Žh²hh³j;Žh´M�ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jØ�jŒ jØ�j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXb**Parameters** ``struct media_device *mdev`` Pointer to the :c:type:`media_device` that contains the object ``enum media_gobj_type type`` Type of the object ``struct media_gobj *gobj`` Pointer to the struct :c:type:`media_gobj` graph object **Description** This routine initializes the embedded struct :c:type:`media_gobj` inside a media graph object. It is called automatically if ``media_*_create`` function calls are used. However, if the object (entity, link, pad, interface) is embedded on some other object, this function should be called before registering the object at the media controller.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjâ�h]”hŒ Parameters”…”�”}”(hjä�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjà�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¡hjÜ�ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ]``struct media_device *mdev`` Pointer to the :c:type:`media_device` that contains the object ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hj�h]”hŒstruct media_device *mdev”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÿ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŸhjû�ubj)�”}”(hhh]”hï)�”}”(hŒ>Pointer to the :c:type:`media_device` that contains the object”h]”(hŒPointer to the ”…”�”}”(hj�h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hj$�h]”hŒ media_device”…”�”}”(hj&�h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj"�ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³j�h´MŸhj�ubhŒ that contains the object”…”�”}”(hj�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j�h´MŸhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjû�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j�h´MŸhjø�ubjà )�”}”(hŒ1``enum media_gobj_type type`` Type of the object ”h]”(jæ )�”}”(hŒ``enum media_gobj_type type``”h]”j’)�”}”(hj]�h]”hŒenum media_gobj_type type”…”�”}”(hj_�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj[�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hjW�ubj)�”}”(hhh]”hï)�”}”(hŒType of the object”h]”hŒType of the object”…”�”}”(hjv�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jr�h´M hjs�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjW�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jr�h´M hjø�ubjà )�”}”(hŒT``struct media_gobj *gobj`` Pointer to the struct :c:type:`media_gobj` graph object ”h]”(jæ )�”}”(hŒ``struct media_gobj *gobj``”h]”j’)�”}”(hj–�h]”hŒstruct media_gobj *gobj”…”�”}”(hj˜�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj”�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¡hj��ubj)�”}”(hhh]”hï)�”}”(hŒ7Pointer to the struct :c:type:`media_gobj` graph object”h]”(hŒPointer to the struct ”…”�”}”(hj¯�h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_gobj`”h]”j’)�”}”(hj¹�h]”hŒ media_gobj”…”�”}”(hj»�h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj·�ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_gobj”uh1hh³j«�h´M¡hj¯�ubhŒ graph object”…”�”}”(hj¯�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j«�h´M¡hj¬�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj��ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j«�h´M¡hjø�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÜ�ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjô�h]”hŒ Description”…”�”}”(hjö�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjò�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M£hjÜ�ubhï)�”}”(hXVThis routine initializes the embedded struct :c:type:`media_gobj` inside a media graph object. It is called automatically if ``media_*_create`` function calls are used. However, if the object (entity, link, pad, interface) is embedded on some other object, this function should be called before registering the object at the media controller.”h]”(hŒ-This routine initializes the embedded struct ”…”�”}”(hj ‘h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_gobj`”h]”j’)�”}”(hj‘h]”hŒ media_gobj”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj‘ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_gobj”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¢hj ‘ubhŒ< inside a media graph object. It is called automatically if ”…”�”}”(hj ‘h²hh³Nh´Nubj’)�”}”(hŒ``media_*_create``”h]”hŒmedia_*_create”…”�”}”(hj6‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj ‘ubhŒÇ function calls are used. However, if the object (entity, link, pad, interface) is embedded on some other object, this function should be called before registering the object at the media controller.”…”�”}”(hj ‘h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j1‘h´M¢hjÜ�ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_gobj_destroy (C function)”Œc.media_gobj_destroy”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ1void media_gobj_destroy (struct media_gobj *gobj)”h]”j )�”}”(hŒ0void media_gobj_destroy(struct media_gobj *gobj)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjn‘h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjj‘h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M®ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}‘h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjj‘h²hh³j|‘h´M®ubj8 )�”}”(hŒmedia_gobj_destroy”h]”j> )�”}”(hŒmedia_gobj_destroy”h]”hŒmedia_gobj_destroy”…”�”}”(hj�‘h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj‹‘ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjj‘h²hh³j|‘h´M®ubj˜)�”}”(hŒ(struct media_gobj *gobj)”h]”jž)�”}”(hŒstruct media_gobj *gobj”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj«‘h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj§‘ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¸‘h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj§‘ubh)�”}”(hhh]”j> )�”}”(hŒ media_gobj”h]”hŒ media_gobj”…”�”}”(hjÉ‘h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÆ‘ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jË‘Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j‘‘sbŒc.media_gobj_destroy”†”asbuh1hhj§‘ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjé‘h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj§‘ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj÷‘h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj§‘ubj> )�”}”(hŒgobj”h]”hŒgobj”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj§‘ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj£‘ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjj‘h²hh³j|‘h´M®ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjf‘h²hh³j|‘h´M®ubah}”(h]”ja‘ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j|‘h´M®hjc‘h²hubjj )�”}”(hhh]”hï)�”}”(hŒ+Stop using a graph object on a media device”h]”hŒ+Stop using a graph object on a media device”…”�”}”(hj.’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M®hj+’h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjc‘h²hh³j|‘h´M®ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jF’jŒ jF’j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒå**Parameters** ``struct media_gobj *gobj`` Pointer to the struct :c:type:`media_gobj` graph object **Description** This should be called by all routines like media_device_unregister() that remove/destroy media graph objects.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjP’h]”hŒ Parameters”…”�”}”(hjR’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjN’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M²hjJ’ubjÛ )�”}”(hhh]”jà )�”}”(hŒT``struct media_gobj *gobj`` Pointer to the struct :c:type:`media_gobj` graph object ”h]”(jæ )�”}”(hŒ``struct media_gobj *gobj``”h]”j’)�”}”(hjo’h]”hŒstruct media_gobj *gobj”…”�”}”(hjq’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjm’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M°hji’ubj)�”}”(hhh]”hï)�”}”(hŒ7Pointer to the struct :c:type:`media_gobj` graph object”h]”(hŒPointer to the struct ”…”�”}”(hjˆ’h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_gobj`”h]”j’)�”}”(hj’’h]”hŒ media_gobj”…”�”}”(hj”’h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj�’ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_gobj”uh1hh³j„’h´M°hjˆ’ubhŒ graph object”…”�”}”(hjˆ’h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j„’h´M°hj…’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hji’ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j„’h´M°hjf’ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjJ’ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjÍ’h]”hŒ Description”…”�”}”(hjÏ’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjË’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M²hjJ’ubhï)�”}”(hŒmThis should be called by all routines like media_device_unregister() that remove/destroy media graph objects.”h]”hŒmThis should be called by all routines like media_device_unregister() that remove/destroy media graph objects.”…”�”}”(hjã’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M±hjJ’ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ#media_entity_pads_init (C function)”Œc.media_entity_pads_init”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ^int media_entity_pads_init (struct media_entity *entity, u16 num_pads, struct media_pad *pads)”h]”j )�”}”(hŒ]int media_entity_pads_init(struct media_entity *entity, u16 num_pads, struct media_pad *pads)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj“h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¸ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!“h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj“h²hh³j “h´M¸ubj8 )�”}”(hŒmedia_entity_pads_init”h]”j> )�”}”(hŒmedia_entity_pads_init”h]”hŒmedia_entity_pads_init”…”�”}”(hj3“h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj/“ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj“h²hh³j “h´M¸ubj˜)�”}”(hŒC(struct media_entity *entity, u16 num_pads, struct media_pad *pads)”h]”(jž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjO“h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjK“ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\“h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjK“ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hjm“h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjj“ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jo“Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j5“sbŒc.media_entity_pads_init”†”asbuh1hhjK“ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�“h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjK“ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj›“h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjK“ubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hj¨“h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjK“ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjG“ubjž)�”}”(hŒ u16 num_pads”h]”(h)�”}”(hhh]”j> )�”}”(hŒu16”h]”hŒu16”…”�”}”(hjÄ“h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÁ“ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jÆ“Œmodname”NŒ classname”Njäjç)�”}”jê]”j‰“Œc.media_entity_pads_init”†”asbuh1hhj½“ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâ“h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj½“ubj> )�”}”(hŒnum_pads”h]”hŒnum_pads”…”�”}”(hjð“h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj½“ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjG“ubjž)�”}”(hŒstruct media_pad *pads”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj ”h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj”ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj”ubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hj'”h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj$”ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j)”Œmodname”NŒ classname”Njäjç)�”}”jê]”j‰“Œc.media_entity_pads_init”†”asbuh1hhj”ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjE”h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj”ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjS”h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj”ubj> )�”}”(hŒpads”h]”hŒpads”…”�”}”(hj`”h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj”ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjG“ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj“h²hh³j “h´M¸ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj “h²hh³j “h´M¸ubah}”(h]”j“ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j “h´M¸hj“h²hubjj )�”}”(hhh]”hï)�”}”(hŒInitialize the entity pads”h]”hŒInitialize the entity pads”…”�”}”(hjŠ”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¸hj‡”h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj“h²hh³j “h´M¸ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j¢”jŒ j¢”j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXÍ**Parameters** ``struct media_entity *entity`` entity where the pads belong ``u16 num_pads`` total number of sink and source pads ``struct media_pad *pads`` Array of **num_pads** pads. **Description** The pads array is managed by the entity driver and passed to media_entity_pads_init() where its pointer will be stored in the :c:type:`media_entity` structure. If no pads are needed, drivers could either directly fill :c:type:`media_entity->num_pads ` with 0 and :c:type:`media_entity->pads ` with ``NULL`` or call this function that will do the same. As the number of pads is known in advance, the pads array is not allocated dynamically but is managed by the entity driver. Most drivers will embed the pads array in a driver-specific structure, avoiding dynamic allocation. Drivers must set the direction of every pad in the pads array before calling media_entity_pads_init(). The function will initialize the other pads fields.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj¬”h]”hŒ Parameters”…”�”}”(hj®”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjª”ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¼hj¦”ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ=``struct media_entity *entity`` entity where the pads belong ”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hjË”h]”hŒstruct media_entity *entity”…”�”}”(hjÍ”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÉ”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MºhjÅ”ubj)�”}”(hhh]”hï)�”}”(hŒentity where the pads belong”h]”hŒentity where the pads belong”…”�”}”(hjä”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jà”h´Mºhjá”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÅ”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jà”h´Mºhj”ubjà )�”}”(hŒ6``u16 num_pads`` total number of sink and source pads ”h]”(jæ )�”}”(hŒ``u16 num_pads``”h]”j’)�”}”(hj•h]”hŒ u16 num_pads”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M»hjþ”ubj)�”}”(hhh]”hï)�”}”(hŒ$total number of sink and source pads”h]”hŒ$total number of sink and source pads”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j•h´M»hj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjþ”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j•h´M»hj”ubjà )�”}”(hŒ7``struct media_pad *pads`` Array of **num_pads** pads. ”h]”(jæ )�”}”(hŒ``struct media_pad *pads``”h]”j’)�”}”(hj=•h]”hŒstruct media_pad *pads”…”�”}”(hj?•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj;•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¼hj7•ubj)�”}”(hhh]”hï)�”}”(hŒArray of **num_pads** pads.”h]”(hŒ Array of ”…”�”}”(hjV•h²hh³Nh´Nubj')�”}”(hŒ **num_pads**”h]”hŒnum_pads”…”�”}”(hj^•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjV•ubhŒ pads.”…”�”}”(hjV•h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jR•h´M¼hjS•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj7•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jR•h´M¼hj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj¦”ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjŠ•h]”hŒ Description”…”�”}”(hjŒ•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjˆ•ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¾hj¦”ubhï)�”}”(hŒŸThe pads array is managed by the entity driver and passed to media_entity_pads_init() where its pointer will be stored in the :c:type:`media_entity` structure.”h]”(hŒ~The pads array is managed by the entity driver and passed to media_entity_pads_init() where its pointer will be stored in the ”…”�”}”(hj •h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hjª•h]”hŒ media_entity”…”�”}”(hj¬•h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj¨•ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_entity”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M½hj •ubhŒ structure.”…”�”}”(hj •h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÇ•h´M½hj¦”ubhï)�”}”(hŒÛIf no pads are needed, drivers could either directly fill :c:type:`media_entity->num_pads ` with 0 and :c:type:`media_entity->pads ` with ``NULL`` or call this function that will do the same.”h]”(hŒ:If no pads are needed, drivers could either directly fill ”…”�”}”(hjÒ•h²hh³Nh´Nubh)�”}”(hŒ/:c:type:`media_entity->num_pads `”h]”j’)�”}”(hjÜ•h]”hŒmedia_entity->num_pads”…”�”}”(hjÞ•h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjÚ•ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jäjèjŒ media_entity”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÁhjÒ•ubhŒ with 0 and ”…”�”}”(hjÒ•h²hh³Nh´Nubh)�”}”(hŒ+:c:type:`media_entity->pads `”h]”j’)�”}”(hj–h]”hŒmedia_entity->pads”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjþ•ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jäjèjŒ media_entity”uh1hh³jù•h´MÁhjÒ•ubhŒ with ”…”�”}”(hjÒ•h²hh³Nh´Nubj’)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj!–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÒ•ubhŒ- or call this function that will do the same.”…”�”}”(hjÒ•h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jù•h´MÁhj¦”ubhï)�”}”(hŒßAs the number of pads is known in advance, the pads array is not allocated dynamically but is managed by the entity driver. Most drivers will embed the pads array in a driver-specific structure, avoiding dynamic allocation.”h]”hŒßAs the number of pads is known in advance, the pads array is not allocated dynamically but is managed by the entity driver. Most drivers will embed the pads array in a driver-specific structure, avoiding dynamic allocation.”…”�”}”(hj9–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÅhj¦”ubhï)�”}”(hŒšDrivers must set the direction of every pad in the pads array before calling media_entity_pads_init(). The function will initialize the other pads fields.”h]”hŒšDrivers must set the direction of every pad in the pads array before calling media_entity_pads_init(). The function will initialize the other pads fields.”…”�”}”(hjH–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÉhj¦”ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� •hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ!media_entity_cleanup (C function)”Œc.media_entity_cleanup”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ7void media_entity_cleanup (struct media_entity *entity)”h]”j )�”}”(hŒ6void media_entity_cleanup(struct media_entity *entity)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjw–h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjs–h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÑubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†–h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjs–h²hh³j…–h´MÑubj8 )�”}”(hŒmedia_entity_cleanup”h]”j> )�”}”(hŒmedia_entity_cleanup”h]”hŒmedia_entity_cleanup”…”�”}”(hj˜–h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj”–ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjs–h²hh³j…–h´MÑubj˜)�”}”(hŒ(struct media_entity *entity)”h]”jž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj´–h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj°–ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁ–h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj°–ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hjÒ–h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÏ–ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jÔ–Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jš–sbŒc.media_entity_cleanup”†”asbuh1hhj°–ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjò–h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj°–ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj°–ubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hj —h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj°–ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj¬–ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjs–h²hh³j…–h´MÑubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjo–h²hh³j…–h´MÑubah}”(h]”jj–ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j…–h´MÑhjl–h²hubjj )�”}”(hhh]”hï)�”}”(hŒ(free resources associated with an entity”h]”hŒ(free resources associated with an entity”…”�”}”(hj7—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÑhj4—h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjl–h²hh³j…–h´MÑubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jO—jŒ jO—j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX{**Parameters** ``struct media_entity *entity`` entity where the pads belong **Description** This function must be called during the cleanup phase after unregistering the entity (currently, it does nothing). Calling media_entity_cleanup() on a media_entity whose memory has been zeroed but that has not been initialized with media_entity_pads_init() is valid and is a no-op.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjY—h]”hŒ Parameters”…”�”}”(hj[—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjW—ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÕhjS—ubjÛ )�”}”(hhh]”jà )�”}”(hŒ=``struct media_entity *entity`` entity where the pads belong ”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hjx—h]”hŒstruct media_entity *entity”…”�”}”(hjz—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjv—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÓhjr—ubj)�”}”(hhh]”hï)�”}”(hŒentity where the pads belong”h]”hŒentity where the pads belong”…”�”}”(hj‘—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j�—h´MÓhjŽ—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjr—ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j�—h´MÓhjo—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjS—ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj³—h]”hŒ Description”…”�”}”(hjµ—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj±—ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÕhjS—ubhï)�”}”(hŒrThis function must be called during the cleanup phase after unregistering the entity (currently, it does nothing).”h]”hŒrThis function must be called during the cleanup phase after unregistering the entity (currently, it does nothing).”…”�”}”(hjÉ—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÔhjS—ubhï)�”}”(hŒ¦Calling media_entity_cleanup() on a media_entity whose memory has been zeroed but that has not been initialized with media_entity_pads_init() is valid and is a no-op.”h]”hŒ¦Calling media_entity_cleanup() on a media_entity whose memory has been zeroed but that has not been initialized with media_entity_pads_init() is valid and is a no-op.”…”�”}”(hjØ—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M×hjS—ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ media_get_pad_index (C function)”Œc.media_get_pad_index”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒhint media_get_pad_index (struct media_entity *entity, u32 pad_type, enum media_pad_signal_type sig_type)”h]”j )�”}”(hŒgint media_get_pad_index(struct media_entity *entity, u32 pad_type, enum media_pad_signal_type sig_type)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj˜h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Máubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj˜h²hh³j˜h´Máubj8 )�”}”(hŒmedia_get_pad_index”h]”j> )�”}”(hŒmedia_get_pad_index”h]”hŒmedia_get_pad_index”…”�”}”(hj(˜h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj$˜ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj˜h²hh³j˜h´Máubj˜)�”}”(hŒP(struct media_entity *entity, u32 pad_type, enum media_pad_signal_type sig_type)”h]”(jž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjD˜h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj@˜ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjQ˜h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj@˜ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hjb˜h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj_˜ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jd˜Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j*˜sbŒc.media_get_pad_index”†”asbuh1hhj@˜ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚˜h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj@˜ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj�˜h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj@˜ubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hj�˜h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj@˜ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj<˜ubjž)�”}”(hŒ u32 pad_type”h]”(h)�”}”(hhh]”j> )�”}”(hŒu32”h]”hŒu32”…”�”}”(hj¹˜h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¶˜ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j»˜Œmodname”NŒ classname”Njäjç)�”}”jê]”j~˜Œc.media_get_pad_index”†”asbuh1hhj²˜ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjטh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj²˜ubj> )�”}”(hŒpad_type”h]”hŒpad_type”…”�”}”(hjå˜h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj²˜ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj<˜ubjž)�”}”(hŒ#enum media_pad_signal_type sig_type”h]”(j )�”}”(hjgIh]”hŒenum”…”�”}”(hjþ˜h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjú˜ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ™h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjú˜ubh)�”}”(hhh]”j> )�”}”(hŒmedia_pad_signal_type”h]”hŒmedia_pad_signal_type”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj™ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j™Œmodname”NŒ classname”Njäjç)�”}”jê]”j~˜Œc.media_get_pad_index”†”asbuh1hhjú˜ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:™h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjú˜ubj> )�”}”(hŒsig_type”h]”hŒsig_type”…”�”}”(hjH™h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjú˜ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj<˜ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj˜h²hh³j˜h´Máubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÿ—h²hh³j˜h´Máubah}”(h]”jú—ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j˜h´Máhjü—h²hubjj )�”}”(hhh]”hï)�”}”(hŒ$retrieves a pad index from an entity”h]”hŒ$retrieves a pad index from an entity”…”�”}”(hjr™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Máhjo™h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjü—h²hh³j˜h´Máubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jŠ™jŒ jŠ™j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXí**Parameters** ``struct media_entity *entity`` entity where the pads belong ``u32 pad_type`` the type of the pad, one of MEDIA_PAD_FL_* pad types ``enum media_pad_signal_type sig_type`` type of signal of the pad to be search **Description** This helper function finds the first pad index inside an entity that satisfies both **is_sink** and **sig_type** conditions. On success, return the pad number. If the pad was not found or the media entity is a NULL pointer, return -EINVAL.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj”™h]”hŒ Parameters”…”�”}”(hj–™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj’™ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MåhjŽ™ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ=``struct media_entity *entity`` entity where the pads belong ”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hj³™h]”hŒstruct media_entity *entity”…”�”}”(hjµ™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj±™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mãhj­™ubj)�”}”(hhh]”hï)�”}”(hŒentity where the pads belong”h]”hŒentity where the pads belong”…”�”}”(hjÌ™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÈ™h´MãhjÉ™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj­™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÈ™h´Mãhjª™ubjà )�”}”(hŒF``u32 pad_type`` the type of the pad, one of MEDIA_PAD_FL_* pad types ”h]”(jæ )�”}”(hŒ``u32 pad_type``”h]”j’)�”}”(hjì™h]”hŒ u32 pad_type”…”�”}”(hjî™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjê™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mähjæ™ubj)�”}”(hhh]”hï)�”}”(hŒ4the type of the pad, one of MEDIA_PAD_FL_* pad types”h]”hŒ4the type of the pad, one of MEDIA_PAD_FL_* pad types”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jšh´Mähjšubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjæ™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jšh´Mähjª™ubjà )�”}”(hŒO``enum media_pad_signal_type sig_type`` type of signal of the pad to be search ”h]”(jæ )�”}”(hŒ'``enum media_pad_signal_type sig_type``”h]”j’)�”}”(hj%šh]”hŒ#enum media_pad_signal_type sig_type”…”�”}”(hj'šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj#šubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Måhjšubj)�”}”(hhh]”hï)�”}”(hŒ&type of signal of the pad to be search”h]”hŒ&type of signal of the pad to be search”…”�”}”(hj>šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j:šh´Måhj;šubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjšubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j:šh´Måhjª™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjŽ™ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj`šh]”hŒ Description”…”�”}”(hjbšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj^šubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MçhjŽ™ubhï)�”}”(hŒ|This helper function finds the first pad index inside an entity that satisfies both **is_sink** and **sig_type** conditions.”h]”(hŒTThis helper function finds the first pad index inside an entity that satisfies both ”…”�”}”(hjvšh²hh³Nh´Nubj')�”}”(hŒ **is_sink**”h]”hŒis_sink”…”�”}”(hj~šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjvšubhŒ and ”…”�”}”(hjvšh²hh³Nh´Nubj')�”}”(hŒ **sig_type**”h]”hŒsig_type”…”�”}”(hj�šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjvšubhŒ conditions.”…”�”}”(hjvšh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MæhjŽ™ubhï)�”}”(hŒrOn success, return the pad number. If the pad was not found or the media entity is a NULL pointer, return -EINVAL.”h]”hŒrOn success, return the pad number. If the pad was not found or the media entity is a NULL pointer, return -EINVAL.”…”�”}”(hj©šh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MêhjŽ™ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ"media_create_pad_link (C function)”Œc.media_create_pad_link”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ{int media_create_pad_link (struct media_entity *source, u16 source_pad, struct media_entity *sink, u16 sink_pad, u32 flags)”h]”j )�”}”(hŒzint media_create_pad_link(struct media_entity *source, u16 source_pad, struct media_entity *sink, u16 sink_pad, u32 flags)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hjØšh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjÔšh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Móubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjçšh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÔšh²hh³jæšh´Móubj8 )�”}”(hŒmedia_create_pad_link”h]”j> )�”}”(hŒmedia_create_pad_link”h]”hŒmedia_create_pad_link”…”�”}”(hjùšh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjõšubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÔšh²hh³jæšh´Móubj˜)�”}”(hŒa(struct media_entity *source, u16 source_pad, struct media_entity *sink, u16 sink_pad, u32 flags)”h]”(jž)�”}”(hŒstruct media_entity *source”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj›ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"›h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj›ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hj3›h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj0›ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j5›Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jûšsbŒc.media_create_pad_link”†”asbuh1hhj›ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjS›h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj›ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hja›h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj›ubj> )�”}”(hŒsource”h]”hŒsource”…”�”}”(hjn›h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj›ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj ›ubjž)�”}”(hŒu16 source_pad”h]”(h)�”}”(hhh]”j> )�”}”(hŒu16”h]”hŒu16”…”�”}”(hjŠ›h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj‡›ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jŒ›Œmodname”NŒ classname”Njäjç)�”}”jê]”jO›Œc.media_create_pad_link”†”asbuh1hhjƒ›ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨›h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjƒ›ubj> )�”}”(hŒ source_pad”h]”hŒ source_pad”…”�”}”(hj¶›h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjƒ›ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj ›ubjž)�”}”(hŒstruct media_entity *sink”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÏ›h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjË›ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜ›h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjË›ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hjí›h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjê›ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jmodname”NŒ classname”Njäjç)�”}”jê]”jO›Œc.media_create_pad_link”†”asbuh1hhjË›ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj œh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjË›ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjË›ubj> )�”}”(hŒsink”h]”hŒsink”…”�”}”(hj&œh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjË›ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj ›ubjž)�”}”(hŒ u16 sink_pad”h]”(h)�”}”(hhh]”j> )�”}”(hŒu16”h]”hŒu16”…”�”}”(hjBœh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj?œubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jDœŒmodname”NŒ classname”Njäjç)�”}”jê]”jO›Œc.media_create_pad_link”†”asbuh1hhj;œubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`œh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj;œubj> )�”}”(hŒsink_pad”h]”hŒsink_pad”…”�”}”(hjnœh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj;œubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj ›ubjž)�”}”(hŒ u32 flags”h]”(h)�”}”(hhh]”j> )�”}”(hŒu32”h]”hŒu32”…”�”}”(hjŠœh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj‡œubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jŒœŒmodname”NŒ classname”Njäjç)�”}”jê]”jO›Œc.media_create_pad_link”†”asbuh1hhjƒœubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨œh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjƒœubj> )�”}”(hŒflags”h]”hŒflags”…”�”}”(hj¶œh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjƒœubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj ›ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjÔšh²hh³jæšh´Móubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjКh²hh³jæšh´Móubah}”(h]”jËšah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jæšh´MóhjÍšh²hubjj )�”}”(hhh]”hï)�”}”(hŒ$creates a link between two entities.”h]”hŒ$creates a link between two entities.”…”�”}”(hjàœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MóhjÝœh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÍšh²hh³jæšh´Móubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jøœjŒ jøœj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX **Parameters** ``struct media_entity *source`` pointer to :c:type:`media_entity` of the source pad. ``u16 source_pad`` number of the source pad in the pads array ``struct media_entity *sink`` pointer to :c:type:`media_entity` of the sink pad. ``u16 sink_pad`` number of the sink pad in the pads array. ``u32 flags`` Link flags, as defined in :ref:`include/uapi/linux/media.h ` ( seek for ``MEDIA_LNK_FL_*``) **Description** Valid values for flags: ``MEDIA_LNK_FL_ENABLED`` Indicates that the link is enabled and can be used to transfer media data. When two or more links target a sink pad, only one of them can be enabled at a time. ``MEDIA_LNK_FL_IMMUTABLE`` Indicates that the link enabled state can't be modified at runtime. If ``MEDIA_LNK_FL_IMMUTABLE`` is set, then ``MEDIA_LNK_FL_ENABLED`` must also be set, since an immutable link is always enabled. .. note:: Before calling this function, media_entity_pads_init() and media_device_register_entity() should be called previously for both ends.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj�h]”hŒ Parameters”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M÷hjüœubjÛ )�”}”(hhh]”(jà )�”}”(hŒU``struct media_entity *source`` pointer to :c:type:`media_entity` of the source pad. ”h]”(jæ )�”}”(hŒ``struct media_entity *source``”h]”j’)�”}”(hj!�h]”hŒstruct media_entity *source”…”�”}”(hj#�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mõhj�ubj)�”}”(hhh]”hï)�”}”(hŒ4pointer to :c:type:`media_entity` of the source pad.”h]”(hŒ pointer to ”…”�”}”(hj:�h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hjD�h]”hŒ media_entity”…”�”}”(hjF�h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjB�ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_entity”uh1hh³j6�h´Mõhj:�ubhŒ of the source pad.”…”�”}”(hj:�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j6�h´Mõhj7�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j6�h´Mõhj�ubjà )�”}”(hŒ>``u16 source_pad`` number of the source pad in the pads array ”h]”(jæ )�”}”(hŒ``u16 source_pad``”h]”j’)�”}”(hj}�h]”hŒu16 source_pad”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj{�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Möhjw�ubj)�”}”(hhh]”hï)�”}”(hŒ*number of the source pad in the pads array”h]”hŒ*number of the source pad in the pads array”…”�”}”(hj–�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j’�h´Möhj“�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjw�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j’�h´Möhj�ubjà )�”}”(hŒQ``struct media_entity *sink`` pointer to :c:type:`media_entity` of the sink pad. ”h]”(jæ )�”}”(hŒ``struct media_entity *sink``”h]”j’)�”}”(hj¶�h]”hŒstruct media_entity *sink”…”�”}”(hj¸�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj´�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M÷hj°�ubj)�”}”(hhh]”hï)�”}”(hŒ2pointer to :c:type:`media_entity` of the sink pad.”h]”(hŒ pointer to ”…”�”}”(hjÏ�h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hjÙ�h]”hŒ media_entity”…”�”}”(hjÛ�h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj×�ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_entity”uh1hh³jË�h´M÷hjÏ�ubhŒ of the sink pad.”…”�”}”(hjÏ�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jË�h´M÷hjÌ�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj°�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jË�h´M÷hj�ubjà )�”}”(hŒ;``u16 sink_pad`` number of the sink pad in the pads array. ”h]”(jæ )�”}”(hŒ``u16 sink_pad``”h]”j’)�”}”(hjžh]”hŒ u16 sink_pad”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjžubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Møhj žubj)�”}”(hhh]”hï)�”}”(hŒ)number of the sink pad in the pads array.”h]”hŒ)number of the sink pad in the pads array.”…”�”}”(hj+žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j'žh´Møhj(žubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj žubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j'žh´Møhj�ubjà )�”}”(hŒx``u32 flags`` Link flags, as defined in :ref:`include/uapi/linux/media.h ` ( seek for ``MEDIA_LNK_FL_*``) ”h]”(jæ )�”}”(hŒ ``u32 flags``”h]”j’)�”}”(hjKžh]”hŒ u32 flags”…”�”}”(hjMžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjIžubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MûhjEžubj)�”}”(hhh]”hï)�”}”(hŒiLink flags, as defined in :ref:`include/uapi/linux/media.h ` ( seek for ``MEDIA_LNK_FL_*``)”h]”(hŒLink flags, as defined in ”…”�”}”(hjdžh²hh³Nh´Nubh)�”}”(hŒ0:ref:`include/uapi/linux/media.h `”h]”hý)�”}”(hjnžh]”hŒinclude/uapi/linux/media.h”…”�”}”(hjpžh²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1hühjlžubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jzžŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjŒ media_header”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MùhjdžubhŒ ( seek for ”…”�”}”(hjdžh²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_LNK_FL_*``”h]”hŒMEDIA_LNK_FL_*”…”�”}”(hj‘žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjdžubhŒ)”…”�”}”(hjdžh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŒžh´Mùhjažubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjEžubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j`žh´Mûhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjüœubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj½žh]”hŒ Description”…”�”}”(hj¿žh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj»žubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mýhjüœubhï)�”}”(hŒValid values for flags:”h]”hŒValid values for flags:”…”�”}”(hjÓžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MühjüœubjÛ )�”}”(hhh]”(jà )�”}”(hŒ¹``MEDIA_LNK_FL_ENABLED`` Indicates that the link is enabled and can be used to transfer media data. When two or more links target a sink pad, only one of them can be enabled at a time. ”h]”(jæ )�”}”(hŒ``MEDIA_LNK_FL_ENABLED``”h]”j’)�”}”(hjëžh]”hŒMEDIA_LNK_FL_ENABLED”…”�”}”(hjížh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjéžubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjåžubj)�”}”(hhh]”hï)�”}”(hŒŸIndicates that the link is enabled and can be used to transfer media data. When two or more links target a sink pad, only one of them can be enabled at a time.”h]”hŒŸIndicates that the link is enabled and can be used to transfer media data. When two or more links target a sink pad, only one of them can be enabled at a time.”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÿhjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjåžubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jŸh´Mhjâžubjà )�”}”(hŒà``MEDIA_LNK_FL_IMMUTABLE`` Indicates that the link enabled state can't be modified at runtime. If ``MEDIA_LNK_FL_IMMUTABLE`` is set, then ``MEDIA_LNK_FL_ENABLED`` must also be set, since an immutable link is always enabled. ”h]”(jæ )�”}”(hŒ``MEDIA_LNK_FL_IMMUTABLE``”h]”j’)�”}”(hj%Ÿh]”hŒMEDIA_LNK_FL_IMMUTABLE”…”�”}”(hj'Ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj#Ÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjŸubj)�”}”(hhh]”hï)�”}”(hŒÄIndicates that the link enabled state can't be modified at runtime. If ``MEDIA_LNK_FL_IMMUTABLE`` is set, then ``MEDIA_LNK_FL_ENABLED`` must also be set, since an immutable link is always enabled.”h]”(hŒIIndicates that the link enabled state can’t be modified at runtime. If ”…”�”}”(hj>Ÿh²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_LNK_FL_IMMUTABLE``”h]”hŒMEDIA_LNK_FL_IMMUTABLE”…”�”}”(hjFŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj>ŸubhŒ is set, then ”…”�”}”(hj>Ÿh²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_LNK_FL_ENABLED``”h]”hŒMEDIA_LNK_FL_ENABLED”…”�”}”(hjXŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj>ŸubhŒ= must also be set, since an immutable link is always enabled.”…”�”}”(hj>Ÿh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj;Ÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjŸubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j:Ÿh´Mhjâžubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjüœubj¬)�”}”(hŒ„Before calling this function, media_entity_pads_init() and media_device_register_entity() should be called previously for both ends.”h]”hï)�”}”(hŒ„Before calling this function, media_entity_pads_init() and media_device_register_entity() should be called previously for both ends.”h]”hŒ„Before calling this function, media_entity_pads_init() and media_device_register_entity() should be called previously for both ends.”…”�”}”(hj‡Ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hjƒŸubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjüœubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ#media_create_pad_links (C function)”Œc.media_create_pad_links”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒþint media_create_pad_links (const struct media_device *mdev, const u32 source_function, struct media_entity *source, const u16 source_pad, const u32 sink_function, struct media_entity *sink, const u16 sink_pad, u32 flags, const bool allow_both_undefined)”h]”j )�”}”(hŒýint media_create_pad_links(const struct media_device *mdev, const u32 source_function, struct media_entity *source, const u16 source_pad, const u32 sink_function, struct media_entity *sink, const u16 sink_pad, u32 flags, const bool allow_both_undefined)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hj¼Ÿh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj¸Ÿh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËŸh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¸Ÿh²hh³jÊŸh´Mubj8 )�”}”(hŒmedia_create_pad_links”h]”j> )�”}”(hŒmedia_create_pad_links”h]”hŒmedia_create_pad_links”…”�”}”(hjÝŸh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÙŸubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj¸Ÿh²hh³jÊŸh´Mubj˜)�”}”(hŒã(const struct media_device *mdev, const u32 source_function, struct media_entity *source, const u16 source_pad, const u32 sink_function, struct media_entity *sink, const u16 sink_pad, u32 flags, const bool allow_both_undefined)”h]”(jž)�”}”(hŒconst struct media_device *mdev”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hjùŸh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjõŸubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjõŸubj )�”}”(hj h]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjõŸubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj! h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjõŸubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hj2 h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj/ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j4 Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jߟsbŒc.media_create_pad_links”†”asbuh1hhjõŸubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjR h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjõŸubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj` h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjõŸubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hjm h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjõŸubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjñŸubjž)�”}”(hŒconst u32 source_function”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hj† h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj‚ ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“ h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj‚ ubh)�”}”(hhh]”j> )�”}”(hŒu32”h]”hŒu32”…”�”}”(hj¤ h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¡ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j¦ Œmodname”NŒ classname”Njäjç)�”}”jê]”jN Œc.media_create_pad_links”†”asbuh1hhj‚ ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj‚ ubj> )�”}”(hŒsource_function”h]”hŒsource_function”…”�”}”(hjРh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj‚ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjñŸubjž)�”}”(hŒstruct media_entity *source”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjé h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjå ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjö h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjå ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j ¡Œmodname”NŒ classname”Njäjç)�”}”jê]”jN Œc.media_create_pad_links”†”asbuh1hhjå ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj%¡h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjå ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj3¡h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjå ubj> )�”}”(hŒsource”h]”hŒsource”…”�”}”(hj@¡h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjå ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjñŸubjž)�”}”(hŒconst u16 source_pad”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hjY¡h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjU¡ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjf¡h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjU¡ubh)�”}”(hhh]”j> )�”}”(hŒu16”h]”hŒu16”…”�”}”(hjw¡h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjt¡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jy¡Œmodname”NŒ classname”Njäjç)�”}”jê]”jN Œc.media_create_pad_links”†”asbuh1hhjU¡ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•¡h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjU¡ubj> )�”}”(hŒ source_pad”h]”hŒ source_pad”…”�”}”(hj£¡h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjU¡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjñŸubjž)�”}”(hŒconst u32 sink_function”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hj¼¡h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj¸¡ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉ¡h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¸¡ubh)�”}”(hhh]”j> )�”}”(hŒu32”h]”hŒu32”…”�”}”(hjÚ¡h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjסubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jÜ¡Œmodname”NŒ classname”Njäjç)�”}”jê]”jN Œc.media_create_pad_links”†”asbuh1hhj¸¡ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjø¡h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¸¡ubj> )�”}”(hŒ sink_function”h]”hŒ sink_function”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¸¡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjñŸubjž)�”}”(hŒstruct media_entity *sink”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj¢ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,¢h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¢ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hj=¢h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj:¢ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j?¢Œmodname”NŒ classname”Njäjç)�”}”jê]”jN Œc.media_create_pad_links”†”asbuh1hhj¢ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[¢h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¢ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hji¢h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj¢ubj> )�”}”(hŒsink”h]”hŒsink”…”�”}”(hjv¢h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¢ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjñŸubjž)�”}”(hŒconst u16 sink_pad”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hj�¢h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj‹¢ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœ¢h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj‹¢ubh)�”}”(hhh]”j> )�”}”(hŒu16”h]”hŒu16”…”�”}”(hj­¢h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjª¢ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j¯¢Œmodname”NŒ classname”Njäjç)�”}”jê]”jN Œc.media_create_pad_links”†”asbuh1hhj‹¢ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjË¢h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj‹¢ubj> )�”}”(hŒsink_pad”h]”hŒsink_pad”…”�”}”(hjÙ¢h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj‹¢ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjñŸubjž)�”}”(hŒ u32 flags”h]”(h)�”}”(hhh]”j> )�”}”(hŒu32”h]”hŒu32”…”�”}”(hjõ¢h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjò¢ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j÷¢Œmodname”NŒ classname”Njäjç)�”}”jê]”jN Œc.media_create_pad_links”†”asbuh1hhjî¢ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjî¢ubj> )�”}”(hŒflags”h]”hŒflags”…”�”}”(hj!£h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjî¢ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjñŸubjž)�”}”(hŒconst bool allow_both_undefined”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hj:£h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj6£ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjG£h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj6£ubj`)�”}”(hjJsh]”hŒbool”…”�”}”(hjU£h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj6£ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjb£h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj6£ubj> )�”}”(hŒallow_both_undefined”h]”hŒallow_both_undefined”…”�”}”(hjp£h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj6£ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjñŸubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj¸Ÿh²hh³jÊŸh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj´Ÿh²hh³jÊŸh´Mubah}”(h]”j¯Ÿah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÊŸh´Mhj±Ÿh²hubjj )�”}”(hhh]”hï)�”}”(hŒ$creates a link between two entities.”h]”hŒ$creates a link between two entities.”…”�”}”(hjš£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj—£h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj±Ÿh²hh³jÊŸh´Mubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j²£jŒ j²£j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXC**Parameters** ``const struct media_device *mdev`` Pointer to the media_device that contains the object ``const u32 source_function`` Function of the source entities. Used only if **source** is NULL. ``struct media_entity *source`` pointer to :c:type:`media_entity` of the source pad. If NULL, it will use all entities that matches the **sink_function**. ``const u16 source_pad`` number of the source pad in the pads array ``const u32 sink_function`` Function of the sink entities. Used only if **sink** is NULL. ``struct media_entity *sink`` pointer to :c:type:`media_entity` of the sink pad. If NULL, it will use all entities that matches the **sink_function**. ``const u16 sink_pad`` number of the sink pad in the pads array. ``u32 flags`` Link flags, as defined in include/uapi/linux/media.h. ``const bool allow_both_undefined`` if ``true``, then both **source** and **sink** can be NULL. In such case, it will create a crossbar between all entities that matches **source_function** to all entities that matches **sink_function**. If ``false``, it will return 0 and won't create any link if both **source** and **sink** are NULL. **Description** Valid values for flags: A ``MEDIA_LNK_FL_ENABLED`` flag indicates that the link is enabled and can be used to transfer media data. If multiple links are created and this flag is passed as an argument, only the first created link will have this flag. A ``MEDIA_LNK_FL_IMMUTABLE`` flag indicates that the link enabled state can't be modified at runtime. If ``MEDIA_LNK_FL_IMMUTABLE`` is set, then ``MEDIA_LNK_FL_ENABLED`` must also be set since an immutable link is always enabled. It is common for some devices to have multiple source and/or sink entities of the same type that should be linked. While media_create_pad_link() creates link by link, this function is meant to allow 1:n, n:1 and even cross-bar (n:n) links. .. note:: Before calling this function, media_entity_pads_init() and media_device_register_entity() should be called previously for the entities to be linked.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj¼£h]”hŒ Parameters”…”�”}”(hj¾£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjº£ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj¶£ubjÛ )�”}”(hhh]”(jà )�”}”(hŒY``const struct media_device *mdev`` Pointer to the media_device that contains the object ”h]”(jæ )�”}”(hŒ#``const struct media_device *mdev``”h]”j’)�”}”(hjÛ£h]”hŒconst struct media_device *mdev”…”�”}”(hjÝ£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÙ£ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjÕ£ubj)�”}”(hhh]”hï)�”}”(hŒ4Pointer to the media_device that contains the object”h]”hŒ4Pointer to the media_device that contains the object”…”�”}”(hjô£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jð£h´Mhjñ£ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÕ£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jð£h´MhjÒ£ubjà )�”}”(hŒ```const u32 source_function`` Function of the source entities. Used only if **source** is NULL. ”h]”(jæ )�”}”(hŒ``const u32 source_function``”h]”j’)�”}”(hj¤h]”hŒconst u32 source_function”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj¤ubj)�”}”(hhh]”hï)�”}”(hŒAFunction of the source entities. Used only if **source** is NULL.”h]”(hŒ.Function of the source entities. Used only if ”…”�”}”(hj-¤h²hh³Nh´Nubj')�”}”(hŒ **source**”h]”hŒsource”…”�”}”(hj5¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj-¤ubhŒ is NULL.”…”�”}”(hj-¤h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj*¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j)¤h´MhjÒ£ubjà )�”}”(hŒ›``struct media_entity *source`` pointer to :c:type:`media_entity` of the source pad. If NULL, it will use all entities that matches the **sink_function**. ”h]”(jæ )�”}”(hŒ``struct media_entity *source``”h]”j’)�”}”(hj`¤h]”hŒstruct media_entity *source”…”�”}”(hjb¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj^¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjZ¤ubj)�”}”(hhh]”hï)�”}”(hŒzpointer to :c:type:`media_entity` of the source pad. If NULL, it will use all entities that matches the **sink_function**.”h]”(hŒ pointer to ”…”�”}”(hjy¤h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hjƒ¤h]”hŒ media_entity”…”�”}”(hj…¤h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj�¤ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_entity”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjy¤ubhŒG of the source pad. If NULL, it will use all entities that matches the ”…”�”}”(hjy¤h²hh³Nh´Nubj')�”}”(hŒ**sink_function**”h]”hŒ sink_function”…”�”}”(hj¥¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjy¤ubhŒ.”…”�”}”(hjy¤h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j ¤h´Mhjv¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjZ¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³ju¤h´MhjÒ£ubjà )�”}”(hŒD``const u16 source_pad`` number of the source pad in the pads array ”h]”(jæ )�”}”(hŒ``const u16 source_pad``”h]”j’)�”}”(hjϤh]”hŒconst u16 source_pad”…”�”}”(hjѤh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjͤubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjɤubj)�”}”(hhh]”hï)�”}”(hŒ*number of the source pad in the pads array”h]”hŒ*number of the source pad in the pads array”…”�”}”(hjè¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jä¤h´Mhjå¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjɤubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jä¤h´MhjÒ£ubjà )�”}”(hŒZ``const u32 sink_function`` Function of the sink entities. Used only if **sink** is NULL. ”h]”(jæ )�”}”(hŒ``const u32 sink_function``”h]”j’)�”}”(hj¥h]”hŒconst u32 sink_function”…”�”}”(hj ¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj¥ubj)�”}”(hhh]”hï)�”}”(hŒ=Function of the sink entities. Used only if **sink** is NULL.”h]”(hŒ,Function of the sink entities. Used only if ”…”�”}”(hj!¥h²hh³Nh´Nubj')�”}”(hŒ**sink**”h]”hŒsink”…”�”}”(hj)¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj!¥ubhŒ is NULL.”…”�”}”(hj!¥h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¥h´Mhj¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j¥h´MhjÒ£ubjà )�”}”(hŒ—``struct media_entity *sink`` pointer to :c:type:`media_entity` of the sink pad. If NULL, it will use all entities that matches the **sink_function**. ”h]”(jæ )�”}”(hŒ``struct media_entity *sink``”h]”j’)�”}”(hjS¥h]”hŒstruct media_entity *sink”…”�”}”(hjU¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjQ¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjM¥ubj)�”}”(hhh]”hï)�”}”(hŒxpointer to :c:type:`media_entity` of the sink pad. If NULL, it will use all entities that matches the **sink_function**.”h]”(hŒ pointer to ”…”�”}”(hjl¥h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hjv¥h]”hŒ media_entity”…”�”}”(hjx¥h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjt¥ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_entity”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjl¥ubhŒE of the sink pad. If NULL, it will use all entities that matches the ”…”�”}”(hjl¥h²hh³Nh´Nubj')�”}”(hŒ**sink_function**”h]”hŒ sink_function”…”�”}”(hj˜¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjl¥ubhŒ.”…”�”}”(hjl¥h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j“¥h´Mhji¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjM¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jh¥h´MhjÒ£ubjà )�”}”(hŒA``const u16 sink_pad`` number of the sink pad in the pads array. ”h]”(jæ )�”}”(hŒ``const u16 sink_pad``”h]”j’)�”}”(hjÂ¥h]”hŒconst u16 sink_pad”…”�”}”(hjÄ¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÀ¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj¼¥ubj)�”}”(hhh]”hï)�”}”(hŒ)number of the sink pad in the pads array.”h]”hŒ)number of the sink pad in the pads array.”…”�”}”(hjÛ¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j×¥h´MhjØ¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¼¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j×¥h´MhjÒ£ubjà )�”}”(hŒD``u32 flags`` Link flags, as defined in include/uapi/linux/media.h. ”h]”(jæ )�”}”(hŒ ``u32 flags``”h]”j’)�”}”(hjû¥h]”hŒ u32 flags”…”�”}”(hjý¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjù¥ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjõ¥ubj)�”}”(hhh]”hï)�”}”(hŒ5Link flags, as defined in include/uapi/linux/media.h.”h]”hŒ5Link flags, as defined in include/uapi/linux/media.h.”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¦h´Mhj¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjõ¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j¦h´MhjÒ£ubjà )�”}”(hXQ``const bool allow_both_undefined`` if ``true``, then both **source** and **sink** can be NULL. In such case, it will create a crossbar between all entities that matches **source_function** to all entities that matches **sink_function**. If ``false``, it will return 0 and won't create any link if both **source** and **sink** are NULL. ”h]”(jæ )�”}”(hŒ#``const bool allow_both_undefined``”h]”j’)�”}”(hj4¦h]”hŒconst bool allow_both_undefined”…”�”}”(hj6¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj2¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M$hj.¦ubj)�”}”(hhh]”hï)�”}”(hX,if ``true``, then both **source** and **sink** can be NULL. In such case, it will create a crossbar between all entities that matches **source_function** to all entities that matches **sink_function**. If ``false``, it will return 0 and won't create any link if both **source** and **sink** are NULL.”h]”(hŒif ”…”�”}”(hjM¦h²hh³Nh´Nubj’)�”}”(hŒ``true``”h]”hŒtrue”…”�”}”(hjU¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjM¦ubhŒ , then both ”…”�”}”(hjM¦h²hh³Nh´Nubj')�”}”(hŒ **source**”h]”hŒsource”…”�”}”(hjg¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjM¦ubhŒ and ”…”�”}”(hjM¦h²hh³Nh´Nubj')�”}”(hŒ**sink**”h]”hŒsink”…”�”}”(hjy¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjM¦ubhŒX can be NULL. In such case, it will create a crossbar between all entities that matches ”…”�”}”(hjM¦h²hh³Nh´Nubj')�”}”(hŒ**source_function**”h]”hŒsource_function”…”�”}”(hj‹¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjM¦ubhŒ to all entities that matches ”…”�”}”(hjM¦h²hh³Nh´Nubj')�”}”(hŒ**sink_function**”h]”hŒ sink_function”…”�”}”(hj�¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjM¦ubhŒ. If ”…”�”}”(hjM¦h²hh³Nh´Nubj’)�”}”(hŒ ``false``”h]”hŒfalse”…”�”}”(hj¯¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjM¦ubhŒ7, it will return 0 and won’t create any link if both ”…”�”}”(hjM¦h²hh³Nh´Nubj')�”}”(hŒ **source**”h]”hŒsource”…”�”}”(hjÁ¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjM¦ubhŒ and ”…”�”}”(hjM¦h²hh³Nh´Nubj')�”}”(hŒ**sink**”h]”hŒsink”…”�”}”(hjÓ¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjM¦ubhŒ are NULL.”…”�”}”(hjM¦h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hjJ¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj.¦ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jI¦h´M$hjÒ£ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj¶£ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj§h]”hŒ Description”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjþ¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M&hj¶£ubhï)�”}”(hŒValid values for flags:”h]”hŒValid values for flags:”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M%hj¶£ubjÛ )�”}”(hhh]”(jà )�”}”(hŒâA ``MEDIA_LNK_FL_ENABLED`` flag indicates that the link is enabled and can be used to transfer media data. If multiple links are created and this flag is passed as an argument, only the first created link will have this flag. ”h]”(jæ )�”}”(hŒMA ``MEDIA_LNK_FL_ENABLED`` flag indicates that the link is enabled and can be”h]”(hŒA ”…”�”}”(hj,§h²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_LNK_FL_ENABLED``”h]”hŒMEDIA_LNK_FL_ENABLED”…”�”}”(hj4§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj,§ubhŒ3 flag indicates that the link is enabled and can be”…”�”}”(hj,§h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M*hj(§ubj)�”}”(hhh]”hï)�”}”(hŒ“used to transfer media data. If multiple links are created and this flag is passed as an argument, only the first created link will have this flag.”h]”hŒ“used to transfer media data. If multiple links are created and this flag is passed as an argument, only the first created link will have this flag.”…”�”}”(hjP§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M(hjM§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj(§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jL§h´M*hj%§ubjà )�”}”(hŒæA ``MEDIA_LNK_FL_IMMUTABLE`` flag indicates that the link enabled state can't be modified at runtime. If ``MEDIA_LNK_FL_IMMUTABLE`` is set, then ``MEDIA_LNK_FL_ENABLED`` must also be set since an immutable link is always enabled. ”h]”(jæ )�”}”(hŒMA ``MEDIA_LNK_FL_IMMUTABLE`` flag indicates that the link enabled state can't”h]”(hŒA ”…”�”}”(hjo§h²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_LNK_FL_IMMUTABLE``”h]”hŒMEDIA_LNK_FL_IMMUTABLE”…”�”}”(hjw§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjo§ubhŒ3 flag indicates that the link enabled state can’t”…”�”}”(hjo§h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M/hjk§ubj)�”}”(hhh]”hï)�”}”(hŒ—be modified at runtime. If ``MEDIA_LNK_FL_IMMUTABLE`` is set, then ``MEDIA_LNK_FL_ENABLED`` must also be set since an immutable link is always enabled.”h]”(hŒbe modified at runtime. If ”…”�”}”(hj“§h²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_LNK_FL_IMMUTABLE``”h]”hŒMEDIA_LNK_FL_IMMUTABLE”…”�”}”(hj›§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj“§ubhŒ is set, then ”…”�”}”(hj“§h²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_LNK_FL_ENABLED``”h]”hŒMEDIA_LNK_FL_ENABLED”…”�”}”(hj­§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj“§ubhŒ< must also be set since an immutable link is always enabled.”…”�”}”(hj“§h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M-hj�§ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjk§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j�§h´M/hj%§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj¶£ubhï)�”}”(hŒïIt is common for some devices to have multiple source and/or sink entities of the same type that should be linked. While media_create_pad_link() creates link by link, this function is meant to allow 1:n, n:1 and even cross-bar (n:n) links.”h]”hŒïIt is common for some devices to have multiple source and/or sink entities of the same type that should be linked. While media_create_pad_link() creates link by link, this function is meant to allow 1:n, n:1 and even cross-bar (n:n) links.”…”�”}”(hjاh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M1hj¶£ubj¬)�”}”(hŒ”Before calling this function, media_entity_pads_init() and media_device_register_entity() should be called previously for the entities to be linked.”h]”hï)�”}”(hŒ”Before calling this function, media_entity_pads_init() and media_device_register_entity() should be called previously for the entities to be linked.”h]”hŒ”Before calling this function, media_entity_pads_init() and media_device_register_entity() should be called previously for the entities to be linked.”…”�”}”(hjë§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M8hjç§ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj¶£ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ&media_entity_remove_links (C function)”Œc.media_entity_remove_links”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ )�”}”(hŒmedia_entity_remove_links”h]”hŒmedia_entity_remove_links”…”�”}”(hjA¨h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj=¨ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj¨h²hh³j.¨h´MJubj˜)�”}”(hŒ(struct media_entity *entity)”h]”jž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj]¨h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjY¨ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj¨h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjY¨ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hj{¨h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjx¨ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j}¨Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jC¨sbŒc.media_entity_remove_links”†”asbuh1hhjY¨ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj›¨h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjY¨ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj©¨h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjY¨ubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hj¶¨h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjY¨ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjU¨ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj¨h²hh³j.¨h´MJubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj¨h²hh³j.¨h´MJubah}”(h]”j¨ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j.¨h´MJhj¨h²hubjj )�”}”(hhh]”hï)�”}”(hŒ*remove all links associated with an entity”h]”hŒ*remove all links associated with an entity”…”�”}”(hjà¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MJhjݨh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj¨h²hh³j.¨h´MJubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jø¨jŒ jø¨j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒÖ**Parameters** ``struct media_entity *entity`` pointer to :c:type:`media_entity` **Description** .. note:: This is called automatically when an entity is unregistered via media_device_register_entity().”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj©h]”hŒ Parameters”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MNhjü¨ubjÛ )�”}”(hhh]”jà )�”}”(hŒB``struct media_entity *entity`` pointer to :c:type:`media_entity` ”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hj!©h]”hŒstruct media_entity *entity”…”�”}”(hj#©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MLhj©ubj)�”}”(hhh]”hï)�”}”(hŒ!pointer to :c:type:`media_entity`”h]”(hŒ pointer to ”…”�”}”(hj:©h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hjD©h]”hŒ media_entity”…”�”}”(hjF©h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjB©ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_entity”uh1hh³j6©h´MLhj:©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j6©h´MLhj7©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j6©h´MLhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjü¨ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj{©h]”hŒ Description”…”�”}”(hj}©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjy©ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MNhjü¨ubj¬)�”}”(hŒ_This is called automatically when an entity is unregistered via media_device_register_entity().”h]”hï)�”}”(hŒ_This is called automatically when an entity is unregistered via media_device_register_entity().”h]”hŒ_This is called automatically when an entity is unregistered via media_device_register_entity().”…”�”}”(hj•©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MOhj‘©ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjü¨ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ&__media_entity_setup_link (C function)”Œc.__media_entity_setup_link”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒBint __media_entity_setup_link (struct media_link *link, u32 flags)”h]”j )�”}”(hŒAint __media_entity_setup_link(struct media_link *link, u32 flags)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hjÊ©h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjÆ©h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MVubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙ©h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÆ©h²hh³jØ©h´MVubj8 )�”}”(hŒ__media_entity_setup_link”h]”j> )�”}”(hŒ__media_entity_setup_link”h]”hŒ__media_entity_setup_link”…”�”}”(hjë©h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjç©ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÆ©h²hh³jØ©h´MVubj˜)�”}”(hŒ$(struct media_link *link, u32 flags)”h]”(jž)�”}”(hŒstruct media_link *link”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjªubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjªubh)�”}”(hhh]”j> )�”}”(hŒ media_link”h]”hŒ media_link”…”�”}”(hj%ªh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj"ªubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j'ªŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jí©sbŒc.__media_entity_setup_link”†”asbuh1hhjªubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjEªh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjªubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjSªh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjªubj> )�”}”(hŒlink”h]”hŒlink”…”�”}”(hj`ªh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjªubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÿ©ubjž)�”}”(hŒ u32 flags”h]”(h)�”}”(hhh]”j> )�”}”(hŒu32”h]”hŒu32”…”�”}”(hj|ªh²hh³Nh´Nubah}”(h]”h ]”jI a•h"]”h$]”h&]”uh1j= hjyªubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j~ªŒmodname”NŒ classname”Njäjç)�”}”jê]”jAªŒc.__media_entity_setup_link”†”asbuh1hhjuªubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjšªh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjuªubj> )�”}”(hŒflags”h]”hŒflags”…”�”}”(hj¨ªh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjuªubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÿ©ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjÆ©h²hh³jØ©h´MVubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj©h²hh³jØ©h´MVubah}”(h]”j½©ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jØ©h´MVhj¿©h²hubjj )�”}”(hhh]”hï)�”}”(hŒ&Configure a media link without locking”h]”hŒ&Configure a media link without locking”…”�”}”(hjÒªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MVhjϪh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj¿©h²hh³jØ©h´MVubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jêªjŒ jêªj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXö**Parameters** ``struct media_link *link`` The link being configured ``u32 flags`` Link configuration flags **Description** The bulk of link setup is handled by the two entities connected through the link. This function notifies both entities of the link configuration change. If the link is immutable or if the current and new configuration are identical, return immediately. The user is expected to hold link->source->parent->mutex. If not, media_entity_setup_link() should be used instead.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjôªh]”hŒ Parameters”…”�”}”(hjöªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjòªubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MZhjîªubjÛ )�”}”(hhh]”(jà )�”}”(hŒ6``struct media_link *link`` The link being configured ”h]”(jæ )�”}”(hŒ``struct media_link *link``”h]”j’)�”}”(hj«h]”hŒstruct media_link *link”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MWhj «ubj)�”}”(hhh]”hï)�”}”(hŒThe link being configured”h]”hŒThe link being configured”…”�”}”(hj,«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j(«h´MWhj)«ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj «ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j(«h´MWhj «ubjà )�”}”(hŒ'``u32 flags`` Link configuration flags ”h]”(jæ )�”}”(hŒ ``u32 flags``”h]”j’)�”}”(hjL«h]”hŒ u32 flags”…”�”}”(hjN«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjJ«ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MXhjF«ubj)�”}”(hhh]”hï)�”}”(hŒLink configuration flags”h]”hŒLink configuration flags”…”�”}”(hje«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ja«h´MXhjb«ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjF«ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³ja«h´MXhj «ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjîªubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj‡«h]”hŒ Description”…”�”}”(hj‰«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj…«ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MZhjîªubhï)�”}”(hŒ˜The bulk of link setup is handled by the two entities connected through the link. This function notifies both entities of the link configuration change.”h]”hŒ˜The bulk of link setup is handled by the two entities connected through the link. This function notifies both entities of the link configuration change.”…”�”}”(hj�«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MYhjîªubhï)�”}”(hŒcIf the link is immutable or if the current and new configuration are identical, return immediately.”h]”hŒcIf the link is immutable or if the current and new configuration are identical, return immediately.”…”�”}”(hj¬«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M\hjîªubhï)�”}”(hŒsThe user is expected to hold link->source->parent->mutex. If not, media_entity_setup_link() should be used instead.”h]”hŒsThe user is expected to hold link->source->parent->mutex. If not, media_entity_setup_link() should be used instead.”…”�”}”(hj»«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M_hjîªubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ$media_entity_setup_link (C function)”Œc.media_entity_setup_link”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ@int media_entity_setup_link (struct media_link *link, u32 flags)”h]”j )�”}”(hŒ?int media_entity_setup_link(struct media_link *link, u32 flags)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hjê«h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjæ«h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mfubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjù«h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjæ«h²hh³jø«h´Mfubj8 )�”}”(hŒmedia_entity_setup_link”h]”j> )�”}”(hŒmedia_entity_setup_link”h]”hŒmedia_entity_setup_link”…”�”}”(hj ¬h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¬ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjæ«h²hh³jø«h´Mfubj˜)�”}”(hŒ$(struct media_link *link, u32 flags)”h]”(jž)�”}”(hŒstruct media_link *link”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj'¬h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj#¬ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj4¬h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj#¬ubh)�”}”(hhh]”j> )�”}”(hŒ media_link”h]”hŒ media_link”…”�”}”(hjE¬h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjB¬ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jG¬Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j ¬sbŒc.media_entity_setup_link”†”asbuh1hhj#¬ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hje¬h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj#¬ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjs¬h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj#¬ubj> )�”}”(hŒlink”h]”hŒlink”…”�”}”(hj€¬h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj#¬ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj¬ubjž)�”}”(hŒ u32 flags”h]”(h)�”}”(hhh]”j> )�”}”(hŒu32”h]”hŒu32”…”�”}”(hjœ¬h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj™¬ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jž¬Œmodname”NŒ classname”Njäjç)�”}”jê]”ja¬Œc.media_entity_setup_link”†”asbuh1hhj•¬ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjº¬h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj•¬ubj> )�”}”(hŒflags”h]”hŒflags”…”�”}”(hjȬh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj•¬ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj¬ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjæ«h²hh³jø«h´Mfubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjâ«h²hh³jø«h´Mfubah}”(h]”jÝ«ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jø«h´Mfhjß«h²hubjj )�”}”(hhh]”hï)�”}”(hŒ,changes the link flags properties in runtime”h]”hŒ,changes the link flags properties in runtime”…”�”}”(hjò¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mfhjï¬h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjß«h²hh³jø«h´Mfubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j ­jŒ j ­j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX**Parameters** ``struct media_link *link`` pointer to :c:type:`media_link` ``u32 flags`` the requested new link flags **Description** The only configurable property is the ``MEDIA_LNK_FL_ENABLED`` link flag to enable/disable a link. Links marked with the ``MEDIA_LNK_FL_IMMUTABLE`` link flag can not be enabled or disabled. When a link is enabled or disabled, the media framework calls the link_setup operation for the two entities at the source and sink of the link, in that order. If the second link_setup call fails, another link_setup call is made on the first entity to restore the original link flags. Media device drivers can be notified of link setup operations by setting the :c:type:`media_device.link_notify ` pointer to a callback function. If provided, the notification callback will be called before enabling and after disabling links. Entity drivers must implement the link_setup operation if any of their links is non-immutable. The operation must either configure the hardware or store the configuration information to be applied later. Link configuration must not have any side effect on other links. If an enabled link at a sink pad prevents another link at the same pad from being enabled, the link_setup operation must return ``-EBUSY`` and can't implicitly disable the first enabled link. .. note:: The valid values of the flags for the link is the same as described on media_create_pad_link(), for pad to pad links or the same as described on media_create_intf_link(), for interface to entity links.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj­h]”hŒ Parameters”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mjhj­ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ<``struct media_link *link`` pointer to :c:type:`media_link` ”h]”(jæ )�”}”(hŒ``struct media_link *link``”h]”j’)�”}”(hj3­h]”hŒstruct media_link *link”…”�”}”(hj5­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj1­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhhj-­ubj)�”}”(hhh]”hï)�”}”(hŒpointer to :c:type:`media_link`”h]”(hŒ pointer to ”…”�”}”(hjL­h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_link`”h]”j’)�”}”(hjV­h]”hŒ media_link”…”�”}”(hjX­h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjT­ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_link”uh1hh³jH­h´MhhjL­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jH­h´MhhjI­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj-­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jH­h´Mhhj*­ubjà )�”}”(hŒ+``u32 flags`` the requested new link flags ”h]”(jæ )�”}”(hŒ ``u32 flags``”h]”j’)�”}”(hj‹­h]”hŒ u32 flags”…”�”}”(hj�­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj‰­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mihj…­ubj)�”}”(hhh]”hï)�”}”(hŒthe requested new link flags”h]”hŒthe requested new link flags”…”�”}”(hj¤­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j ­h´Mihj¡­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj…­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j ­h´Mihj*­ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj­ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjÆ­h]”hŒ Description”…”�”}”(hjÈ­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÄ­ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mkhj­ubhï)�”}”(hŒ½The only configurable property is the ``MEDIA_LNK_FL_ENABLED`` link flag to enable/disable a link. Links marked with the ``MEDIA_LNK_FL_IMMUTABLE`` link flag can not be enabled or disabled.”h]”(hŒ&The only configurable property is the ”…”�”}”(hjÜ­h²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_LNK_FL_ENABLED``”h]”hŒMEDIA_LNK_FL_ENABLED”…”�”}”(hjä­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÜ­ubhŒ; link flag to enable/disable a link. Links marked with the ”…”�”}”(hjÜ­h²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_LNK_FL_IMMUTABLE``”h]”hŒMEDIA_LNK_FL_IMMUTABLE”…”�”}”(hjö­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÜ­ubhŒ* link flag can not be enabled or disabled.”…”�”}”(hjÜ­h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mjhj­ubhï)�”}”(hXWhen a link is enabled or disabled, the media framework calls the link_setup operation for the two entities at the source and sink of the link, in that order. If the second link_setup call fails, another link_setup call is made on the first entity to restore the original link flags.”h]”hXWhen a link is enabled or disabled, the media framework calls the link_setup operation for the two entities at the source and sink of the link, in that order. If the second link_setup call fails, another link_setup call is made on the first entity to restore the original link flags.”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mnhj­ubhï)�”}”(hŒÿMedia device drivers can be notified of link setup operations by setting the :c:type:`media_device.link_notify ` pointer to a callback function. If provided, the notification callback will be called before enabling and after disabling links.”h]”(hŒMMedia device drivers can be notified of link setup operations by setting the ”…”�”}”(hj®h²hh³Nh´Nubh)�”}”(hŒ1:c:type:`media_device.link_notify `”h]”j’)�”}”(hj(®h]”hŒmedia_device.link_notify”…”�”}”(hj*®h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj&®ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰jäjèjŒ media_device”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mthj®ubhŒ� pointer to a callback function. If provided, the notification callback will be called before enabling and after disabling links.”…”�”}”(hj®h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jE®h´Mthj­ubhï)�”}”(hŒËEntity drivers must implement the link_setup operation if any of their links is non-immutable. The operation must either configure the hardware or store the configuration information to be applied later.”h]”hŒËEntity drivers must implement the link_setup operation if any of their links is non-immutable. The operation must either configure the hardware or store the configuration information to be applied later.”…”�”}”(hjP®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Myhj­ubhï)�”}”(hXLink configuration must not have any side effect on other links. If an enabled link at a sink pad prevents another link at the same pad from being enabled, the link_setup operation must return ``-EBUSY`` and can't implicitly disable the first enabled link.”h]”(hŒÁLink configuration must not have any side effect on other links. If an enabled link at a sink pad prevents another link at the same pad from being enabled, the link_setup operation must return ”…”�”}”(hj_®h²hh³Nh´Nubj’)�”}”(hŒ ``-EBUSY``”h]”hŒ-EBUSY”…”�”}”(hjg®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj_®ubhŒ7 and can’t implicitly disable the first enabled link.”…”�”}”(hj_®h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M}hj­ubj¬)�”}”(hŒÉThe valid values of the flags for the link is the same as described on media_create_pad_link(), for pad to pad links or the same as described on media_create_intf_link(), for interface to entity links.”h]”hï)�”}”(hŒÉThe valid values of the flags for the link is the same as described on media_create_pad_link(), for pad to pad links or the same as described on media_create_intf_link(), for interface to entity links.”h]”hŒÉThe valid values of the flags for the link is the same as described on media_create_pad_link(), for pad to pad links or the same as described on media_create_intf_link(), for interface to entity links.”…”�”}”(hj„®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M„hj€®ubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj­ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ#media_entity_find_link (C function)”Œc.media_entity_find_link”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ]struct media_link * media_entity_find_link (struct media_pad *source, struct media_pad *sink)”h]”j )�”}”(hŒ[struct media_link *media_entity_find_link(struct media_pad *source, struct media_pad *sink)”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj¹®h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjµ®h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŒubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÇ®h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjµ®h²hh³jÆ®h´MŒubh)�”}”(hhh]”j> )�”}”(hŒ media_link”h]”hŒ media_link”…”�”}”(hjØ®h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÕ®ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jÚ®Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_entity_find_link”sbŒc.media_entity_find_link”†”asbuh1hhjµ®h²hh³jÆ®h´MŒubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjù®h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjµ®h²hh³jÆ®h´MŒubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjµ®h²hh³jÆ®h´MŒubj8 )�”}”(hŒmedia_entity_find_link”h]”j> )�”}”(hjö®h]”hŒmedia_entity_find_link”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¯ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjµ®h²hh³jÆ®h´MŒubj˜)�”}”(hŒ2(struct media_pad *source, struct media_pad *sink)”h]”(jž)�”}”(hŒstruct media_pad *source”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj3¯h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj/¯ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@¯h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj/¯ubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hjQ¯h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjN¯ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jS¯Œmodname”NŒ classname”Njäjç)�”}”jê]”jô®Œc.media_entity_find_link”†”asbuh1hhj/¯ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjo¯h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj/¯ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj}¯h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj/¯ubj> )�”}”(hŒsource”h]”hŒsource”…”�”}”(hjНh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj/¯ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj+¯ubjž)�”}”(hŒstruct media_pad *sink”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj£¯h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjŸ¯ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj°¯h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjŸ¯ubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hjÁ¯h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¾¯ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jïŒmodname”NŒ classname”Njäjç)�”}”jê]”jô®Œc.media_entity_find_link”†”asbuh1hhjŸ¯ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj߯h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjŸ¯ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjí¯h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjŸ¯ubj> )�”}”(hŒsink”h]”hŒsink”…”�”}”(hjú¯h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjŸ¯ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj+¯ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjµ®h²hh³jÆ®h´MŒubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj±®h²hh³jÆ®h´MŒubah}”(h]”j¬®ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÆ®h´MŒhj®®h²hubjj )�”}”(hhh]”hï)�”}”(hŒFind a link between two pads”h]”hŒFind a link between two pads”…”�”}”(hj$°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŒhj!°h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj®®h²hh³jÆ®h´MŒubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j<°jŒ j<°j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒÎ**Parameters** ``struct media_pad *source`` Source pad ``struct media_pad *sink`` Sink pad **Return** returns a pointer to the link between the two entities. If no such link exists, return ``NULL``.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjF°h]”hŒ Parameters”…”�”}”(hjH°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjD°ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�hj@°ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ(``struct media_pad *source`` Source pad ”h]”(jæ )�”}”(hŒ``struct media_pad *source``”h]”j’)�”}”(hje°h]”hŒstruct media_pad *source”…”�”}”(hjg°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjc°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�hj_°ubj)�”}”(hhh]”hï)�”}”(hŒ Source pad”h]”hŒ Source pad”…”�”}”(hj~°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jz°h´M�hj{°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj_°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jz°h´M�hj\°ubjà )�”}”(hŒ$``struct media_pad *sink`` Sink pad ”h]”(jæ )�”}”(hŒ``struct media_pad *sink``”h]”j’)�”}”(hjž°h]”hŒstruct media_pad *sink”…”�”}”(hj °h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjœ°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŽhj˜°ubj)�”}”(hhh]”hï)�”}”(hŒSink pad”h]”hŒSink pad”…”�”}”(hj·°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j³°h´MŽhj´°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj˜°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j³°h´MŽhj\°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj@°ubhï)�”}”(hŒ **Return**”h]”j')�”}”(hjÙ°h]”hŒReturn”…”�”}”(hjÛ°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj×°ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�hj@°ubhï)�”}”(hŒ`returns a pointer to the link between the two entities. If no such link exists, return ``NULL``.”h]”(hŒWreturns a pointer to the link between the two entities. If no such link exists, return ”…”�”}”(hjï°h²hh³Nh´Nubj’)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj÷°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjï°ubhŒ.”…”�”}”(hjï°h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�hj@°ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ'media_pad_remote_pad_first (C function)”Œc.media_pad_remote_pad_first”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒKstruct media_pad * media_pad_remote_pad_first (const struct media_pad *pad)”h]”j )�”}”(hŒIstruct media_pad *media_pad_remote_pad_first(const struct media_pad *pad)”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj0±h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj,±h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M—ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj>±h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj,±h²hh³j=±h´M—ubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hjO±h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjL±ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jQ±Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_pad_remote_pad_first”sbŒc.media_pad_remote_pad_first”†”asbuh1hhj,±h²hh³j=±h´M—ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjp±h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj,±h²hh³j=±h´M—ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj~±h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj,±h²hh³j=±h´M—ubj8 )�”}”(hŒmedia_pad_remote_pad_first”h]”j> )�”}”(hjm±h]”hŒmedia_pad_remote_pad_first”…”�”}”(hj�±h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj‹±ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj,±h²hh³j=±h´M—ubj˜)�”}”(hŒ(const struct media_pad *pad)”h]”jž)�”}”(hŒconst struct media_pad *pad”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hjª±h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj¦±ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·±h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¦±ubj )�”}”(hj h]”hŒstruct”…”�”}”(hjűh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj¦±ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒ±h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¦±ubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hjã±h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjà±ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j屌modname”NŒ classname”Njäjç)�”}”jê]”jk±Œc.media_pad_remote_pad_first”†”asbuh1hhj¦±ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¦±ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj¦±ubj> )�”}”(hŒpad”h]”hŒpad”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¦±ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj¢±ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj,±h²hh³j=±h´M—ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj(±h²hh³j=±h´M—ubah}”(h]”j#±ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j=±h´M—hj%±h²hubjj )�”}”(hhh]”hï)�”}”(hŒ.Find the first pad at the remote end of a link”h]”hŒ.Find the first pad at the remote end of a link”…”�”}”(hjF²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M—hjC²h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj%±h²hh³j=±h´M—ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j^²jŒ j^²j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX†**Parameters** ``const struct media_pad *pad`` Pad at the local end of the link **Description** Search for a remote pad connected to the given pad by iterating over all links originating or terminating at that pad until an enabled link is found. **Return** returns a pointer to the pad at the remote end of the first found enabled link, or ``NULL`` if no enabled link has been found.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjh²h]”hŒ Parameters”…”�”}”(hjj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjf²ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M›hjb²ubjÛ )�”}”(hhh]”jà )�”}”(hŒA``const struct media_pad *pad`` Pad at the local end of the link ”h]”(jæ )�”}”(hŒ``const struct media_pad *pad``”h]”j’)�”}”(hj‡²h]”hŒconst struct media_pad *pad”…”�”}”(hj‰²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj…²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M˜hj�²ubj)�”}”(hhh]”hï)�”}”(hŒ Pad at the local end of the link”h]”hŒ Pad at the local end of the link”…”�”}”(hj ²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jœ²h´M˜hj�²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj�²ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jœ²h´M˜hj~²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjb²ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj²h]”hŒ Description”…”�”}”(hjIJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÀ²ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mšhjb²ubhï)�”}”(hŒ•Search for a remote pad connected to the given pad by iterating over all links originating or terminating at that pad until an enabled link is found.”h]”hŒ•Search for a remote pad connected to the given pad by iterating over all links originating or terminating at that pad until an enabled link is found.”…”�”}”(hjزh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M™hjb²ubhï)�”}”(hŒ **Return**”h]”j')�”}”(hjé²h]”hŒReturn”…”�”}”(hjë²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjç²ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mœhjb²ubhï)�”}”(hŒ~returns a pointer to the pad at the remote end of the first found enabled link, or ``NULL`` if no enabled link has been found.”h]”(hŒSreturns a pointer to the pad at the remote end of the first found enabled link, or ”…”�”}”(hjÿ²h²hh³Nh´Nubj’)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÿ²ubhŒ# if no enabled link has been found.”…”�”}”(hjÿ²h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�hjb²ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ(media_pad_remote_pad_unique (C function)”Œc.media_pad_remote_pad_unique”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒLstruct media_pad * media_pad_remote_pad_unique (const struct media_pad *pad)”h]”j )�”}”(hŒJstruct media_pad *media_pad_remote_pad_unique(const struct media_pad *pad)”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj@³h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj<³h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M£ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjN³h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj<³h²hh³jM³h´M£ubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hj_³h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj\³ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”ja³Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_pad_remote_pad_unique”sbŒc.media_pad_remote_pad_unique”†”asbuh1hhj<³h²hh³jM³h´M£ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj€³h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj<³h²hh³jM³h´M£ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj޳h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj<³h²hh³jM³h´M£ubj8 )�”}”(hŒmedia_pad_remote_pad_unique”h]”j> )�”}”(hj}³h]”hŒmedia_pad_remote_pad_unique”…”�”}”(hjŸ³h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj›³ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj<³h²hh³jM³h´M£ubj˜)�”}”(hŒ(const struct media_pad *pad)”h]”jž)�”}”(hŒconst struct media_pad *pad”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hjº³h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj¶³ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjdzh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¶³ubj )�”}”(hj h]”hŒstruct”…”�”}”(hjÕ³h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj¶³ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâ³h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¶³ubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hjó³h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjð³ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jõ³Œmodname”NŒ classname”Njäjç)�”}”jê]”j{³Œc.media_pad_remote_pad_unique”†”asbuh1hhj¶³ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¶³ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj¶³ubj> )�”}”(hŒpad”h]”hŒpad”…”�”}”(hj,´h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¶³ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj²³ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj<³h²hh³jM³h´M£ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj8³h²hh³jM³h´M£ubah}”(h]”j3³ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jM³h´M£hj5³h²hubjj )�”}”(hhh]”hï)�”}”(hŒ$Find a remote pad connected to a pad”h]”hŒ$Find a remote pad connected to a pad”…”�”}”(hjV´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M£hjS´h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj5³h²hh³jM³h´M£ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jn´jŒ jn´j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX**Parameters** ``const struct media_pad *pad`` The pad **Description** Search for and return a remote pad connected to **pad** through an enabled link. If multiple (or no) remote pads are found, an error is returned. The uniqueness constraint makes this helper function suitable for entities that support a single active source at a time on a given pad. * -ENOTUNIQ - Multiple links are enabled * -ENOLINK - No connected pad found **Return** A pointer to the remote pad, or one of the following error pointers if an error occurs:”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjx´h]”hŒ Parameters”…”�”}”(hjz´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjv´ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M§hjr´ubjÛ )�”}”(hhh]”jà )�”}”(hŒ(``const struct media_pad *pad`` The pad ”h]”(jæ )�”}”(hŒ``const struct media_pad *pad``”h]”j’)�”}”(hj—´h]”hŒconst struct media_pad *pad”…”�”}”(hj™´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj•´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¤hj‘´ubj)�”}”(hhh]”hï)�”}”(hŒThe pad”h]”hŒThe pad”…”�”}”(hj°´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¬´h´M¤hj­´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj‘´ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j¬´h´M¤hjŽ´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjr´ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjÒ´h]”hŒ Description”…”�”}”(hjÔ´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjдubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¦hjr´ubhï)�”}”(hŒ‘Search for and return a remote pad connected to **pad** through an enabled link. If multiple (or no) remote pads are found, an error is returned.”h]”(hŒ0Search for and return a remote pad connected to ”…”�”}”(hjè´h²hh³Nh´Nubj')�”}”(hŒ**pad**”h]”hŒpad”…”�”}”(hjð´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjè´ubhŒZ through an enabled link. If multiple (or no) remote pads are found, an error is returned.”…”�”}”(hjè´h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¥hjr´ubhï)�”}”(hŒˆThe uniqueness constraint makes this helper function suitable for entities that support a single active source at a time on a given pad.”h]”hŒˆThe uniqueness constraint makes this helper function suitable for entities that support a single active source at a time on a given pad.”…”�”}”(hj µh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¨hjr´ubj )�”}”(hhh]”(j)�”}”(hŒ&-ENOTUNIQ - Multiple links are enabled”h]”hï)�”}”(hjµh]”hŒ&-ENOTUNIQ - Multiple links are enabled”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¬hjµubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjµubj)�”}”(hŒ"-ENOLINK - No connected pad found ”h]”hï)�”}”(hŒ!-ENOLINK - No connected pad found”h]”hŒ!-ENOLINK - No connected pad found”…”�”}”(hj7µh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M­hj3µubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjµubeh}”(h]”h ]”h"]”h$]”h&]”jIjöuh1j h³j,µh´M¬hjr´ubhï)�”}”(hŒ **Return**”h]”j')�”}”(hjTµh]”hŒReturn”…”�”}”(hjVµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjRµubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¯hjr´ubhï)�”}”(hŒWA pointer to the remote pad, or one of the following error pointers if an error occurs:”h]”hŒWA pointer to the remote pad, or one of the following error pointers if an error occurs:”…”�”}”(hjjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¬hjr´ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ+media_entity_remote_pad_unique (C function)”Œ c.media_entity_remote_pad_unique”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒhstruct media_pad * media_entity_remote_pad_unique (const struct media_entity *entity, unsigned int type)”h]”j )�”}”(hŒfstruct media_pad *media_entity_remote_pad_unique(const struct media_entity *entity, unsigned int type)”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj™µh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj•µh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mµubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§µh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj•µh²hh³j¦µh´Mµubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hj¸µh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjµµubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jºµŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_entity_remote_pad_unique”sbŒ c.media_entity_remote_pad_unique”†”asbuh1hhj•µh²hh³j¦µh´Mµubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙµh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj•µh²hh³j¦µh´Mµubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjçµh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj•µh²hh³j¦µh´Mµubj8 )�”}”(hŒmedia_entity_remote_pad_unique”h]”j> )�”}”(hjÖµh]”hŒmedia_entity_remote_pad_unique”…”�”}”(hjøµh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjôµubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj•µh²hh³j¦µh´Mµubj˜)�”}”(hŒ6(const struct media_entity *entity, unsigned int type)”h]”(jž)�”}”(hŒ!const struct media_entity *entity”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj¶ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ¶h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¶ubj )�”}”(hj h]”hŒstruct”…”�”}”(hj.¶h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj¶ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj;¶h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¶ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hjL¶h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjI¶ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jN¶Œmodname”NŒ classname”Njäjç)�”}”jê]”jÔµŒ c.media_entity_remote_pad_unique”†”asbuh1hhj¶ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjj¶h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¶ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjx¶h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj¶ubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hj…¶h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¶ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj ¶ubjž)�”}”(hŒunsigned int type”h]”(j`)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjž¶h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjš¶ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬¶h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjš¶ubj`)�”}”(hŒint”h]”hŒint”…”�”}”(hjº¶h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjš¶ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjȶh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjš¶ubj> )�”}”(hŒtype”h]”hŒtype”…”�”}”(hjÖ¶h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjš¶ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj ¶ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj•µh²hh³j¦µh´Mµubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj‘µh²hh³j¦µh´Mµubah}”(h]”jŒµah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j¦µh´Mµhj޵h²hubjj )�”}”(hhh]”hï)�”}”(hŒ(Find a remote pad connected to an entity”h]”hŒ(Find a remote pad connected to an entity”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mµhjý¶h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj޵h²hh³j¦µh´Mµubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j·jŒ j·j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX“**Parameters** ``const struct media_entity *entity`` The entity ``unsigned int type`` The type of pad to find (MEDIA_PAD_FL_SINK or MEDIA_PAD_FL_SOURCE) **Description** Search for and return a remote pad of **type** connected to **entity** through an enabled link. If multiple (or no) remote pads match these criteria, an error is returned. The uniqueness constraint makes this helper function suitable for entities that support a single active source or sink at a time. * -ENOTUNIQ - Multiple links are enabled * -ENOLINK - No connected pad found **Return** A pointer to the remote pad, or one of the following error pointers if an error occurs:”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj"·h]”hŒ Parameters”…”�”}”(hj$·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj ·ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¹hj·ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ1``const struct media_entity *entity`` The entity ”h]”(jæ )�”}”(hŒ%``const struct media_entity *entity``”h]”j’)�”}”(hjA·h]”hŒ!const struct media_entity *entity”…”�”}”(hjC·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj?·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¶hj;·ubj)�”}”(hhh]”hï)�”}”(hŒ The entity”h]”hŒ The entity”…”�”}”(hjZ·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jV·h´M¶hjW·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj;·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jV·h´M¶hj8·ubjà )�”}”(hŒY``unsigned int type`` The type of pad to find (MEDIA_PAD_FL_SINK or MEDIA_PAD_FL_SOURCE) ”h]”(jæ )�”}”(hŒ``unsigned int type``”h]”j’)�”}”(hjz·h]”hŒunsigned int type”…”�”}”(hj|·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjx·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M·hjt·ubj)�”}”(hhh]”hï)�”}”(hŒBThe type of pad to find (MEDIA_PAD_FL_SINK or MEDIA_PAD_FL_SOURCE)”h]”hŒBThe type of pad to find (MEDIA_PAD_FL_SINK or MEDIA_PAD_FL_SOURCE)”…”�”}”(hj“·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j�·h´M·hj�·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjt·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j�·h´M·hj8·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj·ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjµ·h]”hŒ Description”…”�”}”(hj··h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj³·ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¹hj·ubhï)�”}”(hŒ«Search for and return a remote pad of **type** connected to **entity** through an enabled link. If multiple (or no) remote pads match these criteria, an error is returned.”h]”(hŒ&Search for and return a remote pad of ”…”�”}”(hjË·h²hh³Nh´Nubj')�”}”(hŒ**type**”h]”hŒtype”…”�”}”(hjÓ·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjË·ubhŒ connected to ”…”�”}”(hjË·h²hh³Nh´Nubj')�”}”(hŒ **entity**”h]”hŒentity”…”�”}”(hjå·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjË·ubhŒe through an enabled link. If multiple (or no) remote pads match these criteria, an error is returned.”…”�”}”(hjË·h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¸hj·ubhï)�”}”(hŒ�The uniqueness constraint makes this helper function suitable for entities that support a single active source or sink at a time.”h]”hŒ�The uniqueness constraint makes this helper function suitable for entities that support a single active source or sink at a time.”…”�”}”(hjþ·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¼hj·ubj )�”}”(hhh]”(j)�”}”(hŒ&-ENOTUNIQ - Multiple links are enabled”h]”hï)�”}”(hj¸h]”hŒ&-ENOTUNIQ - Multiple links are enabled”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÀhj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ¸ubj)�”}”(hŒ"-ENOLINK - No connected pad found ”h]”hï)�”}”(hŒ!-ENOLINK - No connected pad found”h]”hŒ!-ENOLINK - No connected pad found”…”�”}”(hj,¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÁhj(¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ¸ubeh}”(h]”h ]”h"]”h$]”h&]”jIjöuh1j h³j!¸h´MÀhj·ubhï)�”}”(hŒ **Return**”h]”j')�”}”(hjI¸h]”hŒReturn”…”�”}”(hjK¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjG¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÃhj·ubhï)�”}”(hŒWA pointer to the remote pad, or one of the following error pointers if an error occurs:”h]”hŒWA pointer to the remote pad, or one of the following error pointers if an error occurs:”…”�”}”(hj_¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÀhj·ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ2media_entity_remote_source_pad_unique (C function)”Œ'c.media_entity_remote_source_pad_unique”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ\struct media_pad * media_entity_remote_source_pad_unique (const struct media_entity *entity)”h]”j )�”}”(hŒZstruct media_pad *media_entity_remote_source_pad_unique(const struct media_entity *entity)”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjޏh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjЏh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MËubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœ¸h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjЏh²hh³j›¸h´MËubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hj­¸h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjª¸ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j¯¸Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌%media_entity_remote_source_pad_unique”sbŒ'c.media_entity_remote_source_pad_unique”†”asbuh1hhjЏh²hh³j›¸h´MËubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjθh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjЏh²hh³j›¸h´MËubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjܸh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjЏh²hh³j›¸h´MËubj8 )�”}”(hŒ%media_entity_remote_source_pad_unique”h]”j> )�”}”(hj˸h]”hŒ%media_entity_remote_source_pad_unique”…”�”}”(hjí¸h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjé¸ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjЏh²hh³j›¸h´MËubj˜)�”}”(hŒ#(const struct media_entity *entity)”h]”jž)�”}”(hŒ!const struct media_entity *entity”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj¹ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¹ubj )�”}”(hj h]”hŒstruct”…”�”}”(hj#¹h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj¹ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0¹h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¹ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hjA¹h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj>¹ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jC¹Œmodname”NŒ classname”Njäjç)�”}”jê]”jɸŒ'c.media_entity_remote_source_pad_unique”†”asbuh1hhj¹ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_¹h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¹ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjm¹h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj¹ubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hjz¹h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¹ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj¹ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjЏh²hh³j›¸h´MËubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj†¸h²hh³j›¸h´MËubah}”(h]”j�¸ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j›¸h´MËhjƒ¸h²hubjj )�”}”(hhh]”hï)�”}”(hŒ/Find a remote source pad connected to an entity”h]”hŒ/Find a remote source pad connected to an entity”…”�”}”(hj¤¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MËhj¡¹h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjƒ¸h²hh³j›¸h´MËubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j¼¹jŒ j¼¹j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX***Parameters** ``const struct media_entity *entity`` The entity **Description** Search for and return a remote source pad connected to **entity** through an enabled link. If multiple (or no) remote pads match these criteria, an error is returned. The uniqueness constraint makes this helper function suitable for entities that support a single active source at a time. * -ENOTUNIQ - Multiple links are enabled * -ENOLINK - No connected pad found **Return** A pointer to the remote pad, or one of the following error pointers if an error occurs:”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjƹh]”hŒ Parameters”…”�”}”(hjȹh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjĹubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÏhjÀ¹ubjÛ )�”}”(hhh]”jà )�”}”(hŒ1``const struct media_entity *entity`` The entity ”h]”(jæ )�”}”(hŒ%``const struct media_entity *entity``”h]”j’)�”}”(hjå¹h]”hŒ!const struct media_entity *entity”…”�”}”(hjç¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjã¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÍhjß¹ubj)�”}”(hhh]”hï)�”}”(hŒ The entity”h]”hŒ The entity”…”�”}”(hjþ¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jú¹h´MÍhjû¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjß¹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jú¹h´MÍhjܹubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÀ¹ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj ºh]”hŒ Description”…”�”}”(hj"ºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjºubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÏhjÀ¹ubhï)�”}”(hŒ¦Search for and return a remote source pad connected to **entity** through an enabled link. If multiple (or no) remote pads match these criteria, an error is returned.”h]”(hŒ7Search for and return a remote source pad connected to ”…”�”}”(hj6ºh²hh³Nh´Nubj')�”}”(hŒ **entity**”h]”hŒentity”…”�”}”(hj>ºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj6ºubhŒe through an enabled link. If multiple (or no) remote pads match these criteria, an error is returned.”…”�”}”(hj6ºh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÎhjÀ¹ubhï)�”}”(hŒyThe uniqueness constraint makes this helper function suitable for entities that support a single active source at a time.”h]”hŒyThe uniqueness constraint makes this helper function suitable for entities that support a single active source at a time.”…”�”}”(hjWºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÒhjÀ¹ubj )�”}”(hhh]”(j)�”}”(hŒ&-ENOTUNIQ - Multiple links are enabled”h]”hï)�”}”(hjkºh]”hŒ&-ENOTUNIQ - Multiple links are enabled”…”�”}”(hjmºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÖhjiºubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjfºubj)�”}”(hŒ"-ENOLINK - No connected pad found ”h]”hï)�”}”(hŒ!-ENOLINK - No connected pad found”h]”hŒ!-ENOLINK - No connected pad found”…”�”}”(hj…ºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M×hj�ºubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjfºubeh}”(h]”h ]”h"]”h$]”h&]”jIjöuh1j h³jzºh´MÖhjÀ¹ubhï)�”}”(hŒ **Return**”h]”j')�”}”(hj¢ºh]”hŒReturn”…”�”}”(hj¤ºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj ºubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÙhjÀ¹ubhï)�”}”(hŒWA pointer to the remote pad, or one of the following error pointers if an error occurs:”h]”hŒWA pointer to the remote pad, or one of the following error pointers if an error occurs:”…”�”}”(hj¸ºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÖhjÀ¹ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ#media_pad_is_streaming (C function)”Œc.media_pad_is_streaming”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ9bool media_pad_is_streaming (const struct media_pad *pad)”h]”j )�”}”(hŒ8bool media_pad_is_streaming(const struct media_pad *pad)”h]”(j`)�”}”(hjJsh]”hŒbool”…”�”}”(hjçºh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjãºh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mãubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjõºh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjãºh²hh³jôºh´Mãubj8 )�”}”(hŒmedia_pad_is_streaming”h]”j> )�”}”(hŒmedia_pad_is_streaming”h]”hŒmedia_pad_is_streaming”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj»ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjãºh²hh³jôºh´Mãubj˜)�”}”(hŒ(const struct media_pad *pad)”h]”jž)�”}”(hŒconst struct media_pad *pad”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hj#»h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj»ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj0»h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj»ubj )�”}”(hj h]”hŒstruct”…”�”}”(hj>»h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj»ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjK»h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj»ubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hj\»h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjY»ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j^»Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j »sbŒc.media_pad_is_streaming”†”asbuh1hhj»ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|»h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj»ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjŠ»h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj»ubj> )�”}”(hŒpad”h]”hŒpad”…”�”}”(hj—»h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj»ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj»ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjãºh²hh³jôºh´Mãubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjߺh²hh³jôºh´Mãubah}”(h]”jÚºah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jôºh´Mãhjܺh²hubjj )�”}”(hhh]”hï)�”}”(hŒ-Test if a pad is part of a streaming pipeline”h]”hŒ-Test if a pad is part of a streaming pipeline”…”�”}”(hjÁ»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mãhj¾»h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjܺh²hh³jôºh´Mãubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jÙ»jŒ jÙ»j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ¯**Parameters** ``const struct media_pad *pad`` The pad **Return** True if the pad is part of a pipeline started with the media_pipeline_start() function, false otherwise.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjã»h]”hŒ Parameters”…”�”}”(hjå»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjá»ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MçhjÝ»ubjÛ )�”}”(hhh]”jà )�”}”(hŒ(``const struct media_pad *pad`` The pad ”h]”(jæ )�”}”(hŒ``const struct media_pad *pad``”h]”j’)�”}”(hj¼h]”hŒconst struct media_pad *pad”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mähjü»ubj)�”}”(hhh]”hï)�”}”(hŒThe pad”h]”hŒThe pad”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¼h´Mähj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjü»ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j¼h´Mähjù»ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÝ»ubhï)�”}”(hŒ **Return**”h]”j')�”}”(hj=¼h]”hŒReturn”…”�”}”(hj?¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj;¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MæhjÝ»ubhï)�”}”(hŒhTrue if the pad is part of a pipeline started with the media_pipeline_start() function, false otherwise.”h]”hŒhTrue if the pad is part of a pipeline started with the media_pipeline_start() function, false otherwise.”…”�”}”(hjS¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MæhjÝ»ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ&media_entity_is_streaming (C function)”Œc.media_entity_is_streaming”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒBbool media_entity_is_streaming (const struct media_entity *entity)”h]”j )�”}”(hŒAbool media_entity_is_streaming(const struct media_entity *entity)”h]”(j`)�”}”(hjJsh]”hŒbool”…”�”}”(hj‚¼h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj~¼h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mïubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�¼h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj~¼h²hh³j�¼h´Mïubj8 )�”}”(hŒmedia_entity_is_streaming”h]”j> )�”}”(hŒmedia_entity_is_streaming”h]”hŒmedia_entity_is_streaming”…”�”}”(hj¢¼h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjž¼ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj~¼h²hh³j�¼h´Mïubj˜)�”}”(hŒ#(const struct media_entity *entity)”h]”jž)�”}”(hŒ!const struct media_entity *entity”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hj¾¼h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjº¼ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˼h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjº¼ubj )�”}”(hj h]”hŒstruct”…”�”}”(hjÙ¼h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjº¼ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæ¼h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjº¼ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hj÷¼h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjô¼ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jù¼Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j¤¼sbŒc.media_entity_is_streaming”†”asbuh1hhjº¼ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjº¼ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj%½h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjº¼ubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hj2½h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjº¼ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj¶¼ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj~¼h²hh³j�¼h´Mïubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjz¼h²hh³j�¼h´Mïubah}”(h]”ju¼ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j�¼h´Mïhjw¼h²hubjj )�”}”(hhh]”hï)�”}”(hŒ1Test if an entity is part of a streaming pipeline”h]”hŒ1Test if an entity is part of a streaming pipeline”…”�”}”(hj\½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MïhjY½h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjw¼h²hh³j�¼h´Mïubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jt½jŒ jt½j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ»**Parameters** ``const struct media_entity *entity`` The entity **Return** True if the entity is part of a pipeline started with the media_pipeline_start() function, false otherwise.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj~½h]”hŒ Parameters”…”�”}”(hj€½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj|½ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Móhjx½ubjÛ )�”}”(hhh]”jà )�”}”(hŒ1``const struct media_entity *entity`` The entity ”h]”(jæ )�”}”(hŒ%``const struct media_entity *entity``”h]”j’)�”}”(hj�½h]”hŒ!const struct media_entity *entity”…”�”}”(hjŸ½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj›½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mðhj—½ubj)�”}”(hhh]”hï)�”}”(hŒ The entity”h]”hŒ The entity”…”�”}”(hj¶½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j²½h´Mðhj³½ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj—½ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j²½h´Mðhj”½ubah}”(h]”h ]”h"]”•!h$]”h&]”uh1jÚ hjx½ubhï)�”}”(hŒ **Return**”h]”j')�”}”(hjؽh]”hŒReturn”…”�”}”(hjÚ½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÖ½ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mòhjx½ubhï)�”}”(hŒkTrue if the entity is part of a pipeline started with the media_pipeline_start() function, false otherwise.”h]”hŒkTrue if the entity is part of a pipeline started with the media_pipeline_start() function, false otherwise.”…”�”}”(hjî½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mòhjx½ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ"media_entity_pipeline (C function)”Œc.media_entity_pipeline”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒKstruct media_pipeline * media_entity_pipeline (struct media_entity *entity)”h]”j )�”}”(hŒIstruct media_pipeline *media_entity_pipeline(struct media_entity *entity)”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj¾h²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+¾h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¾h²hh³j*¾h´Mubh)�”}”(hhh]”j> )�”}”(hŒmedia_pipeline”h]”hŒmedia_pipeline”…”�”}”(hj<¾h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj9¾ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j>¾Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_entity_pipeline”sbŒc.media_entity_pipeline”†”asbuh1hhj¾h²hh³j*¾h´Mubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]¾h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¾h²hh³j*¾h´Mubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjk¾h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj¾h²hh³j*¾h´Mubj8 )�”}”(hŒmedia_entity_pipeline”h]”j> )�”}”(hjZ¾h]”hŒmedia_entity_pipeline”…”�”}”(hj|¾h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjx¾ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj¾h²hh³j*¾h´Mubj˜)�”}”(hŒ(struct media_entity *entity)”h]”jž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj—¾h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj“¾ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤¾h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj“¾ubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hjµ¾h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj²¾ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j·¾Œmodname”NŒ classname”Njäjç)�”}”jê]”jX¾Œc.media_entity_pipeline”†”asbuh1hhj“¾ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓ¾h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj“¾ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjá¾h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj“¾ubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hjî¾h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj“¾ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj�¾ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj¾h²hh³j*¾h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj¾h²hh³j*¾h´Mubah}”(h]”j¾ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j*¾h´Mhj¾h²hubjj )�”}”(hhh]”hï)�”}”(hŒ+Get the media pipeline an entity is part of”h]”hŒ+Get the media pipeline an entity is part of”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj¿h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj¾h²hh³j*¾h´Mubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j0¿jŒ j0¿j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX­**Parameters** ``struct media_entity *entity`` The entity **Description** DEPRECATED: use media_pad_pipeline() instead. This function returns the media pipeline that an entity has been associated with when constructing the pipeline with media_pipeline_start(). The pointer remains valid until media_pipeline_stop() is called. In general, entities can be part of multiple pipelines, when carrying multiple streams (either on different pads, or on the same pad using multiplexed streams). This function is to be used only for entities that do not support multiple pipelines. **Return** The media_pipeline the entity is part of, or NULL if the entity is not part of any pipeline.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj:¿h]”hŒ Parameters”…”�”}”(hj<¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj8¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj4¿ubjÛ )�”}”(hhh]”jà )�”}”(hŒ+``struct media_entity *entity`` The entity ”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hjY¿h]”hŒstruct media_entity *entity”…”�”}”(hj[¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjW¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjS¿ubj)�”}”(hhh]”hï)�”}”(hŒ The entity”h]”hŒ The entity”…”�”}”(hjr¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jn¿h´Mhjo¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjS¿ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jn¿h´MhjP¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj4¿ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj”¿h]”hŒ Description”…”�”}”(hj–¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj’¿ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj4¿ubhï)�”}”(hŒ-DEPRECATED: use media_pad_pipeline() instead.”h]”hŒ-DEPRECATED: use media_pad_pipeline() instead.”…”�”}”(hjª¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj4¿ubhï)�”}”(hŒÍThis function returns the media pipeline that an entity has been associated with when constructing the pipeline with media_pipeline_start(). The pointer remains valid until media_pipeline_stop() is called.”h]”hŒÍThis function returns the media pipeline that an entity has been associated with when constructing the pipeline with media_pipeline_start(). The pointer remains valid until media_pipeline_stop() is called.”…”�”}”(hj¹¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj4¿ubhï)�”}”(hŒöIn general, entities can be part of multiple pipelines, when carrying multiple streams (either on different pads, or on the same pad using multiplexed streams). This function is to be used only for entities that do not support multiple pipelines.”h]”hŒöIn general, entities can be part of multiple pipelines, when carrying multiple streams (either on different pads, or on the same pad using multiplexed streams). This function is to be used only for entities that do not support multiple pipelines.”…”�”}”(hjÈ¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hj4¿ubhï)�”}”(hŒ **Return**”h]”j')�”}”(hjÙ¿h]”hŒReturn”…”�”}”(hjÛ¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj׿ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj4¿ubhï)�”}”(hŒ\The media_pipeline the entity is part of, or NULL if the entity is not part of any pipeline.”h]”hŒ\The media_pipeline the entity is part of, or NULL if the entity is not part of any pipeline.”…”�”}”(hjï¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj4¿ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_pad_pipeline (C function)”Œc.media_pad_pipeline”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒBstruct media_pipeline * media_pad_pipeline (struct media_pad *pad)”h]”j )�”}”(hŒ@struct media_pipeline *media_pad_pipeline(struct media_pad *pad)”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÀh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,Àh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÀh²hh³j+Àh´Mubh)�”}”(hhh]”j> )�”}”(hŒmedia_pipeline”h]”hŒmedia_pipeline”…”�”}”(hj=Àh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj:Àubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j?ÀŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_pad_pipeline”sbŒc.media_pad_pipeline”†”asbuh1hhjÀh²hh³j+Àh´Mubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^Àh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÀh²hh³j+Àh´Mubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjlÀh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÀh²hh³j+Àh´Mubj8 )�”}”(hŒmedia_pad_pipeline”h]”j> )�”}”(hj[Àh]”hŒmedia_pad_pipeline”…”�”}”(hj}Àh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjyÀubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÀh²hh³j+Àh´Mubj˜)�”}”(hŒ(struct media_pad *pad)”h]”jž)�”}”(hŒstruct media_pad *pad”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj˜Àh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj”Àubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¥Àh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj”Àubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hj¶Àh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj³Àubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j¸ÀŒmodname”NŒ classname”Njäjç)�”}”jê]”jYÀŒc.media_pad_pipeline”†”asbuh1hhj”Àubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔÀh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj”Àubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjâÀh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj”Àubj> )�”}”(hŒpad”h]”hŒpad”…”�”}”(hjïÀh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj”Àubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj�Àubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjÀh²hh³j+Àh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÀh²hh³j+Àh´Mubah}”(h]”jÀah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j+Àh´MhjÀh²hubjj )�”}”(hhh]”hï)�”}”(hŒ'Get the media pipeline a pad is part of”h]”hŒ'Get the media pipeline a pad is part of”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjÁh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÀh²hh³j+Àh´Mubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j1ÁjŒ j1Áj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXs**Parameters** ``struct media_pad *pad`` The pad **Description** This function returns the media pipeline that a pad has been associated with when constructing the pipeline with media_pipeline_start(). The pointer remains valid until media_pipeline_stop() is called. **Return** The media_pipeline the pad is part of, or NULL if the pad is not part of any pipeline.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj;Áh]”hŒ Parameters”…”�”}”(hj=Áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj9Áubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj5ÁubjÛ )�”}”(hhh]”jà )�”}”(hŒ"``struct media_pad *pad`` The pad ”h]”(jæ )�”}”(hŒ``struct media_pad *pad``”h]”j’)�”}”(hjZÁh]”hŒstruct media_pad *pad”…”�”}”(hj\Áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjXÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjTÁubj)�”}”(hhh]”hï)�”}”(hŒThe pad”h]”hŒThe pad”…”�”}”(hjsÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³joÁh´MhjpÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjTÁubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³joÁh´MhjQÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj5Áubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj•Áh]”hŒ Description”…”�”}”(hj—Áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj“Áubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj5Áubhï)�”}”(hŒÉThis function returns the media pipeline that a pad has been associated with when constructing the pipeline with media_pipeline_start(). The pointer remains valid until media_pipeline_stop() is called.”h]”hŒÉThis function returns the media pipeline that a pad has been associated with when constructing the pipeline with media_pipeline_start(). The pointer remains valid until media_pipeline_stop() is called.”…”�”}”(hj«Áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj5Áubhï)�”}”(hŒ **Return**”h]”j')�”}”(hj¼Áh]”hŒReturn”…”�”}”(hj¾Áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjºÁubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj5Áubhï)�”}”(hŒVThe media_pipeline the pad is part of, or NULL if the pad is not part of any pipeline.”h]”hŒVThe media_pipeline the pad is part of, or NULL if the pad is not part of any pipeline.”…”�”}”(hjÒÁh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj5Áubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ(media_entity_get_fwnode_pad (C function)”Œc.media_entity_get_fwnode_pad”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ€int media_entity_get_fwnode_pad (struct media_entity *entity, const struct fwnode_handle *fwnode, unsigned long direction_flags)”h]”j )�”}”(hŒint media_entity_get_fwnode_pad(struct media_entity *entity, const struct fwnode_handle *fwnode, unsigned long direction_flags)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjýÁh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M#ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjýÁh²hh³jÂh´M#ubj8 )�”}”(hŒmedia_entity_get_fwnode_pad”h]”j> )�”}”(hŒmedia_entity_get_fwnode_pad”h]”hŒmedia_entity_get_fwnode_pad”…”�”}”(hj"Âh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÂubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjýÁh²hh³jÂh´M#ubj˜)�”}”(hŒ`(struct media_entity *entity, const struct fwnode_handle *fwnode, unsigned long direction_flags)”h]”(jž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj>Âh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj:Âubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjKÂh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj:Âubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hj\Âh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjYÂubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j^ÂŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j$ÂsbŒc.media_entity_get_fwnode_pad”†”asbuh1hhj:Âubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|Âh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj:Âubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjŠÂh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj:Âubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hj—Âh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj:Âubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj6Âubjž)�”}”(hŒ"const struct fwnode_handle *fwnode”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hj°Âh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj¬Âubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½Âh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¬Âubj )�”}”(hj h]”hŒstruct”…”�”}”(hjËÂh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj¬Âubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØÂh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¬Âubh)�”}”(hhh]”j> )�”}”(hŒ fwnode_handle”h]”hŒ fwnode_handle”…”�”}”(hjéÂh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjæÂubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jëÂŒmodname”NŒ classname”Njäjç)�”}”jê]”jxÂŒc.media_entity_get_fwnode_pad”†”asbuh1hhj¬Âubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¬Âubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj¬Âubj> )�”}”(hŒfwnode”h]”hŒfwnode”…”�”}”(hj"Ãh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¬Âubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj6Âubjž)�”}”(hŒunsigned long direction_flags”h]”(j`)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj;Ãh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj7Ãubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjIÃh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj7Ãubj`)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjWÃh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj7Ãubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjeÃh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj7Ãubj> )�”}”(hŒdirection_flags”h]”hŒdirection_flags”…”�”}”(hjsÃh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj7Ãubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj6Âubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjýÁh²hh³jÂh´M#ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjùÁh²hh³jÂh´M#ubah}”(h]”jôÁah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÂh´M#hjöÁh²hubjj )�”}”(hhh]”hï)�”}”(hŒGet pad number from fwnode”h]”hŒGet pad number from fwnode”…”�”}”(hj�Ãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M#hjšÃh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjöÁh²hh³jÂh´M#ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jµÃjŒ jµÃj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXÛ**Parameters** ``struct media_entity *entity`` The entity ``const struct fwnode_handle *fwnode`` Pointer to the fwnode_handle which should be used to find the pad ``unsigned long direction_flags`` Expected direction of the pad, as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_PAD_FL_*``) **Description** This function can be used to resolve the media pad number from a fwnode. This is useful for devices which use more complex mappings of media pads. If the entity does not implement the get_fwnode_pad() operation then this function searches the entity for the first pad that matches the **direction_flags**. **Return** returns the pad number on success or a negative error code.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj¿Ãh]”hŒ Parameters”…”�”}”(hjÁÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj½Ãubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M'hj¹ÃubjÛ )�”}”(hhh]”(jà )�”}”(hŒ+``struct media_entity *entity`` The entity ”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hjÞÃh]”hŒstruct media_entity *entity”…”�”}”(hjàÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÜÃubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M%hjØÃubj)�”}”(hhh]”hï)�”}”(hŒ The entity”h]”hŒ The entity”…”�”}”(hj÷Ãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jóÃh´M%hjôÃubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjØÃubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jóÃh´M%hjÕÃubjà )�”}”(hŒi``const struct fwnode_handle *fwnode`` Pointer to the fwnode_handle which should be used to find the pad ”h]”(jæ )�”}”(hŒ&``const struct fwnode_handle *fwnode``”h]”j’)�”}”(hjÄh]”hŒ"const struct fwnode_handle *fwnode”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÄubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M&hjÄubj)�”}”(hhh]”hï)�”}”(hŒAPointer to the fwnode_handle which should be used to find the pad”h]”hŒAPointer to the fwnode_handle which should be used to find the pad”…”�”}”(hj0Äh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j,Äh´M&hj-Äubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÄubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j,Äh´M&hjÕÃubjà )�”}”(hŒž``unsigned long direction_flags`` Expected direction of the pad, as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_PAD_FL_*``) ”h]”(jæ )�”}”(hŒ!``unsigned long direction_flags``”h]”j’)�”}”(hjPÄh]”hŒunsigned long direction_flags”…”�”}”(hjRÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjNÄubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M)hjJÄubj)�”}”(hhh]”hï)�”}”(hŒ{Expected direction of the pad, as defined in :ref:`include/uapi/linux/media.h ` (seek for ``MEDIA_PAD_FL_*``)”h]”(hŒ-Expected direction of the pad, as defined in ”…”�”}”(hjiÄh²hh³Nh´Nubh)�”}”(hŒ0:ref:`include/uapi/linux/media.h `”h]”hý)�”}”(hjsÄh]”hŒinclude/uapi/linux/media.h”…”�”}”(hjuÄh²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1hühjqÄubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jÄŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjŒ media_header”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M'hjiÄubhŒ (seek for ”…”�”}”(hjiÄh²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_PAD_FL_*``”h]”hŒMEDIA_PAD_FL_*”…”�”}”(hj–Äh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjiÄubhŒ)”…”�”}”(hjiÄh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j‘Äh´M'hjfÄubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjJÄubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jeÄh´M)hjÕÃubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj¹Ãubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjÂÄh]”hŒ Description”…”�”}”(hjÄÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÀÄubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M+hj¹Ãubhï)�”}”(hŒ’This function can be used to resolve the media pad number from a fwnode. This is useful for devices which use more complex mappings of media pads.”h]”hŒ’This function can be used to resolve the media pad number from a fwnode. This is useful for devices which use more complex mappings of media pads.”…”�”}”(hjØÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M*hj¹Ãubhï)�”}”(hŒžIf the entity does not implement the get_fwnode_pad() operation then this function searches the entity for the first pad that matches the **direction_flags**.”h]”(hŒŠIf the entity does not implement the get_fwnode_pad() operation then this function searches the entity for the first pad that matches the ”…”�”}”(hjçÄh²hh³Nh´Nubj')�”}”(hŒ**direction_flags**”h]”hŒdirection_flags”…”�”}”(hjïÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjçÄubhŒ.”…”�”}”(hjçÄh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M.hj¹Ãubhï)�”}”(hŒ **Return**”h]”j')�”}”(hj Åh]”hŒReturn”…”�”}”(hj Åh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M2hj¹Ãubhï)�”}”(hŒ;returns the pad number on success or a negative error code.”h]”hŒ;returns the pad number on success or a negative error code.”…”�”}”(hj Åh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M3hj¹Ãubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ"media_graph_walk_init (C function)”Œc.media_graph_walk_init”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒPint media_graph_walk_init (struct media_graph *graph, struct media_device *mdev)”h]”j )�”}”(hŒOint media_graph_walk_init(struct media_graph *graph, struct media_device *mdev)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hjOÅh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjKÅh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M:ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^Åh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjKÅh²hh³j]Åh´M:ubj8 )�”}”(hŒmedia_graph_walk_init”h]”j> )�”}”(hŒmedia_graph_walk_init”h]”hŒmedia_graph_walk_init”…”�”}”(hjpÅh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjlÅubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjKÅh²hh³j]Åh´M:ubj˜)�”}”(hŒ6(struct media_graph *graph, struct media_device *mdev)”h]”(jž)�”}”(hŒstruct media_graph *graph”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjŒÅh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjˆÅubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™Åh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjˆÅubh)�”}”(hhh]”j> )�”}”(hŒ media_graph”h]”hŒ media_graph”…”�”}”(hjªÅh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj§Åubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j¬ÅŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jrÅsbŒc.media_graph_walk_init”†”asbuh1hhjˆÅubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊÅh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjˆÅubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjØÅh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjˆÅubj> )�”}”(hŒgraph”h]”hŒgraph”…”�”}”(hjåÅh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjˆÅubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj„Åubjž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjþÅh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjúÅubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Æh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjúÅubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÆubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jÆŒmodname”NŒ classname”Njäjç)�”}”jê]”jÆÅŒc.media_graph_walk_init”†”asbuh1hhjúÅubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:Æh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjúÅubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjHÆh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjúÅubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hjUÆh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjúÅubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj„Åubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjKÅh²hh³j]Åh´M:ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjGÅh²hh³j]Åh´M:ubah}”(h]”jBÅah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j]Åh´M:hjDÅh²hubjj )�”}”(hhh]”hï)�”}”(hŒ&Allocate resources used by graph walk.”h]”hŒ&Allocate resources used by graph walk.”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M:hj|Æh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjDÅh²hh³j]Åh´M:ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j—ÆjŒ j—Æj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXÖ**Parameters** ``struct media_graph *graph`` Media graph structure that will be used to walk the graph ``struct media_device *mdev`` Pointer to the :c:type:`media_device` that contains the object **Description** This function is deprecated, use media_pipeline_for_each_pad() instead. The caller is required to hold the media_device graph_mutex during the graph walk until the graph state is released. Returns zero on success or a negative error code otherwise.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj¡Æh]”hŒ Parameters”…”�”}”(hj£Æh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjŸÆubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M>hj›ÆubjÛ )�”}”(hhh]”(jà )�”}”(hŒX``struct media_graph *graph`` Media graph structure that will be used to walk the graph ”h]”(jæ )�”}”(hŒ``struct media_graph *graph``”h]”j’)�”}”(hjÀÆh]”hŒstruct media_graph *graph”…”�”}”(hjÂÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¾Æubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M<hjºÆubj)�”}”(hhh]”hï)�”}”(hŒ9Media graph structure that will be used to walk the graph”h]”hŒ9Media graph structure that will be used to walk the graph”…”�”}”(hjÙÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÕÆh´M<hjÖÆubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjºÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÕÆh´M<hj·Æubjà )�”}”(hŒ]``struct media_device *mdev`` Pointer to the :c:type:`media_device` that contains the object ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hjùÆh]”hŒstruct media_device *mdev”…”�”}”(hjûÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj÷Æubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M=hjóÆubj)�”}”(hhh]”hï)�”}”(hŒ>Pointer to the :c:type:`media_device` that contains the object”h]”(hŒPointer to the ”…”�”}”(hjÇh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hjÇh]”hŒ media_device”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjÇubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³jÇh´M=hjÇubhŒ that contains the object”…”�”}”(hjÇh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÇh´M=hjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjóÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÇh´M=hj·Æubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj›Æubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjWÇh]”hŒ Description”…”�”}”(hjYÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjUÇubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M?hj›Æubhï)�”}”(hŒGThis function is deprecated, use media_pipeline_for_each_pad() instead.”h]”hŒGThis function is deprecated, use media_pipeline_for_each_pad() instead.”…”�”}”(hjmÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M>hj›Æubhï)�”}”(hŒtThe caller is required to hold the media_device graph_mutex during the graph walk until the graph state is released.”h]”hŒtThe caller is required to hold the media_device graph_mutex during the graph walk until the graph state is released.”…”�”}”(hj|Çh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M@hj›Æubhï)�”}”(hŒ;Returns zero on success or a negative error code otherwise.”h]”hŒ;Returns zero on success or a negative error code otherwise.”…”�”}”(hj‹Çh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MChj›Æubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ%media_graph_walk_cleanup (C function)”Œc.media_graph_walk_cleanup”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ9void media_graph_walk_cleanup (struct media_graph *graph)”h]”j )�”}”(hŒ8void media_graph_walk_cleanup(struct media_graph *graph)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjºÇh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj¶Çh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MJubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉÇh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¶Çh²hh³jÈÇh´MJubj8 )�”}”(hŒmedia_graph_walk_cleanup”h]”j> )�”}”(hŒmedia_graph_walk_cleanup”h]”hŒmedia_graph_walk_cleanup”…”�”}”(hjÛÇh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj×Çubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj¶Çh²hh³jÈÇh´MJubj˜)�”}”(hŒ(struct media_graph *graph)”h]”jž)�”}”(hŒstruct media_graph *graph”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj÷Çh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjóÇubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjóÇubh)�”}”(hhh]”j> )�”}”(hŒ media_graph”h]”hŒ media_graph”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÈubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jÈŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jÝÇsbŒc.media_graph_walk_cleanup”†”asbuh1hhjóÇubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj5Èh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjóÇubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjCÈh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjóÇubj> )�”}”(hŒgraph”h]”hŒgraph”…”�”}”(hjPÈh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjóÇubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjïÇubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj¶Çh²hh³jÈÇh´MJubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj²Çh²hh³jÈÇh´MJubah}”(h]”j­Çah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÈÇh´MJhj¯Çh²hubjj )�”}”(hhh]”hï)�”}”(hŒ%Release resources used by graph walk.”h]”hŒ%Release resources used by graph walk.”…”�”}”(hjzÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MJhjwÈh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj¯Çh²hh³jÈÇh´MJubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j’ÈjŒ j’Èj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒÃ**Parameters** ``struct media_graph *graph`` Media graph structure that will be used to walk the graph **Description** This function is deprecated, use media_pipeline_for_each_pad() instead.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjœÈh]”hŒ Parameters”…”�”}”(hjžÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjšÈubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MNhj–ÈubjÛ )�”}”(hhh]”jà )�”}”(hŒX``struct media_graph *graph`` Media graph structure that will be used to walk the graph ”h]”(jæ )�”}”(hŒ``struct media_graph *graph``”h]”j’)�”}”(hj»Èh]”hŒstruct media_graph *graph”…”�”}”(hj½Èh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¹Èubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MLhjµÈubj)�”}”(hhh]”hï)�”}”(hŒ9Media graph structure that will be used to walk the graph”h]”hŒ9Media graph structure that will be used to walk the graph”…”�”}”(hjÔÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÐÈh´MLhjÑÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjµÈubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÐÈh´MLhj²Èubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj–Èubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjöÈh]”hŒ Description”…”�”}”(hjøÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjôÈubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MNhj–Èubhï)�”}”(hŒGThis function is deprecated, use media_pipeline_for_each_pad() instead.”h]”hŒGThis function is deprecated, use media_pipeline_for_each_pad() instead.”…”�”}”(hj Éh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MMhj–Èubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ#media_graph_walk_start (C function)”Œc.media_graph_walk_start”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒTvoid media_graph_walk_start (struct media_graph *graph, struct media_entity *entity)”h]”j )�”}”(hŒSvoid media_graph_walk_start(struct media_graph *graph, struct media_entity *entity)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj;Éh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj7Éh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MSubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJÉh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj7Éh²hh³jIÉh´MSubj8 )�”}”(hŒmedia_graph_walk_start”h]”j> )�”}”(hŒmedia_graph_walk_start”h]”hŒmedia_graph_walk_start”…”�”}”(hj\Éh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjXÉubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj7Éh²hh³jIÉh´MSubj˜)�”}”(hŒ8(struct media_graph *graph, struct media_entity *entity)”h]”(jž)�”}”(hŒstruct media_graph *graph”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjxÉh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjtÉubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj…Éh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjtÉubh)�”}”(hhh]”j> )�”}”(hŒ media_graph”h]”hŒ media_graph”…”�”}”(hj–Éh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj“Éubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j˜ÉŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j^ÉsbŒc.media_graph_walk_start”†”asbuh1hhjtÉubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¶Éh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjtÉubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÄÉh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjtÉubj> )�”}”(hŒgraph”h]”hŒgraph”…”�”}”(hjÑÉh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjtÉubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjpÉubjž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjêÉh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjæÉubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj÷Éh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjæÉubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÊubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j ÊŒmodname”NŒ classname”Njäjç)�”}”jê]”j²ÉŒc.media_graph_walk_start”†”asbuh1hhjæÉubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj&Êh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjæÉubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj4Êh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjæÉubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hjAÊh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjæÉubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjpÉubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj7Éh²hh³jIÉh´MSubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj3Éh²hh³jIÉh´MSubah}”(h]”j.Éah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jIÉh´MShj0Éh²hubjj )�”}”(hhh]”hï)�”}”(hŒ/Start walking the media graph at a given entity”h]”hŒ/Start walking the media graph at a given entity”…”�”}”(hjkÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MShjhÊh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj0Éh²hh³jIÉh´MSubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jƒÊjŒ jƒÊj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX…**Parameters** ``struct media_graph *graph`` Media graph structure that will be used to walk the graph ``struct media_entity *entity`` Starting entity **Description** This function is deprecated, use media_pipeline_for_each_pad() instead. Before using this function, media_graph_walk_init() must be used to allocate resources used for walking the graph. This function initializes the graph traversal structure to walk the entities graph starting at the given entity. The traversal structure must not be modified by the caller during graph traversal. After the graph walk, the resources must be released using media_graph_walk_cleanup().”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj�Êh]”hŒ Parameters”…”�”}”(hj�Êh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj‹Êubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MWhj‡ÊubjÛ )�”}”(hhh]”(jà )�”}”(hŒX``struct media_graph *graph`` Media graph structure that will be used to walk the graph ”h]”(jæ )�”}”(hŒ``struct media_graph *graph``”h]”j’)�”}”(hj¬Êh]”hŒstruct media_graph *graph”…”�”}”(hj®Êh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjªÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MVhj¦Êubj)�”}”(hhh]”hï)�”}”(hŒ9Media graph structure that will be used to walk the graph”h]”hŒ9Media graph structure that will be used to walk the graph”…”�”}”(hjÅÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÁÊh´MVhjÂÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¦Êubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÁÊh´MVhj£Êubjà )�”}”(hŒ0``struct media_entity *entity`` Starting entity ”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hjåÊh]”hŒstruct media_entity *entity”…”�”}”(hjçÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjãÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MWhjßÊubj)�”}”(hhh]”hï)�”}”(hŒStarting entity”h]”hŒStarting entity”…”�”}”(hjþÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³júÊh´MWhjûÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjßÊubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³júÊh´MWhj£Êubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj‡Êubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj Ëh]”hŒ Description”…”�”}”(hj"Ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjËubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MYhj‡Êubhï)�”}”(hŒGThis function is deprecated, use media_pipeline_for_each_pad() instead.”h]”hŒGThis function is deprecated, use media_pipeline_for_each_pad() instead.”…”�”}”(hj6Ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MXhj‡Êubhï)�”}”(hX�Before using this function, media_graph_walk_init() must be used to allocate resources used for walking the graph. This function initializes the graph traversal structure to walk the entities graph starting at the given entity. The traversal structure must not be modified by the caller during graph traversal. After the graph walk, the resources must be released using media_graph_walk_cleanup().”h]”hX�Before using this function, media_graph_walk_init() must be used to allocate resources used for walking the graph. This function initializes the graph traversal structure to walk the entities graph starting at the given entity. The traversal structure must not be modified by the caller during graph traversal. After the graph walk, the resources must be released using media_graph_walk_cleanup().”…”�”}”(hjEËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MZhj‡Êubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ"media_graph_walk_next (C function)”Œc.media_graph_walk_next”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒGstruct media_entity * media_graph_walk_next (struct media_graph *graph)”h]”j )�”}”(hŒEstruct media_entity *media_graph_walk_next(struct media_graph *graph)”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjtËh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjpËh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mgubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚Ëh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjpËh²hh³j�Ëh´Mgubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hj“Ëh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj�Ëubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j•ËŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_graph_walk_next”sbŒc.media_graph_walk_next”†”asbuh1hhjpËh²hh³j�Ëh´Mgubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´Ëh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjpËh²hh³j�Ëh´Mgubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÂËh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjpËh²hh³j�Ëh´Mgubj8 )�”}”(hŒmedia_graph_walk_next”h]”j> )�”}”(hj±Ëh]”hŒmedia_graph_walk_next”…”�”}”(hjÓËh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÏËubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjpËh²hh³j�Ëh´Mgubj˜)�”}”(hŒ(struct media_graph *graph)”h]”jž)�”}”(hŒstruct media_graph *graph”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjîËh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjêËubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjûËh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjêËubh)�”}”(hhh]”j> )�”}”(hŒ media_graph”h]”hŒ media_graph”…”�”}”(hj Ìh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj Ìubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jÌŒmodname”NŒ classname”Njäjç)�”}”jê]”j¯ËŒc.media_graph_walk_next”†”asbuh1hhjêËubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj*Ìh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjêËubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj8Ìh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjêËubj> )�”}”(hŒgraph”h]”hŒgraph”…”�”}”(hjEÌh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjêËubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjæËubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjpËh²hh³j�Ëh´Mgubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjlËh²hh³j�Ëh´Mgubah}”(h]”jgËah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j�Ëh´MghjiËh²hubjj )�”}”(hhh]”hï)�”}”(hŒ Get the next entity in the graph”h]”hŒ Get the next entity in the graph”…”�”}”(hjoÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MghjlÌh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjiËh²hh³j�Ëh´Mgubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j‡ÌjŒ j‡Ìj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX­**Parameters** ``struct media_graph *graph`` Media graph structure **Description** This function is deprecated, use media_pipeline_for_each_pad() instead. Perform a depth-first traversal of the given media entities graph. The graph structure must have been previously initialized with a call to media_graph_walk_start(). **Return** returns the next entity in the graph or ``NULL`` if the whole graph have been traversed.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj‘Ìh]”hŒ Parameters”…”�”}”(hj“Ìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj�Ìubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mkhj‹ÌubjÛ )�”}”(hhh]”jà )�”}”(hŒ4``struct media_graph *graph`` Media graph structure ”h]”(jæ )�”}”(hŒ``struct media_graph *graph``”h]”j’)�”}”(hj°Ìh]”hŒstruct media_graph *graph”…”�”}”(hj²Ìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj®Ìubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhhjªÌubj)�”}”(hhh]”hï)�”}”(hŒMedia graph structure”h]”hŒMedia graph structure”…”�”}”(hjÉÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÅÌh´MhhjÆÌubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjªÌubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÅÌh´Mhhj§Ìubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj‹Ìubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjëÌh]”hŒ Description”…”�”}”(hjíÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjéÌubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mjhj‹Ìubhï)�”}”(hŒGThis function is deprecated, use media_pipeline_for_each_pad() instead.”h]”hŒGThis function is deprecated, use media_pipeline_for_each_pad() instead.”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mihj‹Ìubhï)�”}”(hŒBPerform a depth-first traversal of the given media entities graph.”h]”hŒBPerform a depth-first traversal of the given media entities graph.”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mkhj‹Ìubhï)�”}”(hŒbThe graph structure must have been previously initialized with a call to media_graph_walk_start().”h]”hŒbThe graph structure must have been previously initialized with a call to media_graph_walk_start().”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mmhj‹Ìubhï)�”}”(hŒ **Return**”h]”j')�”}”(hj0Íh]”hŒReturn”…”�”}”(hj2Íh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj.Íubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mphj‹Ìubhï)�”}”(hŒXreturns the next entity in the graph or ``NULL`` if the whole graph have been traversed.”h]”(hŒ(returns the next entity in the graph or ”…”�”}”(hjFÍh²hh³Nh´Nubj’)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjNÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjFÍubhŒ( if the whole graph have been traversed.”…”�”}”(hjFÍh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mqhj‹Ìubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ!media_pipeline_start (C function)”Œc.media_pipeline_start”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒPint media_pipeline_start (struct media_pad *origin, struct media_pipeline *pipe)”h]”j )�”}”(hŒOint media_pipeline_start(struct media_pad *origin, struct media_pipeline *pipe)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hj‡Íh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjƒÍh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mwubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj–Íh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjƒÍh²hh³j•Íh´Mwubj8 )�”}”(hŒmedia_pipeline_start”h]”j> )�”}”(hŒmedia_pipeline_start”h]”hŒmedia_pipeline_start”…”�”}”(hj¨Íh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¤Íubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjƒÍh²hh³j•Íh´Mwubj˜)�”}”(hŒ7(struct media_pad *origin, struct media_pipeline *pipe)”h]”(jž)�”}”(hŒstruct media_pad *origin”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÄÍh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÀÍubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑÍh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÀÍubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hjâÍh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjßÍubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jäÍŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jªÍsbŒc.media_pipeline_start”†”asbuh1hhjÀÍubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÀÍubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÀÍubj> )�”}”(hŒorigin”h]”hŒorigin”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÀÍubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj¼Íubjž)�”}”(hŒstruct media_pipeline *pipe”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj6Îh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj2Îubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjCÎh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj2Îubh)�”}”(hhh]”j> )�”}”(hŒmedia_pipeline”h]”hŒmedia_pipeline”…”�”}”(hjTÎh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjQÎubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jVÎŒmodname”NŒ classname”Njäjç)�”}”jê]”jþÍŒc.media_pipeline_start”†”asbuh1hhj2Îubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrÎh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj2Îubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj€Îh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj2Îubj> )�”}”(hŒpipe”h]”hŒpipe”…”�”}”(hj�Îh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj2Îubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj¼Íubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjƒÍh²hh³j•Íh´Mwubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÍh²hh³j•Íh´Mwubah}”(h]”jzÍah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j•Íh´Mwhj|Íh²hubjj )�”}”(hhh]”hï)�”}”(hŒMark a pipeline as streaming”h]”hŒMark a pipeline as streaming”…”�”}”(hj·Îh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mwhj´Îh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj|Íh²hh³j•Íh´Mwubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jÏÎjŒ jÏÎj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXc**Parameters** ``struct media_pad *origin`` Starting pad ``struct media_pipeline *pipe`` Media pipeline to be assigned to all pads in the pipeline. **Description** Mark all pads connected to pad **origin** through enabled links, either directly or indirectly, as streaming. The given pipeline object is assigned to every pad in the pipeline and stored in the media_pad pipe field. Calls to this function can be nested, in which case the same number of media_pipeline_stop() calls will be required to stop streaming. The pipeline pointer must be identical for all nested calls to media_pipeline_start().”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjÙÎh]”hŒ Parameters”…”�”}”(hjÛÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj×Îubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M{hjÓÎubjÛ )�”}”(hhh]”(jà )�”}”(hŒ*``struct media_pad *origin`` Starting pad ”h]”(jæ )�”}”(hŒ``struct media_pad *origin``”h]”j’)�”}”(hjøÎh]”hŒstruct media_pad *origin”…”�”}”(hjúÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjöÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MxhjòÎubj)�”}”(hhh]”hï)�”}”(hŒ Starting pad”h]”hŒ Starting pad”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j Ïh´MxhjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjòÎubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j Ïh´MxhjïÎubjà )�”}”(hŒ[``struct media_pipeline *pipe`` Media pipeline to be assigned to all pads in the pipeline. ”h]”(jæ )�”}”(hŒ``struct media_pipeline *pipe``”h]”j’)�”}”(hj1Ïh]”hŒstruct media_pipeline *pipe”…”�”}”(hj3Ïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj/Ïubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Myhj+Ïubj)�”}”(hhh]”hï)�”}”(hŒ:Media pipeline to be assigned to all pads in the pipeline.”h]”hŒ:Media pipeline to be assigned to all pads in the pipeline.”…”�”}”(hjJÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jFÏh´MyhjGÏubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj+Ïubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jFÏh´MyhjïÎubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÓÎubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjlÏh]”hŒ Description”…”�”}”(hjnÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M{hjÓÎubhï)�”}”(hŒØMark all pads connected to pad **origin** through enabled links, either directly or indirectly, as streaming. The given pipeline object is assigned to every pad in the pipeline and stored in the media_pad pipe field.”h]”(hŒMark all pads connected to pad ”…”�”}”(hj‚Ïh²hh³Nh´Nubj')�”}”(hŒ **origin**”h]”hŒorigin”…”�”}”(hjŠÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj‚ÏubhŒ¯ through enabled links, either directly or indirectly, as streaming. The given pipeline object is assigned to every pad in the pipeline and stored in the media_pad pipe field.”…”�”}”(hj‚Ïh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MzhjÓÎubhï)�”}”(hŒÝCalls to this function can be nested, in which case the same number of media_pipeline_stop() calls will be required to stop streaming. The pipeline pointer must be identical for all nested calls to media_pipeline_start().”h]”hŒÝCalls to this function can be nested, in which case the same number of media_pipeline_stop() calls will be required to stop streaming. The pipeline pointer must be identical for all nested calls to media_pipeline_start().”…”�”}”(hj£Ïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M~hjÓÎubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ#__media_pipeline_start (C function)”Œc.__media_pipeline_start”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒRint __media_pipeline_start (struct media_pad *origin, struct media_pipeline *pipe)”h]”j )�”}”(hŒQint __media_pipeline_start(struct media_pad *origin, struct media_pipeline *pipe)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hjÒÏh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjÎÏh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M‡ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjáÏh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÎÏh²hh³jàÏh´M‡ubj8 )�”}”(hŒ__media_pipeline_start”h]”j> )�”}”(hŒ__media_pipeline_start”h]”hŒ__media_pipeline_start”…”�”}”(hjóÏh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjïÏubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÎÏh²hh³jàÏh´M‡ubj˜)�”}”(hŒ7(struct media_pad *origin, struct media_pipeline *pipe)”h]”(jž)�”}”(hŒstruct media_pad *origin”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj Ðubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj Ðubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hj-Ðh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj*Ðubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j/ÐŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jõÏsbŒc.__media_pipeline_start”†”asbuh1hhj Ðubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjMÐh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj Ðubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj[Ðh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj Ðubj> )�”}”(hŒorigin”h]”hŒorigin”…”�”}”(hjhÐh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj Ðubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÐubjž)�”}”(hŒstruct media_pipeline *pipe”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj�Ðh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj}Ðubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽÐh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj}Ðubh)�”}”(hhh]”j> )�”}”(hŒmedia_pipeline”h]”hŒmedia_pipeline”…”�”}”(hjŸÐh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjœÐubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j¡ÐŒmodname”NŒ classname”Njäjç)�”}”jê]”jIÐŒc.__media_pipeline_start”†”asbuh1hhj}Ðubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½Ðh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj}Ðubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjËÐh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj}Ðubj> )�”}”(hŒpipe”h]”hŒpipe”…”�”}”(hjØÐh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj}Ðubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÐubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjÎÏh²hh³jàÏh´M‡ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÊÏh²hh³jàÏh´M‡ubah}”(h]”jÅÏah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jàÏh´M‡hjÇÏh²hubjj )�”}”(hhh]”hï)�”}”(hŒMark a pipeline as streaming”h]”hŒMark a pipeline as streaming”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M‡hjÿÐh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÇÏh²hh³jàÏh´M‡ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jÑjŒ jÑj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒî**Parameters** ``struct media_pad *origin`` Starting pad ``struct media_pipeline *pipe`` Media pipeline to be assigned to all pads in the pipeline. **Description** ..note:: This is the non-locking version of media_pipeline_start()”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj$Ñh]”hŒ Parameters”…”�”}”(hj&Ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj"Ñubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M‹hjÑubjÛ )�”}”(hhh]”(jà )�”}”(hŒ*``struct media_pad *origin`` Starting pad ”h]”(jæ )�”}”(hŒ``struct media_pad *origin``”h]”j’)�”}”(hjCÑh]”hŒstruct media_pad *origin”…”�”}”(hjEÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjAÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M‰hj=Ñubj)�”}”(hhh]”hï)�”}”(hŒ Starting pad”h]”hŒ Starting pad”…”�”}”(hj\Ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jXÑh´M‰hjYÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj=Ñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jXÑh´M‰hj:Ñubjà )�”}”(hŒ[``struct media_pipeline *pipe`` Media pipeline to be assigned to all pads in the pipeline. ”h]”(jæ )�”}”(hŒ``struct media_pipeline *pipe``”h]”j’)�”}”(hj|Ñh]”hŒstruct media_pipeline *pipe”…”�”•B}”(hj~Ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjzÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŠhjvÑubj)�”}”(hhh]”hï)�”}”(hŒ:Media pipeline to be assigned to all pads in the pipeline.”h]”hŒ:Media pipeline to be assigned to all pads in the pipeline.”…”�”}”(hj•Ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j‘Ñh´MŠhj’Ñubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjvÑubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j‘Ñh´MŠhj:Ñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÑubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj·Ñh]”hŒ Description”…”�”}”(hj¹Ñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjµÑubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŒhjÑubhï)�”}”(hŒB..note:: This is the non-locking version of media_pipeline_start()”h]”hŒB..note:: This is the non-locking version of media_pipeline_start()”…”�”}”(hjÍÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M‹hjÑubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ media_pipeline_stop (C function)”Œc.media_pipeline_stop”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ0void media_pipeline_stop (struct media_pad *pad)”h]”j )�”}”(hŒ/void media_pipeline_stop(struct media_pad *pad)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjüÑh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjøÑh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M’ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj Òh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjøÑh²hh³j Òh´M’ubj8 )�”}”(hŒmedia_pipeline_stop”h]”j> )�”}”(hŒmedia_pipeline_stop”h]”hŒmedia_pipeline_stop”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÒubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjøÑh²hh³j Òh´M’ubj˜)�”}”(hŒ(struct media_pad *pad)”h]”jž)�”}”(hŒstruct media_pad *pad”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj9Òh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj5Òubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFÒh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj5Òubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hjWÒh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjTÒubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jYÒŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jÒsbŒc.media_pipeline_stop”†”asbuh1hhj5Òubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwÒh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj5Òubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj…Òh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj5Òubj> )�”}”(hŒpad”h]”hŒpad”…”�”}”(hj’Òh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj5Òubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj1Òubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjøÑh²hh³j Òh´M’ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjôÑh²hh³j Òh´M’ubah}”(h]”jïÑah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j Òh´M’hjñÑh²hubjj )�”}”(hhh]”hï)�”}”(hŒ Mark a pipeline as not streaming”h]”hŒ Mark a pipeline as not streaming”…”�”}”(hj¼Òh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M’hj¹Òh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjñÑh²hh³j Òh´M’ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jÔÒjŒ jÔÒj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXƒ**Parameters** ``struct media_pad *pad`` Starting pad **Description** Mark all pads connected to a given pad through enabled links, either directly or indirectly, as not streaming. The media_pad pipe field is reset to ``NULL``. If multiple calls to media_pipeline_start() have been made, the same number of calls to this function are required to mark the pipeline as not streaming.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjÞÒh]”hŒ Parameters”…”�”}”(hjàÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÜÒubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M–hjØÒubjÛ )�”}”(hhh]”jà )�”}”(hŒ'``struct media_pad *pad`` Starting pad ”h]”(jæ )�”}”(hŒ``struct media_pad *pad``”h]”j’)�”}”(hjýÒh]”hŒstruct media_pad *pad”…”�”}”(hjÿÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjûÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M“hj÷Òubj)�”}”(hhh]”hï)�”}”(hŒ Starting pad”h]”hŒ Starting pad”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÓh´M“hjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj÷Òubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÓh´M“hjôÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjØÒubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj8Óh]”hŒ Description”…”�”}”(hj:Óh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj6Óubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M•hjØÒubhï)�”}”(hŒ�Mark all pads connected to a given pad through enabled links, either directly or indirectly, as not streaming. The media_pad pipe field is reset to ``NULL``.”h]”(hŒ”Mark all pads connected to a given pad through enabled links, either directly or indirectly, as not streaming. The media_pad pipe field is reset to ”…”�”}”(hjNÓh²hh³Nh´Nubj’)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjVÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjNÓubhŒ.”…”�”}”(hjNÓh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M”hjØÒubhï)�”}”(hŒ™If multiple calls to media_pipeline_start() have been made, the same number of calls to this function are required to mark the pipeline as not streaming.”h]”hŒ™If multiple calls to media_pipeline_start() have been made, the same number of calls to this function are required to mark the pipeline as not streaming.”…”�”}”(hjoÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M˜hjØÒubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ"__media_pipeline_stop (C function)”Œc.__media_pipeline_stop”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ2void __media_pipeline_stop (struct media_pad *pad)”h]”j )�”}”(hŒ1void __media_pipeline_stop(struct media_pad *pad)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjžÓh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjšÓh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj­Óh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjšÓh²hh³j¬Óh´M ubj8 )�”}”(hŒ__media_pipeline_stop”h]”j> )�”}”(hŒ__media_pipeline_stop”h]”hŒ__media_pipeline_stop”…”�”}”(hj¿Óh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj»Óubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjšÓh²hh³j¬Óh´M ubj˜)�”}”(hŒ(struct media_pad *pad)”h]”jž)�”}”(hŒstruct media_pad *pad”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÛÓh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj×Óubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjèÓh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj×Óubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hjùÓh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjöÓubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jûÓŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jÁÓsbŒc.__media_pipeline_stop”†”asbuh1hhj×Óubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj×Óubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj'Ôh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj×Óubj> )�”}”(hŒpad”h]”hŒpad”…”�”}”(hj4Ôh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj×Óubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÓÓubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjšÓh²hh³j¬Óh´M ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj–Óh²hh³j¬Óh´M ubah}”(h]”j‘Óah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j¬Óh´M hj“Óh²hubjj )�”}”(hhh]”hï)�”}”(hŒ Mark a pipeline as not streaming”h]”hŒ Mark a pipeline as not streaming”…”�”}”(hj^Ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hj[Ôh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj“Óh²hh³j¬Óh´M ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jvÔjŒ jvÔj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ�**Parameters** ``struct media_pad *pad`` Starting pad **Description** .. note:: This is the non-locking version of media_pipeline_stop()”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj€Ôh]”hŒ Parameters”…”�”}”(hj‚Ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj~Ôubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¤hjzÔubjÛ )�”}”(hhh]”jà )�”}”(hŒ'``struct media_pad *pad`` Starting pad ”h]”(jæ )�”}”(hŒ``struct media_pad *pad``”h]”j’)�”}”(hjŸÔh]”hŒstruct media_pad *pad”…”�”}”(hj¡Ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj�Ôubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¢hj™Ôubj)�”}”(hhh]”hï)�”}”(hŒ Starting pad”h]”hŒ Starting pad”…”�”}”(hj¸Ôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j´Ôh´M¢hjµÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj™Ôubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j´Ôh´M¢hj–Ôubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjzÔubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjÚÔh]”hŒ Description”…”�”}”(hjÜÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjØÔubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¤hjzÔubj¬)�”}”(hŒ8This is the non-locking version of media_pipeline_stop()”h]”hï)�”}”(hjòÔh]”hŒ8This is the non-locking version of media_pipeline_stop()”…”�”}”(hjôÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M£hjðÔubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjzÔubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ%media_pipeline_for_each_pad (C macro)”Œc.media_pipeline_for_each_pad”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_pipeline_for_each_pad”h]”j )�”}”(hŒmedia_pipeline_for_each_pad”h]”j8 )�”}”(hŒmedia_pipeline_for_each_pad”h]”j> )�”}”(hj"Õh]”hŒmedia_pipeline_for_each_pad”…”�”}”(hj,Õh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj(Õubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj$Õh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M®ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj Õh²hh³j?Õh´M®ubah}”(h]”jÕah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j?Õh´M®hjÕh²hubjj )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÕh²hh³j?Õh´M®ubeh}”(h]”h ]”(j³Œmacro”eh"]”h$]”h&]”jŠ j³j‹ jXÕjŒ jXÕj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubhï)�”}”(hŒ1``media_pipeline_for_each_pad (pipe, iter, pad)``”h]”j’)�”}”(hj^Õh]”hŒ-media_pipeline_for_each_pad (pipe, iter, pad)”…”�”}”(hj`Õh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj\Õubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M°hjá h²hubj§)�”}”(hŒ(Iterate on all pads in a media pipeline ”h]”hï)�”}”(hŒ'Iterate on all pads in a media pipeline”h]”hŒ'Iterate on all pads in a media pipeline”…”�”}”(hjxÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M®hjtÕubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦h³j†Õh´M®hjá h²hubj‘ )�”}”(hXB**Parameters** ``pipe`` The pipeline ``iter`` The iterator (struct media_pipeline_pad_iter) ``pad`` The iterator pad **Description** Iterate on all pads in a media pipeline. This is only valid after the pipeline has been built with media_pipeline_start() and before it gets destroyed with media_pipeline_stop().”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj“Õh]”hŒ Parameters”…”�”}”(hj•Õh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj‘Õubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M²hj�ÕubjÛ )�”}”(hhh]”(jà )�”}”(hŒ``pipe`` The pipeline ”h]”(jæ )�”}”(hŒ``pipe``”h]”j’)�”}”(hj²Õh]”hŒpipe”…”�”}”(hj´Õh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj°Õubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¯hj¬Õubj)�”}”(hhh]”hï)�”}”(hŒ The pipeline”h]”hŒ The pipeline”…”�”}”(hjËÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÇÕh´M¯hjÈÕubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¬Õubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÇÕh´M¯hj©Õubjà )�”}”(hŒ7``iter`` The iterator (struct media_pipeline_pad_iter) ”h]”(jæ )�”}”(hŒ``iter``”h]”j’)�”}”(hjëÕh]”hŒiter”…”�”}”(hjíÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjéÕubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M°hjåÕubj)�”}”(hhh]”hï)�”}”(hŒ-The iterator (struct media_pipeline_pad_iter)”h]”hŒ-The iterator (struct media_pipeline_pad_iter)”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÖh´M°hjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjåÕubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÖh´M°hj©Õubjà )�”}”(hŒ``pad`` The iterator pad ”h]”(jæ )�”}”(hŒ``pad``”h]”j’)�”}”(hj$Öh]”hŒpad”…”�”}”(hj&Öh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj"Öubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M±hjÖubj)�”}”(hhh]”hï)�”}”(hŒThe iterator pad”h]”hŒThe iterator pad”…”�”}”(hj=Öh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j9Öh´M±hj:Öubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÖubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j9Öh´M±hj©Õubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj�Õubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj_Öh]”hŒ Description”…”�”}”(hjaÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj]Öubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M³hj�Õubhï)�”}”(hŒ²Iterate on all pads in a media pipeline. This is only valid after the pipeline has been built with media_pipeline_start() and before it gets destroyed with media_pipeline_stop().”h]”hŒ²Iterate on all pads in a media pipeline. This is only valid after the pipeline has been built with media_pipeline_start() and before it gets destroyed with media_pipeline_stop().”…”�”}”(hjuÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M²hj�Õubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ,media_pipeline_entity_iter_init (C function)”Œ!c.media_pipeline_entity_iter_init”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒjint media_pipeline_entity_iter_init (struct media_pipeline *pipe, struct media_pipeline_entity_iter *iter)”h]”j )�”}”(hŒiint media_pipeline_entity_iter_init(struct media_pipeline *pipe, struct media_pipeline_entity_iter *iter)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hj¤Öh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj Öh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M½ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³Öh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj Öh²hh³j²Öh´M½ubj8 )�”}”(hŒmedia_pipeline_entity_iter_init”h]”j> )�”}”(hŒmedia_pipeline_entity_iter_init”h]”hŒmedia_pipeline_entity_iter_init”…”�”}”(hjÅÖh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÁÖubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj Öh²hh³j²Öh´M½ubj˜)�”}”(hŒF(struct media_pipeline *pipe, struct media_pipeline_entity_iter *iter)”h]”(jž)�”}”(hŒstruct media_pipeline *pipe”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjáÖh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÝÖubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjîÖh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÝÖubh)�”}”(hhh]”j> )�”}”(hŒmedia_pipeline”h]”hŒmedia_pipeline”…”�”}”(hjÿÖh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjüÖubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j׌modname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jÇÖsbŒ!c.media_pipeline_entity_iter_init”†”asbuh1hhjÝÖubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÝÖubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj-×h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÝÖubj> )�”}”(hŒpipe”h]”hŒpipe”…”�”}”(hj:×h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÝÖubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÙÖubjž)�”}”(hŒ'struct media_pipeline_entity_iter *iter”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjS×h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjO×ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`×h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjO×ubh)�”}”(hhh]”j> )�”}”(hŒmedia_pipeline_entity_iter”h]”hŒmedia_pipeline_entity_iter”…”�”}”(hjq×h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjn×ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”js׌modname”NŒ classname”Njäjç)�”}”jê]”j׌!c.media_pipeline_entity_iter_init”†”asbuh1hhjO×ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�×h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjO×ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj�×h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjO×ubj> )�”}”(hŒiter”h]”hŒiter”…”�”}”(hjª×h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjO×ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÙÖubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj Öh²hh³j²Öh´M½ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjœÖh²hh³j²Öh´M½ubah}”(h]”j—Öah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j²Öh´M½hj™Öh²hubjj )�”}”(hhh]”hï)�”}”(hŒ%Initialize a pipeline entity iterator”h]”hŒ%Initialize a pipeline entity iterator”…”�”}”(hjÔ×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M½hjÑ×h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj™Öh²hh³j²Öh´M½ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jì×jŒ jì×j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX8**Parameters** ``struct media_pipeline *pipe`` The pipeline ``struct media_pipeline_entity_iter *iter`` The iterator **Description** This function must be called to initialize the iterator before using it in a media_pipeline_for_each_entity() loop. The iterator must be destroyed by a call to media_pipeline_entity_iter_cleanup after the loop (including in code paths that break from the loop). The same iterator can be used in multiple consecutive loops without being destroyed and reinitialized. **Return** 0 on success or a negative error code otherwise.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjö×h]”hŒ Parameters”…”�”}”(hjø×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjô×ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÁhjð×ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ-``struct media_pipeline *pipe`` The pipeline ”h]”(jæ )�”}”(hŒ``struct media_pipeline *pipe``”h]”j’)�”}”(hjØh]”hŒstruct media_pipeline *pipe”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjØubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¾hjØubj)�”}”(hhh]”hï)�”}”(hŒ The pipeline”h]”hŒ The pipeline”…”�”}”(hj.Øh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j*Øh´M¾hj+Øubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjØubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j*Øh´M¾hj Øubjà )�”}”(hŒ9``struct media_pipeline_entity_iter *iter`` The iterator ”h]”(jæ )�”}”(hŒ+``struct media_pipeline_entity_iter *iter``”h]”j’)�”}”(hjNØh]”hŒ'struct media_pipeline_entity_iter *iter”…”�”}”(hjPØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjLØubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M¿hjHØubj)�”}”(hhh]”hï)�”}”(hŒ The iterator”h]”hŒ The iterator”…”�”}”(hjgØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jcØh´M¿hjdØubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjHØubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jcØh´M¿hj Øubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjð×ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj‰Øh]”hŒ Description”…”�”}”(hj‹Øh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj‡Øubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÁhjð×ubhï)�”}”(hXThis function must be called to initialize the iterator before using it in a media_pipeline_for_each_entity() loop. The iterator must be destroyed by a call to media_pipeline_entity_iter_cleanup after the loop (including in code paths that break from the loop).”h]”hXThis function must be called to initialize the iterator before using it in a media_pipeline_for_each_entity() loop. The iterator must be destroyed by a call to media_pipeline_entity_iter_cleanup after the loop (including in code paths that break from the loop).”…”�”}”(hjŸØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÀhjð×ubhï)�”}”(hŒfThe same iterator can be used in multiple consecutive loops without being destroyed and reinitialized.”h]”hŒfThe same iterator can be used in multiple consecutive loops without being destroyed and reinitialized.”…”�”}”(hj®Øh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÅhjð×ubhï)�”}”(hŒ **Return**”h]”j')�”}”(hj¿Øh]”hŒReturn”…”�”}”(hjÁØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj½Øubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÈhjð×ubhï)�”}”(hŒ00 on success or a negative error code otherwise.”h]”hŒ00 on success or a negative error code otherwise.”…”�”}”(hjÕØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÉhjð×ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ/media_pipeline_entity_iter_cleanup (C function)”Œ$c.media_pipeline_entity_iter_cleanup”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒQvoid media_pipeline_entity_iter_cleanup (struct media_pipeline_entity_iter *iter)”h]”j )�”}”(hŒPvoid media_pipeline_entity_iter_cleanup(struct media_pipeline_entity_iter *iter)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjÙh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÏubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÙh²hh³jÙh´MÏubj8 )�”}”(hŒ"media_pipeline_entity_iter_cleanup”h]”j> )�”}”(hŒ"media_pipeline_entity_iter_cleanup”h]”hŒ"media_pipeline_entity_iter_cleanup”…”�”}”(hj%Ùh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj!Ùubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÙh²hh³jÙh´MÏubj˜)�”}”(hŒ)(struct media_pipeline_entity_iter *iter)”h]”jž)�”}”(hŒ'struct media_pipeline_entity_iter *iter”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjAÙh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj=Ùubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNÙh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj=Ùubh)�”}”(hhh]”j> )�”}”(hŒmedia_pipeline_entity_iter”h]”hŒmedia_pipeline_entity_iter”…”�”}”(hj_Ùh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj\Ùubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jaÙŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j'ÙsbŒ$c.media_pipeline_entity_iter_cleanup”†”asbuh1hhj=Ùubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj=Ùubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj�Ùh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj=Ùubj> )�”}”(hŒiter”h]”hŒiter”…”�”}”(hjšÙh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj=Ùubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj9Ùubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjÙh²hh³jÙh´MÏubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjüØh²hh³jÙh´MÏubah}”(h]”j÷Øah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÙh´MÏhjùØh²hubjj )�”}”(hhh]”hï)�”}”(hŒ"Destroy a pipeline entity iterator”h]”hŒ"Destroy a pipeline entity iterator”…”�”}”(hjÄÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÏhjÁÙh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjùØh²hh³jÙh´MÏubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jÜÙjŒ jÜÙj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒÂ**Parameters** ``struct media_pipeline_entity_iter *iter`` The iterator **Description** This function must be called to destroy iterators initialized with media_pipeline_entity_iter_init().”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjæÙh]”hŒ Parameters”…”�”}”(hjèÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjäÙubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÓhjàÙubjÛ )�”}”(hhh]”jà )�”}”(hŒ9``struct media_pipeline_entity_iter *iter`` The iterator ”h]”(jæ )�”}”(hŒ+``struct media_pipeline_entity_iter *iter``”h]”j’)�”}”(hjÚh]”hŒ'struct media_pipeline_entity_iter *iter”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÐhjÿÙubj)�”}”(hhh]”hï)�”}”(hŒ The iterator”h]”hŒ The iterator”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÚh´MÐhjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÿÙubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÚh´MÐhjüÙubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjàÙubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj@Úh]”hŒ Description”…”�”}”(hjBÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj>Úubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÒhjàÙubhï)�”}”(hŒeThis function must be called to destroy iterators initialized with media_pipeline_entity_iter_init().”h]”hŒeThis function must be called to destroy iterators initialized with media_pipeline_entity_iter_init().”…”�”}”(hjVÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÑhjàÙubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ(media_pipeline_for_each_entity (C macro)”Œ c.media_pipeline_for_each_entity”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_pipeline_for_each_entity”h]”j )�”}”(hŒmedia_pipeline_for_each_entity”h]”j8 )�”}”(hŒmedia_pipeline_for_each_entity”h]”j> )�”}”(hjÚh]”hŒmedia_pipeline_for_each_entity”…”�”}”(hj‰Úh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj…Úubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj�Úh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÝubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj}Úh²hh³jœÚh´MÝubah}”(h]”jxÚah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jœÚh´MÝhjzÚh²hubjj )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1ji hjzÚh²hh³jœÚh´MÝubeh}”(h]”h ]”(j³Œmacro”eh"]”h$]”h&]”jŠ j³j‹ jµÚjŒ jµÚj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubhï)�”}”(hŒ7``media_pipeline_for_each_entity (pipe, iter, entity)``”h]”j’)�”}”(hj»Úh]”hŒ3media_pipeline_for_each_entity (pipe, iter, entity)”…”�”}”(hj½Úh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¹Úubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mßhjá h²hubj§)�”}”(hŒ,Iterate on all entities in a media pipeline ”h]”hï)�”}”(hŒ+Iterate on all entities in a media pipeline”h]”hŒ+Iterate on all entities in a media pipeline”…”�”}”(hjÕÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÝhjÑÚubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦h³jãÚh´MÝhjá h²hubj‘ )�”}”(hX**Parameters** ``pipe`` The pipeline ``iter`` The iterator (struct media_pipeline_entity_iter) ``entity`` The iterator entity **Description** Iterate on all entities in a media pipeline. This is only valid after the pipeline has been built with media_pipeline_start() and before it gets destroyed with media_pipeline_stop(). The iterator must be initialized with media_pipeline_entity_iter_init() before iteration, and destroyed with media_pipeline_entity_iter_cleanup() after (including in code paths that break from the loop).”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjðÚh]”hŒ Parameters”…”�”}”(hjòÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjîÚubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MáhjêÚubjÛ )�”}”(hhh]”(jà )�”}”(hŒ``pipe`` The pipeline ”h]”(jæ )�”}”(hŒ``pipe``”h]”j’)�”}”(hjÛh]”hŒpipe”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj Ûubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MÞhj Ûubj)�”}”(hhh]”hï)�”}”(hŒ The pipeline”h]”hŒ The pipeline”…”�”}”(hj(Ûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j$Ûh´MÞhj%Ûubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj Ûubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j$Ûh´MÞhjÛubjà )�”}”(hŒ:``iter`` The iterator (struct media_pipeline_entity_iter) ”h]”(jæ )�”}”(hŒ``iter``”h]”j’)�”}”(hjHÛh]”hŒiter”…”�”}”(hjJÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjFÛubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MßhjBÛubj)�”}”(hhh]”hï)�”}”(hŒ0The iterator (struct media_pipeline_entity_iter)”h]”hŒ0The iterator (struct media_pipeline_entity_iter)”…”�”}”(hjaÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j]Ûh´Mßhj^Ûubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjBÛubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j]Ûh´MßhjÛubjà )�”}”(hŒ``entity`` The iterator entity ”h]”(jæ )�”}”(hŒ ``entity``”h]”j’)�”}”(hj�Ûh]”hŒentity”…”�”}”(hjƒÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Màhj{Ûubj)�”}”(hhh]”hï)�”}”(hŒThe iterator entity”h]”hŒThe iterator entity”…”�”}”(hjšÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j–Ûh´Màhj—Ûubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj{Ûubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j–Ûh´MàhjÛubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjêÚubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj¼Ûh]”hŒ Description”…”�”}”(hj¾Ûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjºÛubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MâhjêÚubhï)�”}”(hX‚Iterate on all entities in a media pipeline. This is only valid after the pipeline has been built with media_pipeline_start() and before it gets destroyed with media_pipeline_stop(). The iterator must be initialized with media_pipeline_entity_iter_init() before iteration, and destroyed with media_pipeline_entity_iter_cleanup() after (including in code paths that break from the loop).”h]”hX‚Iterate on all entities in a media pipeline. This is only valid after the pipeline has been built with media_pipeline_start() and before it gets destroyed with media_pipeline_stop(). The iterator must be initialized with media_pipeline_entity_iter_init() before iteration, and destroyed with media_pipeline_entity_iter_cleanup() after (including in code paths that break from the loop).”…”�”}”(hjÒÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MáhjêÚubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ'media_pipeline_alloc_start (C function)”Œc.media_pipeline_alloc_start”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ6int media_pipeline_alloc_start (struct media_pad *pad)”h]”j )�”}”(hŒ5int media_pipeline_alloc_start(struct media_pad *pad)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjýÛh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mïubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjýÛh²hh³jÜh´Mïubj8 )�”}”(hŒmedia_pipeline_alloc_start”h]”j> )�”}”(hŒmedia_pipeline_alloc_start”h]”hŒmedia_pipeline_alloc_start”…”�”}”(hj"Üh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÜubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjýÛh²hh³jÜh´Mïubj˜)�”}”(hŒ(struct media_pad *pad)”h]”jž)�”}”(hŒstruct media_pad *pad”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj>Üh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj:Üubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjKÜh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj:Üubh)�”}”(hhh]”j> )�”}”(hŒ media_pad”h]”hŒ media_pad”…”�”}”(hj\Üh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjYÜubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j^ÜŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j$ÜsbŒc.media_pipeline_alloc_start”†”asbuh1hhj:Üubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|Üh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj:Üubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjŠÜh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj:Üubj> )�”}”(hŒpad”h]”hŒpad”…”�”}”(hj—Üh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj:Üubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj6Üubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjýÛh²hh³jÜh´Mïubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjùÛh²hh³jÜh´Mïubah}”(h]”jôÛah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÜh´MïhjöÛh²hubjj )�”}”(hhh]”hï)�”}”(hŒMark a pipeline as streaming”h]”hŒMark a pipeline as streaming”…”�”}”(hjÁÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mïhj¾Üh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjöÛh²hh³jÜh´Mïubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jÙÜjŒ jÙÜj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX{**Parameters** ``struct media_pad *pad`` Starting pad **Description** media_pipeline_alloc_start() is similar to media_pipeline_start() but instead of working on a given pipeline the function will use an existing pipeline if the pad is already part of a pipeline, or allocate a new pipeline. Calls to media_pipeline_alloc_start() must be matched with media_pipeline_stop().”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjãÜh]”hŒ Parameters”…”�”}”(hjåÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjáÜubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MóhjÝÜubjÛ )�”}”(hhh]”jà )�”}”(hŒ'``struct media_pad *pad`` Starting pad ”h]”(jæ )�”}”(hŒ``struct media_pad *pad``”h]”j’)�”}”(hjÝh]”hŒstruct media_pad *pad”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MðhjüÜubj)�”}”(hhh]”hï)�”}”(hŒ Starting pad”h]”hŒ Starting pad”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÝh´MðhjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjüÜubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÝh´MðhjùÜubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÝÜubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj=Ýh]”hŒ Description”…”�”}”(hj?Ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj;Ýubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MòhjÝÜubhï)�”}”(hŒÝmedia_pipeline_alloc_start() is similar to media_pipeline_start() but instead of working on a given pipeline the function will use an existing pipeline if the pad is already part of a pipeline, or allocate a new pipeline.”h]”hŒÝmedia_pipeline_alloc_start() is similar to media_pipeline_start() but instead of working on a given pipeline the function will use an existing pipeline if the pad is already part of a pipeline, or allocate a new pipeline.”…”�”}”(hjSÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MñhjÝÜubhï)�”}”(hŒQCalls to media_pipeline_alloc_start() must be matched with media_pipeline_stop().”h]”hŒQCalls to media_pipeline_alloc_start() must be matched with media_pipeline_stop().”…”�”}”(hjbÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MõhjÝÜubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ!media_devnode_create (C function)”Œc.media_devnode_create”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒwstruct media_intf_devnode * media_devnode_create (struct media_device *mdev, u32 type, u32 flags, u32 major, u32 minor)”h]”j )�”}”(hŒustruct media_intf_devnode *media_devnode_create(struct media_device *mdev, u32 type, u32 flags, u32 major, u32 minor)”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj‘Ýh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj�Ýh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Müubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŸÝh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj�Ýh²hh³jžÝh´Müubh)�”}”(hhh]”j> )�”}”(hŒmedia_intf_devnode”h]”hŒmedia_intf_devnode”…”�”}”(hj°Ýh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj­Ýubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j²ÝŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_devnode_create”sbŒc.media_devnode_create”†”asbuh1hhj�Ýh²hh³jžÝh´Müubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÑÝh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj�Ýh²hh³jžÝh´Müubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjßÝh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj�Ýh²hh³jžÝh´Müubj8 )�”}”(hŒmedia_devnode_create”h]”j> )�”}”(hjÎÝh]”hŒmedia_devnode_create”…”�”}”(hjðÝh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjìÝubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj�Ýh²hh³jžÝh´Müubj˜)�”}”(hŒF(struct media_device *mdev, u32 type, u32 flags, u32 major, u32 minor)”h]”(jž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj Þh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÞubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÞubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hj)Þh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj&Þubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j+ÞŒmodname”NŒ classname”Njäjç)�”}”jê]”jÌÝŒc.media_devnode_create”†”asbuh1hhjÞubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjGÞh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÞubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjUÞh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÞubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hjbÞh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÞubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÞubjž)�”}”(hŒu32 type”h]”(h)�”}”(hhh]”j> )�”}”(hŒu32”h]”hŒu32”…”�”}”(hj~Þh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj{Þubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j€ÞŒmodname”NŒ classname”Njäjç)�”}”jê]”jÌÝŒc.media_devnode_create”†”asbuh1hhjwÞubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœÞh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjwÞubj> )�”}”(hŒtype”h]”hŒtype”…”�”}”(hjªÞh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjwÞubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÞubjž)�”}”(hŒ u32 flags”h]”(h)�”}”(hhh]”j> )�”}”(hŒu32”h]”hŒu32”…”�”}”(hjÆÞh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÃÞubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jÈÞŒmodname”NŒ classname”Njäjç)�”}”jê]”jÌÝŒc.media_devnode_create”†”asbuh1hhj¿Þubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjäÞh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj¿Þubj> )�”}”(hŒflags”h]”hŒflags”…”�”}”(hjòÞh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¿Þubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÞubjž)�”}”(hŒ u32 major”h]”(h)�”}”(hhh]”j> )�”}”(hŒu32”h]”hŒu32”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj ßubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jߌmodname”NŒ classname”Njäjç)�”}”jê]”jÌÝŒc.media_devnode_create”†”asbuh1hhjßubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,ßh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjßubj> )�”}”(hŒmajor”h]”hŒmajor”…”�”}”(hj:ßh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjßubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÞubjž)�”}”(hŒ u32 minor”h]”(h)�”}”(hhh]”j> )�”}”(hŒu32”h]”hŒu32”…”�”}”(hjVßh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjSßubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jXߌmodname”NŒ classname”Njäjç)�”}”jê]”jÌÝŒc.media_devnode_create”†”asbuh1hhjOßubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjtßh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjOßubj> )�”}”(hŒminor”h]”hŒminor”…”�”}”(hj‚ßh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjOßubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÞubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj�Ýh²hh³jžÝh´Müubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj‰Ýh²hh³jžÝh´Müubah}”(h]”j„Ýah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jžÝh´Mühj†Ýh²hubjj )�”}”(hhh]”hï)�”}”(hŒ/creates and initializes a device node interface”h]”hŒ/creates and initializes a device node interface”…”�”}”(hj¬ßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mühj©ßh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj†Ýh²hh³jžÝh´Müubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jÄßjŒ jÄßj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXŠ**Parameters** ``struct media_device *mdev`` pointer to struct :c:type:`media_device` ``u32 type`` type of the interface, as given by :ref:`include/uapi/linux/media.h ` ( seek for ``MEDIA_INTF_T_*``) macros. ``u32 flags`` Interface flags, as defined in :ref:`include/uapi/linux/media.h ` ( seek for ``MEDIA_INTF_FL_*``) ``u32 major`` Device node major number. ``u32 minor`` Device node minor number. **Return** if succeeded, returns a pointer to the newly allocated :c:type:`media_intf_devnode` pointer. **Description** .. note:: Currently, no flags for :c:type:`media_interface` is defined.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjÎßh]”hŒ Parameters”…”�”}”(hjÐßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÌßubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjÈßubjÛ )�”}”(hhh]”(jà )�”}”(hŒG``struct media_device *mdev`` pointer to struct :c:type:`media_device` ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hjíßh]”hŒstruct media_device *mdev”…”�”}”(hjïßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjëßubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mþhjçßubj)�”}”(hhh]”hï)�”}”(hŒ(pointer to struct :c:type:`media_device`”h]”(hŒpointer to struct ”…”�”}”(hjàh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hjàh]”hŒ media_device”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjàubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³jàh´Mþhjàubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jàh´Mþhjàubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjçßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jàh´Mþhjäßubjà )�”}”(hŒˆ``u32 type`` type of the interface, as given by :ref:`include/uapi/linux/media.h ` ( seek for ``MEDIA_INTF_T_*``) macros. ”h]”(jæ )�”}”(hŒ ``u32 type``”h]”j’)�”}”(hjEàh]”hŒu32 type”…”�”}”(hjGàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjCàubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj?àubj)�”}”(hhh]”hï)�”}”(hŒztype of the interface, as given by :ref:`include/uapi/linux/media.h ` ( seek for ``MEDIA_INTF_T_*``) macros.”h]”(hŒ#type of the interface, as given by ”…”�”}”(hj^àh²hh³Nh´Nubh)�”}”(hŒ0:ref:`include/uapi/linux/media.h `”h]”hý)�”}”(hjhàh]”hŒinclude/uapi/linux/media.h”…”�”}”(hjjàh²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1hühjfàubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jtàŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjŒ media_header”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mÿhj^àubhŒ ( seek for ”…”�”}”(hj^àh²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_INTF_T_*``”h]”hŒMEDIA_INTF_T_*”…”�”}”(hj‹àh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj^àubhŒ ) macros.”…”�”}”(hj^àh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j†àh´Mÿhj[àubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj?àubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jZàh´Mhjäßubjà )�”}”(hŒ~``u32 flags`` Interface flags, as defined in :ref:`include/uapi/linux/media.h ` ( seek for ``MEDIA_INTF_FL_*``) ”h]”(jæ )�”}”(hŒ ``u32 flags``”h]”j’)�”}”(hjµàh]”hŒ u32 flags”…”�”}”(hj·àh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj³àubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj¯àubj)�”}”(hhh]”hï)�”}”(hŒoInterface flags, as defined in :ref:`include/uapi/linux/media.h ` ( seek for ``MEDIA_INTF_FL_*``)”h]”(hŒInterface flags, as defined in ”…”�”}”(hjÎàh²hh³Nh´Nubh)�”}”(hŒ0:ref:`include/uapi/linux/media.h `”h]”hý)�”}”(hjØàh]”hŒinclude/uapi/linux/media.h”…”�”}”(hjÚàh²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1hühjÖàubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jäàŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjŒ media_header”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjÎàubhŒ ( seek for ”…”�”}”(hjÎàh²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_INTF_FL_*``”h]”hŒMEDIA_INTF_FL_*”…”�”}”(hjûàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÎàubhŒ)”…”�”}”(hjÎàh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jöàh´MhjËàubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¯àubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÊàh´Mhjäßubjà )�”}”(hŒ(``u32 major`` Device node major number. ”h]”(jæ )�”}”(hŒ ``u32 major``”h]”j’)�”}”(hj%áh]”hŒ u32 major”…”�”}”(hj'áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj#áubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjáubj)�”}”(hhh]”hï)�”}”(hŒDevice node major number.”h]”hŒDevice node major number.”…”�”}”(hj>áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j:áh´Mhj;áubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjáubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j:áh´Mhjäßubjà )�”}”(hŒ(``u32 minor`` Device node minor number. ”h]”(jæ )�”}”(hŒ ``u32 minor``”h]”j’)�”}”(hj^áh]”hŒ u32 minor”…”�”}”(hj`áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj\áubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjXáubj)�”}”(hhh]”hï)�”}”(hŒDevice node minor number.”h]”hŒDevice node minor number.”…”�”}”(hjwáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jsáh´Mhjtáubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjXáubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jsáh´Mhjäßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÈßubhï)�”}”(hŒ **Return**”h]”j')�”}”(hj™áh]”hŒReturn”…”�”}”(hj›áh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj—áubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjÈßubhï)�”}”(hŒ\if succeeded, returns a pointer to the newly allocated :c:type:`media_intf_devnode` pointer.”h]”(hŒ7if succeeded, returns a pointer to the newly allocated ”…”�”}”(hj¯áh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_intf_devnode`”h]”j’)�”}”(hj¹áh]”hŒmedia_intf_devnode”…”�”}”(hj»áh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj·áubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒmedia_intf_devnode”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj¯áubhŒ pointer.”…”�”}”(hj¯áh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÖáh´MhjÈßubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjãáh]”hŒ Description”…”�”}”(hjåáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjááubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hjÈßubj¬)�”}”(hŒ=Currently, no flags for :c:type:`media_interface` is defined.”h]”hï)�”}”(hjûáh]”(hŒCurrently, no flags for ”…”�”}”(hjýáh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_interface`”h]”j’)�”}”(hjâh]”hŒmedia_interface”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjâubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒmedia_interface”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hjýáubhŒ is defined.”…”�”}”(hjýáh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j#âh´M hjùáubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÈßubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ!media_devnode_remove (C function)”Œc.media_devnode_remove”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ>void media_devnode_remove (struct media_intf_devnode *devnode)”h]”j )�”}”(hŒ=void media_devnode_remove(struct media_intf_devnode *devnode)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjTâh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjPâh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjcâh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjPâh²hh³jbâh´Mubj8 )�”}”(hŒmedia_devnode_remove”h]”j> )�”}”(hŒmedia_devnode_remove”h]”hŒmedia_devnode_remove”…”�”}”(hjuâh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjqâubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjPâh²hh³jbâh´Mubj˜)�”}”(hŒ$(struct media_intf_devnode *devnode)”h]”jž)�”}”(hŒ"struct media_intf_devnode *devnode”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj‘âh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj�âubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjžâh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj�âubh)�”}”(hhh]”j> )�”}”(hŒmedia_intf_devnode”h]”hŒmedia_intf_devnode”…”�”}”(hj¯âh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¬âubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j±âŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jwâsbŒc.media_devnode_remove”†”asbuh1hhj�âubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏâh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj�âubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÝâh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj�âubj> )�”}”(hŒdevnode”h]”hŒdevnode”…”�”}”(hjêâh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj�âubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj‰âubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjPâh²hh³jbâh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjLâh²hh³jbâh´Mubah}”(h]”jGâah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jbâh´MhjIâh²hubjj )�”}”(hhh]”hï)�”}”(hŒremoves a device node interface”h]”hŒremoves a device node interface”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhjãh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjIâh²hh³jbâh´Mubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j,ãjŒ j,ãj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒÓ**Parameters** ``struct media_intf_devnode *devnode`` pointer to :c:type:`media_intf_devnode` to be freed. **Description** When a device node interface is removed, all links to it are automatically removed.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj6ãh]”hŒ Parameters”…”�”}”(hj8ãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj4ãubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj0ãubjÛ )�”}”(hhh]”jà )�”}”(hŒ\``struct media_intf_devnode *devnode`` pointer to :c:type:`media_intf_devnode` to be freed. ”h]”(jæ )�”}”(hŒ&``struct media_intf_devnode *devnode``”h]”j’)�”}”(hjUãh]”hŒ"struct media_intf_devnode *devnode”…”�”}”(hjWãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjSãubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhjOãubj)�”}”(hhh]”hï)�”}”(hŒ4pointer to :c:type:`media_intf_devnode` to be freed.”h]”(hŒ pointer to ”…”�”}”(hjnãh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_intf_devnode`”h]”j’)�”}”(hjxãh]”hŒmedia_intf_devnode”…”�”}”(hjzãh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjvãubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒmedia_intf_devnode”uh1hh³jjãh´MhjnãubhŒ to be freed.”…”�”}”(hjnãh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jjãh´Mhjkãubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjOãubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jjãh´MhjLãubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj0ãubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj³ãh]”hŒ Description”…”�”}”(hjµãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj±ãubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj0ãubhï)�”}”(hŒSWhen a device node interface is removed, all links to it are automatically removed.”h]”hŒSWhen a device node interface is removed, all links to it are automatically removed.”…”�”}”(hjÉãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj0ãubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ#media_create_intf_link (C function)”Œc.media_create_intf_link”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒqstruct media_link * media_create_intf_link (struct media_entity *entity, struct media_interface *intf, u32 flags)”h]”j )�”}”(hŒostruct media_link *media_create_intf_link(struct media_entity *entity, struct media_interface *intf, u32 flags)”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjøãh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjôãh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjôãh²hh³jäh´Mubh)�”}”(hhh]”j> )�”}”(hŒ media_link”h]”hŒ media_link”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjäubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jäŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_create_intf_link”sbŒc.media_create_intf_link”†”asbuh1hhjôãh²hh³jäh´Mubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8äh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjôãh²hh³jäh´Mubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjFäh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjôãh²hh³jäh´Mubj8 )�”}”(hŒmedia_create_intf_link”h]”j> )�”}”(hj5äh]”hŒmedia_create_intf_link”…”�”}”(hjWäh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjSäubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjôãh²hh³jäh´Mubj˜)�”}”(hŒF(struct media_entity *entity, struct media_interface *intf, u32 flags)”h]”(jž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjräh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjnäubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjnäubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hj�äh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj�äubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j’äŒmodname”NŒ classname”Njäjç)�”}”jê]”j3äŒc.media_create_intf_link”†”asbuh1hhjnäubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®äh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjnäubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj¼äh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjnäubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hjÉäh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjnäubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjjäubjž)�”}”(hŒstruct media_interface *intf”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjâäh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÞäubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjïäh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÞäubh)�”}”(hhh]”j> )�”}”(hŒmedia_interface”h]”hŒmedia_interface”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjýäubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jåŒmodname”NŒ classname”Njäjç)�”}”jê]”j3äŒc.media_create_intf_link”†”asbuh1hhjÞäubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÞäubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj,åh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÞäubj> )�”}”(hŒintf”h]”hŒintf”…”�”}”(hj9åh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÞäubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjjäubjž)�”}”(hŒ u32 flags”h]”(h)�”}”(hhh]”j> )�”}”(hŒu32”h]”hŒu32”…”�”}”(hjUåh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjRåubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jWåŒmodname”NŒ classname”Njäjç)�”}”jê]”j3äŒc.media_create_intf_link”†”asbuh1hhjNåubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjsåh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjNåubj> )�”}”(hŒflags”h]”hŒflags”…”�”}”(hj�åh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjNåubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjjäubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjôãh²hh³jäh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjðãh²hh³jäh´Mubah}”(h]”jëãah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jäh´Mhjíãh²hubjj )�”}”(hhh]”hï)�”}”(hŒ1creates a link between an entity and an interface”h]”hŒ1creates a link between an entity and an interface”…”�”}”(hj«åh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj¨åh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjíãh²hh³jäh´Mubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jÃåjŒ jÃåj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX**Parameters** ``struct media_entity *entity`` pointer to ``media_entity`` ``struct media_interface *intf`` pointer to ``media_interface`` ``u32 flags`` Link flags, as defined in :ref:`include/uapi/linux/media.h ` ( seek for ``MEDIA_LNK_FL_*``) **Description** Valid values for flags: ``MEDIA_LNK_FL_ENABLED`` Indicates that the interface is connected to the entity hardware. That's the default value for interfaces. An interface may be disabled if the hardware is busy due to the usage of some other interface that it is currently controlling the hardware. A typical example is an hybrid TV device that handle only one type of stream on a given time. So, when the digital TV is streaming, the V4L2 interfaces won't be enabled, as such device is not able to also stream analog TV or radio. .. note:: Before calling this function, media_devnode_create() should be called for the interface and media_device_register_entity() should be called for the interface that will be part of the link.”•h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjÍåh]”hŒ Parameters”…”�”}”(hjÏåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjËåubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M"hjÇåubjÛ )�”}”(hhh]”(jà )�”}”(hŒ<``struct media_entity *entity`` pointer to ``media_entity`` ”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hjìåh]”hŒstruct media_entity *entity”…”�”}”(hjîåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjêåubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hjæåubj)�”}”(hhh]”hï)�”}”(hŒpointer to ``media_entity``”h]”(hŒ pointer to ”…”�”}”(hjæh²hh³Nh´Nubj’)�”}”(hŒ``media_entity``”h]”hŒ media_entity”…”�”}”(hj æh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjæubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jæh´M hjæubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjæåubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jæh´M hjãåubjà )�”}”(hŒ@``struct media_interface *intf`` pointer to ``media_interface`` ”h]”(jæ )�”}”(hŒ ``struct media_interface *intf``”h]”j’)�”}”(hj3æh]”hŒstruct media_interface *intf”…”�”}”(hj5æh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj1æubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M!hj-æubj)�”}”(hhh]”hï)�”}”(hŒpointer to ``media_interface``”h]”(hŒ pointer to ”…”�”}”(hjLæh²hh³Nh´Nubj’)�”}”(hŒ``media_interface``”h]”hŒmedia_interface”…”�”}”(hjTæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjLæubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jHæh´M!hjIæubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj-æubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jHæh´M!hjãåubjà )�”}”(hŒx``u32 flags`` Link flags, as defined in :ref:`include/uapi/linux/media.h ` ( seek for ``MEDIA_LNK_FL_*``) ”h]”(jæ )�”}”(hŒ ``u32 flags``”h]”j’)�”}”(hjzæh]”hŒ u32 flags”…”�”}”(hj|æh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjxæubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M$hjtæubj)�”}”(hhh]”hï)�”}”(hŒiLink flags, as defined in :ref:`include/uapi/linux/media.h ` ( seek for ``MEDIA_LNK_FL_*``)”h]”(hŒLink flags, as defined in ”…”�”}”(hj“æh²hh³Nh´Nubh)�”}”(hŒ0:ref:`include/uapi/linux/media.h `”h]”hý)�”}”(hj�æh]”hŒinclude/uapi/linux/media.h”…”�”}”(hjŸæh²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1hühj›æubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j©æŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆjŒ media_header”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M"hj“æubhŒ ( seek for ”…”�”}”(hj“æh²hh³Nh´Nubj’)�”}”(hŒ``MEDIA_LNK_FL_*``”h]”hŒMEDIA_LNK_FL_*”…”�”}”(hjÀæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj“æubhŒ)”…”�”}”(hj“æh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j»æh´M"hj�æubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjtæubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j�æh´M$hjãåubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÇåubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjìæh]”hŒ Description”…”�”}”(hjîæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjêæubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M&hjÇåubhï)�”}”(hŒValid values for flags:”h]”hŒValid values for flags:”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M%hjÇåubjÛ )�”}”(hhh]”jà )�”}”(hXú``MEDIA_LNK_FL_ENABLED`` Indicates that the interface is connected to the entity hardware. That's the default value for interfaces. An interface may be disabled if the hardware is busy due to the usage of some other interface that it is currently controlling the hardware. A typical example is an hybrid TV device that handle only one type of stream on a given time. So, when the digital TV is streaming, the V4L2 interfaces won't be enabled, as such device is not able to also stream analog TV or radio. ”h]”(jæ )�”}”(hŒ``MEDIA_LNK_FL_ENABLED``”h]”j’)�”}”(hjçh]”hŒMEDIA_LNK_FL_ENABLED”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjçubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M0hjçubj)�”}”(hhh]”(hï)�”}”(hŒ÷Indicates that the interface is connected to the entity hardware. That's the default value for interfaces. An interface may be disabled if the hardware is busy due to the usage of some other interface that it is currently controlling the hardware.”h]”hŒùIndicates that the interface is connected to the entity hardware. That’s the default value for interfaces. An interface may be disabled if the hardware is busy due to the usage of some other interface that it is currently controlling the hardware.”…”�”}”(hj3çh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M(hj0çubhï)�”}”(hŒçA typical example is an hybrid TV device that handle only one type of stream on a given time. So, when the digital TV is streaming, the V4L2 interfaces won't be enabled, as such device is not able to also stream analog TV or radio.”h]”hŒéA typical example is an hybrid TV device that handle only one type of stream on a given time. So, when the digital TV is streaming, the V4L2 interfaces won’t be enabled, as such device is not able to also stream analog TV or radio.”…”�”}”(hjBçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M-hj0çubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjçubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j/çh´M0hjçubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÇåubj¬)�”}”(hŒ¼Before calling this function, media_devnode_create() should be called for the interface and media_device_register_entity() should be called for the interface that will be part of the link.”h]”hï)�”}”(hŒ¼Before calling this function, media_devnode_create() should be called for the interface and media_device_register_entity() should be called for the interface that will be part of the link.”h]”hŒ¼Before calling this function, media_devnode_create() should be called for the interface and media_device_register_entity() should be called for the interface that will be part of the link.”…”�”}”(hjgçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M4hjcçubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÇåubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ%__media_remove_intf_link (C function)”Œc.__media_remove_intf_link”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ7void __media_remove_intf_link (struct media_link *link)”h]”j )�”}”(hŒ6void __media_remove_intf_link(struct media_link *link)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjœçh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj˜çh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M?ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj«çh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj˜çh²hh³jªçh´M?ubj8 )�”}”(hŒ__media_remove_intf_link”h]”j> )�”}”(hŒ__media_remove_intf_link”h]”hŒ__media_remove_intf_link”…”�”}”(hj½çh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¹çubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj˜çh²hh³jªçh´M?ubj˜)�”}”(hŒ(struct media_link *link)”h]”jž)�”}”(hŒstruct media_link *link”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÙçh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÕçubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæçh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÕçubh)�”}”(hhh]”j> )�”}”(hŒ media_link”h]”hŒ media_link”…”�”}”(hj÷çh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjôçubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jùçŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j¿çsbŒc.__media_remove_intf_link”†”asbuh1hhjÕçubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÕçubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj%èh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÕçubj> )�”}”(hŒlink”h]”hŒlink”…”�”}”(hj2èh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÕçubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÑçubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj˜çh²hh³jªçh´M?ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj”çh²hh³jªçh´M?ubah}”(h]”j�çah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jªçh´M?hj‘çh²hubjj )�”}”(hhh]”hï)�”}”(hŒremove a single interface link”h]”hŒremove a single interface link”…”�”}”(hj\èh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M?hjYèh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj‘çh²hh³jªçh´M?ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jtèjŒ jtèj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ¢**Parameters** ``struct media_link *link`` pointer to :c:type:`media_link`. **Description** .. note:: This is an unlocked version of media_remove_intf_link()”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj~èh]”hŒ Parameters”…”�”}”(hj€èh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj|èubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MChjxèubjÛ )�”}”(hhh]”jà )�”}”(hŒ=``struct media_link *link`` pointer to :c:type:`media_link`. ”h]”(jæ )�”}”(hŒ``struct media_link *link``”h]”j’)�”}”(hj�èh]”hŒstruct media_link *link”…”�”}”(hjŸèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj›èubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MAhj—èubj)�”}”(hhh]”hï)�”}”(hŒ pointer to :c:type:`media_link`.”h]”(hŒ pointer to ”…”�”}”(hj¶èh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_link`”h]”j’)�”}”(hjÀèh]”hŒ media_link”…”�”}”(hjÂèh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj¾èubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_link”uh1hh³j²èh´MAhj¶èubhŒ.”…”�”}”(hj¶èh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j²èh´MAhj³èubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj—èubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j²èh´MAhj”èubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjxèubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjûèh]”hŒ Description”…”�”}”(hjýèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjùèubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MChjxèubj¬)�”}”(hŒ7This is an unlocked version of media_remove_intf_link()”h]”hï)�”}”(hjéh]”hŒ7This is an unlocked version of media_remove_intf_link()”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MBhjéubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjxèubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ#media_remove_intf_link (C function)”Œc.media_remove_intf_link”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ5void media_remove_intf_link (struct media_link *link)”h]”j )�”}”(hŒ4void media_remove_intf_link(struct media_link *link)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjIéh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjEéh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MHubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjXéh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjEéh²hh³jWéh´MHubj8 )�”}”(hŒmedia_remove_intf_link”h]”j> )�”}”(hŒmedia_remove_intf_link”h]”hŒmedia_remove_intf_link”…”�”}”(hjjéh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjféubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjEéh²hh³jWéh´MHubj˜)�”}”(hŒ(struct media_link *link)”h]”jž)�”}”(hŒstruct media_link *link”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj†éh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj‚éubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“éh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj‚éubh)�”}”(hhh]”j> )�”}”(hŒ media_link”h]”hŒ media_link”…”�”}”(hj¤éh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¡éubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j¦éŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jlésbŒc.media_remove_intf_link”†”asbuh1hhj‚éubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄéh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj‚éubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÒéh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj‚éubj> )�”}”(hŒlink”h]”hŒlink”…”�”}”(hjßéh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj‚éubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj~éubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjEéh²hh³jWéh´MHubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjAéh²hh³jWéh´MHubah}”(h]”j<éah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jWéh´MHhj>éh²hubjj )�”}”(hhh]”hï)�”}”(hŒremove a single interface link”h]”hŒremove a single interface link”…”�”}”(hj êh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MHhjêh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj>éh²hh³jWéh´MHubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j!êjŒ j!êj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ¨**Parameters** ``struct media_link *link`` pointer to :c:type:`media_link`. **Description** .. note:: Prefer to use this one, instead of __media_remove_intf_link()”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj+êh]”hŒ Parameters”…”�”}”(hj-êh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj)êubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MLhj%êubjÛ )�”}”(hhh]”jà )�”}”(hŒ=``struct media_link *link`` pointer to :c:type:`media_link`. ”h]”(jæ )�”}”(hŒ``struct media_link *link``”h]”j’)�”}”(hjJêh]”hŒstruct media_link *link”…”�”}”(hjLêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjHêubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MJhjDêubj)�”}”(hhh]”hï)�”}”(hŒ pointer to :c:type:`media_link`.”h]”(hŒ pointer to ”…”�”}”(hjcêh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_link`”h]”j’)�”}”(hjmêh]”hŒ media_link”…”�”}”(hjoêh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjkêubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_link”uh1hh³j_êh´MJhjcêubhŒ.”…”�”}”(hjcêh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j_êh´MJhj`êubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjDêubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j_êh´MJhjAêubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj%êubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj¨êh]”hŒ Description”…”�”}”(hjªêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¦êubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MLhj%êubj¬)�”}”(hŒ=Prefer to use this one, instead of __media_remove_intf_link()”h]”hï)�”}”(hjÀêh]”hŒ=Prefer to use this one, instead of __media_remove_intf_link()”…”�”}”(hjÂêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MKhj¾êubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj%êubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ&__media_remove_intf_links (C function)”Œc.__media_remove_intf_links”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ=void __media_remove_intf_links (struct media_interface *intf)”h]”j )�”}”(hŒ )�”}”(hŒ__media_remove_intf_links”h]”hŒ__media_remove_intf_links”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjëubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjòêh²hh³jëh´MQubj˜)�”}”(hŒ(struct media_interface *intf)”h]”jž)�”}”(hŒstruct media_interface *intf”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj3ëh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj/ëubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@ëh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj/ëubh)�”}”(hhh]”j> )�”}”(hŒmedia_interface”h]”hŒmedia_interface”…”�”}”(hjQëh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjNëubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jSëŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jësbŒc.__media_remove_intf_links”†”asbuh1hhj/ëubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjqëh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj/ëubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj/ëubj> )�”}”(hŒintf”h]”hŒintf”…”�”}”(hjŒëh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj/ëubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj+ëubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjòêh²hh³jëh´MQubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjîêh²hh³jëh´MQubah}”(h]”jéêah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jëh´MQhjëêh²hubjj )�”}”(hhh]”hï)�”}”(hŒ-remove all links associated with an interface”h]”hŒ-remove all links associated with an interface”…”�”}”(hj¶ëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MQhj³ëh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjëêh²hh³jëh´MQubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jÎëjŒ jÎëj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ­**Parameters** ``struct media_interface *intf`` pointer to :c:type:`media_interface` **Description** .. note:: This is an unlocked version of media_remove_intf_links().”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjØëh]”hŒ Parameters”…”�”}”(hjÚëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÖëubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MUhjÒëubjÛ )�”}”(hhh]”jà )�”}”(hŒF``struct media_interface *intf`` pointer to :c:type:`media_interface` ”h]”(jæ )�”}”(hŒ ``struct media_interface *intf``”h]”j’)�”}”(hj÷ëh]”hŒstruct media_interface *intf”…”�”}”(hjùëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjõëubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MShjñëubj)�”}”(hhh]”hï)�”}”(hŒ$pointer to :c:type:`media_interface`”h]”(hŒ pointer to ”…”�”}”(hjìh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_interface`”h]”j’)�”}”(hjìh]”hŒmedia_interface”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjìubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒmedia_interface”uh1hh³j ìh´MShjìubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j ìh´MShj ìubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjñëubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j ìh´MShjîëubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÒëubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjQìh]”hŒ Description”…”�”}”(hjSìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjOìubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MUhjÒëubj¬)�”}”(hŒ9This is an unlocked version of media_remove_intf_links().”h]”hï)�”}”(hjiìh]”hŒ9This is an unlocked version of media_remove_intf_links().”…”�”}”(hjkìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MThjgìubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hjÒëubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ$media_remove_intf_links (C function)”Œc.media_remove_intf_links”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ;void media_remove_intf_links (struct media_interface *intf)”h]”j )�”}”(hŒ:void media_remove_intf_links(struct media_interface *intf)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjŸìh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj›ìh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MZubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj®ìh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj›ìh²hh³j­ìh´MZubj8 )�”}”(hŒmedia_remove_intf_links”h]”j> )�”}”(hŒmedia_remove_intf_links”h]”hŒmedia_remove_intf_links”…”�”}”(hjÀìh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¼ìubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj›ìh²hh³j­ìh´MZubj˜)�”}”(hŒ(struct media_interface *intf)”h]”jž)�”}”(hŒstruct media_interface *intf”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÜìh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjØìubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjéìh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjØìubh)�”}”(hhh]”j> )�”}”(hŒmedia_interface”h]”hŒmedia_interface”…”�”}”(hjúìh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj÷ìubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jüìŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jÂìsbŒc.media_remove_intf_links”†”asbuh1hhjØìubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjØìubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj(íh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjØìubj> )�”}”(hŒintf”h]”hŒintf”…”�”}”(hj5íh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjØìubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÔìubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj›ìh²hh³j­ìh´MZubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj—ìh²hh³j­ìh´MZubah}”(h]”j’ìah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j­ìh´MZhj”ìh²hubjj )�”}”(hhh]”hï)�”}”(hŒ-remove all links associated with an interface”h]”hŒ-remove all links associated with an interface”…”�”}”(hj_íh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MZhj\íh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj”ìh²hh³j­ìh´MZubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jwíjŒ jwíj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXB**Parameters** ``struct media_interface *intf`` pointer to :c:type:`media_interface` **Description** .. note:: #) This is called automatically when an entity is unregistered via media_device_register_entity() and by media_devnode_remove(). #) Prefer to use this one, instead of __media_remove_intf_links().”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj�íh]”hŒ Parameters”…”�”}”(hjƒíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjíubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M^hj{íubjÛ )�”}”(hhh]”jà )�”}”(hŒF``struct media_interface *intf`` pointer to :c:type:`media_interface` ”h]”(jæ )�”}”(hŒ ``struct media_interface *intf``”h]”j’)�”}”(hj íh]”hŒstruct media_interface *intf”…”�”}”(hj¢íh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjžíubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M\hjšíubj)�”}”(hhh]”hï)�”}”(hŒ$pointer to :c:type:`media_interface`”h]”(hŒ pointer to ”…”�”}”(hj¹íh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_interface`”h]”j’)�”}”(hjÃíh]”hŒmedia_interface”…”�”}”(hjÅíh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjÁíubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒmedia_interface”uh1hh³jµíh´M\hj¹íubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jµíh´M\hj¶íubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjšíubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jµíh´M\hj—íubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj{íubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjúíh]”hŒ Description”…”�”}”(hjüíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjøíubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M^hj{íubj¬)�”}”(hŒÇ#) This is called automatically when an entity is unregistered via media_device_register_entity() and by media_devnode_remove(). #) Prefer to use this one, instead of __media_remove_intf_links().”h]”jå )�”}”(hhh]”(j)�”}”(hŒ~This is called automatically when an entity is unregistered via media_device_register_entity() and by media_devnode_remove(). ”h]”hï)�”}”(hŒ}This is called automatically when an entity is unregistered via media_device_register_entity() and by media_devnode_remove().”h]”hŒ}This is called automatically when an entity is unregistered via media_device_register_entity() and by media_devnode_remove().”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M_hjîubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjîubj)�”}”(hŒ?Prefer to use this one, instead of __media_remove_intf_links().”h]”hï)�”}”(hj2îh]”hŒ?Prefer to use this one, instead of __media_remove_intf_links().”…”�”}”(hj4îh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mbhj0îubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjîubeh}”(h]”h ]”h"]”h$]”h&]”j2!j3!j4!hj5!j6!uh1jä hjîubah}”(h]”h ]”h"]”h$]”h&]”uh1j«hj{íubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_entity_call (C macro)”Œc.media_entity_call”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_entity_call”h]”j )�”}”(hŒmedia_entity_call”h]”j8 )�”}”(hŒmedia_entity_call”h]”j> )�”}”(hjnîh]”hŒmedia_entity_call”…”�”}”(hjxîh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjtîubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjpîh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjlîh²hh³j‹îh´Mhubah}”(h]”jgîah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j‹îh´Mhhjiîh²hubjj )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1ji hjiîh²hh³j‹îh´Mhubeh}”(h]”h ]”(j³Œmacro”eh"]”h$]”h&]”jŠ j³j‹ j¤îjŒ j¤îj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubhï)�”}”(hŒ2``media_entity_call (entity, operation, args...)``”h]”j’)�”}”(hjªîh]”hŒ.media_entity_call (entity, operation, args...)”…”�”}”(hj¬îh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¨îubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mjhjá h²hubj§)�”}”(hŒ>Calls a struct media_entity_operations operation on an entity ”h]”hï)�”}”(hŒ=Calls a struct media_entity_operations operation on an entity”h]”hŒ=Calls a struct media_entity_operations operation on an entity”…”�”}”(hjÄîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MhhjÀîubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦h³jÒîh´Mhhjá h²hubj‘ )�”}”(hX�**Parameters** ``entity`` entity where the **operation** will be called ``operation`` type of the operation. Should be the name of a member of struct :c:type:`media_entity_operations`. ``args...`` arguments for the operation. **Description** This helper function will check if **operation** is not ``NULL``. On such case, it will issue a call to **operation**\(**entity**, **args**\).”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjßîh]”hŒ Parameters”…”�”}”(hjáîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÝîubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MlhjÙîubjÛ )�”}”(hhh]”(jà )�”}”(hŒ9``entity`` entity where the **operation** will be called ”h]”(jæ )�”}”(hŒ ``entity``”h]”j’)�”}”(hjþîh]”hŒentity”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjüîubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mkhjøîubj)�”}”(hhh]”hï)�”}”(hŒ-entity where the **operation** will be called”h]”(hŒentity where the ”…”�”}”(hjïh²hh³Nh´Nubj')�”}”(hŒ **operation**”h]”hŒ operation”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjïubhŒ will be called”…”�”}”(hjïh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jïh´Mkhjïubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjøîubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jïh´Mkhjõîubjà )�”}”(hŒq``operation`` type of the operation. Should be the name of a member of struct :c:type:`media_entity_operations`. ”h]”(jæ )�”}”(hŒ ``operation``”h]”j’)�”}”(hjIïh]”hŒ operation”…”�”}”(hjKïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjGïubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MmhjCïubj)�”}”(hhh]”hï)�”}”(hŒbtype of the operation. Should be the name of a member of struct :c:type:`media_entity_operations`.”h]”(hŒ@type of the operation. Should be the name of a member of struct ”…”�”}”(hjbïh²hh³Nh´Nubh)�”}”(hŒ!:c:type:`media_entity_operations`”h]”j’)�”}”(hjlïh]”hŒmedia_entity_operations”…”�”}”(hjnïh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjjïubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒmedia_entity_operations”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MlhjbïubhŒ.”…”�”}”(hjbïh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j‰ïh´Mlhj_ïubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjCïubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j^ïh´Mmhjõîubjà )�”}”(hŒ)``args...`` arguments for the operation. ”h]”(jæ )�”}”(hŒ ``args...``”h]”j’)�”}”(hj¦ïh]”hŒargs...”…”�”}”(hj¨ïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¤ïubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mnhj ïubj)�”}”(hhh]”hï)�”}”(hŒarguments for the operation.”h]”hŒarguments for the operation.”…”�”}”(hj¿ïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j»ïh´Mnhj¼ïubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj ïubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j»ïh´Mnhjõîubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÙîubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjáïh]”hŒ Description”…”�”}”(hjãïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjßïubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MphjÙîubhï)�”}”(hŒŽThis helper function will check if **operation** is not ``NULL``. On such case, it will issue a call to **operation**\(**entity**, **args**\).”h]”(hŒ#This helper function will check if ”…”�”}”(hj÷ïh²hh³Nh´Nubj')�”}”(hŒ **operation**”h]”hŒ operation”…”�”}”(hjÿïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj÷ïubhŒ is not ”…”�”}”(hj÷ïh²hh³Nh´Nubj’)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj÷ïubhŒ(. On such case, it will issue a call to ”…”�”}”(hj÷ïh²hh³Nh´Nubj')�”}”(hŒ **operation**”h]”hŒ operation”…”�”}”(hj#ðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj÷ïubhŒ(”…”�”}”(hj÷ïh²hh³Nh´Nubj')�”}”(hŒ **entity**”h]”hŒentity”…”�”}”(hj5ðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj÷ïubhŒ, ”…”�”}”(hj÷ïh²hh³Nh´Nubj')�”}”(hŒ**args**”h]”hŒargs”…”�”}”(hjGðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj÷ïubhŒ).”…”�”}”(hj÷ïh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MohjÙîubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ(media_create_ancillary_link (C function)”Œc.media_create_ancillary_link”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒnstruct media_link * media_create_ancillary_link (struct media_entity *primary, struct media_entity *ancillary)”h]”j )�”}”(hŒlstruct media_link *media_create_ancillary_link(struct media_entity *primary, struct media_entity *ancillary)”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj€ðh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj|ðh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Myubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŽðh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj|ðh²hh³j�ðh´Myubh)�”}”(hhh]”j> )�”}”(hŒ media_link”h]”hŒ media_link”…”�”}”(hjŸðh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjœðubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j¡ðŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_create_ancillary_link”sbŒc.media_create_ancillary_link”†”asbuh1hhj|ðh²hh³j�ðh´Myubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀðh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj|ðh²hh³j�ðh´Myubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÎðh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj|ðh²hh³j�ðh´Myubj8 )�”}”(hŒmedia_create_ancillary_link”h]”j> )�”}”(hj½ðh]”hŒmedia_create_ancillary_link”…”�”}”(hjßðh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÛðubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj|ðh²hh³j�ðh´Myubj˜)�”}”(hŒ>(struct media_entity *primary, struct media_entity *ancillary)”h]”(jž)�”}”(hŒstruct media_entity *primary”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjúðh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjöðubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjöðubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjñubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jñŒmodname”NŒ classname”Njäjç)�”}”jê]”j»ðŒc.media_create_ancillary_link”†”asbuh1hhjöðubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6ñh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjöðubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjDñh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjöðubj> )�”}”(hŒprimary”h]”hŒprimary”…”�”}”(hjQñh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjöðubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjòðubjž)�”}”(hŒstruct media_entity *ancillary”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjjñh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjfñubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwñh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjfñubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hjˆñh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj…ñubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jŠñŒmodname”NŒ classname”Njäjç)�”}”jê]”j»ðŒc.media_create_ancillary_link”†”asbuh1hhjfñubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¦ñh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjfñubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj´ñh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjfñubj> )�”}”(hŒ ancillary”h]”hŒ ancillary”…”�”}”(hjÁñh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjfñubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjòðubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj|ðh²hh³j�ðh´Myubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjxðh²hh³j�ðh´Myubah}”(h]”jsðah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j�ðh´Myhjuðh²hubjj )�”}”(hhh]”hï)�”}”(hŒHcreate an ancillary link between two instances of :c:type:`media_entity`”h]”(hŒ2create an ancillary link between two instances of ”…”�”}”(hjëñh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hjõñh]”hŒ media_entity”…”�”}”(hj÷ñh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjóñubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjç)�”}”jê]”j»ðŒc.media_create_ancillary_link”†”asbjŒ media_entity”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Khjëñubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Myhjèñh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjuðh²hh³j�ðh´Myubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j(òjŒ j(òj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX**Parameters** ``struct media_entity *primary`` pointer to the primary :c:type:`media_entity` ``struct media_entity *ancillary`` pointer to the ancillary :c:type:`media_entity` **Description** Create an ancillary link between two entities, indicating that they represent two connected pieces of hardware that form a single logical unit. A typical example is a camera lens controller being linked to the sensor that it is supporting. The function sets both MEDIA_LNK_FL_ENABLED and MEDIA_LNK_FL_IMMUTABLE for the new link.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj2òh]”hŒ Parameters”…”�”}”(hj4òh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj0òubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M}hj,òubjÛ )�”}”(hhh]”(jà )�”}”(hŒO``struct media_entity *primary`` pointer to the primary :c:type:`media_entity` ”h]”(jæ )�”}”(hŒ ``struct media_entity *primary``”h]”j’)�”}”(hjQòh]”hŒstruct media_entity *primary”…”�”}”(hjSòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjOòubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M|hjKòubj)�”}”(hhh]”hï)�”}”(hŒ-pointer to the primary :c:type:`media_entity`”h]”(hŒpointer to the primary ”…”�”}”(hjjòh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hjtòh]”hŒ media_entity”…”�”}”(hjvòh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjròubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_entity”uh1hh³jfòh´M|hjjòubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jfòh´M|hjgòubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjKòubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jfòh´M|hjHòubjà )�”}”(hŒS``struct media_entity *ancillary`` pointer to the ancillary :c:type:`media_entity` ”h]”(jæ )�”}”(hŒ"``struct media_entity *ancillary``”h]”j’)�”}”(hj©òh]”hŒstruct media_entity *ancillary”…”�”}”(hj«òh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj§òubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M}hj£òubj)�”}”(hhh]”hï)�”}”(hŒ/pointer to the ancillary :c:type:`media_entity`”h]”(hŒpointer to the ancillary ”…”�”}”(hjÂòh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hjÌòh]”hŒ media_entity”…”�”}”(hjÎòh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjÊòubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_entity”uh1hh³j¾òh´M}hjÂòubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¾òh´M}hj¿òubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj£òubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j¾òh´M}hjHòubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj,òubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjóh]”hŒ Description”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjóubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mhj,òubhï)�”}”(hŒïCreate an ancillary link between two entities, indicating that they represent two connected pieces of hardware that form a single logical unit. A typical example is a camera lens controller being linked to the sensor that it is supporting.”h]”hŒïCreate an ancillary link between two entities, indicating that they represent two connected pieces of hardware that form a single logical unit. A typical example is a camera lens controller being linked to the sensor that it is supporting.”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M~hj,òubhï)�”}”(hŒXThe function sets both MEDIA_LNK_FL_ENABLED and MEDIA_LNK_FL_IMMUTABLE for the new link.”h]”hŒXThe function sets both MEDIA_LNK_FL_ENABLED and MEDIA_LNK_FL_IMMUTABLE for the new link.”…”�”}”(hj(óh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´Mƒhj,òubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ%__media_entity_next_link (C function)”Œc.__media_entity_next_link”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ|struct media_link * __media_entity_next_link (struct media_entity *entity, struct media_link *link, unsigned long link_type)”h]”j )�”}”(hŒzstruct media_link *__media_entity_next_link(struct media_entity *entity, struct media_link *link, unsigned long link_type)”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjWóh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjSóh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŒubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjeóh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjSóh²hh³jdóh´MŒubh)�”}”(hhh]”j> )�”}”(hŒ media_link”h]”hŒ media_link”…”�”}”(hjvóh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjsóubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jxóŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌__media_entity_next_link”sbŒc.__media_entity_next_link”†”asbuh1hhjSóh²hh³jdóh´MŒubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—óh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjSóh²hh³jdóh´MŒubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj¥óh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjSóh²hh³jdóh´MŒubj8 )�”}”(hŒ__media_entity_next_link”h]”j> )�”}”(hj”óh]”hŒ__media_entity_next_link”…”�”}”(hj¶óh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj²óubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjSóh²hh³jdóh´MŒubj˜)�”}”(hŒO(struct media_entity *entity, struct media_link *link, unsigned long link_type)”h]”(jž)�”}”(hŒstruct media_entity *entity”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÑóh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÍóubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞóh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÍóubh)�”}”(hhh]”j> )�”}”(hŒ media_entity”h]”hŒ media_entity”…”�”}”(hjïóh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjìóubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jñóŒmodname”NŒ classname”Njäjç)�”}”jê]”j’óŒc.__media_entity_next_link”†”asbuh1hhjÍóubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj ôh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÍóubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÍóubj> )�”}”(hŒentity”h]”hŒentity”…”�”}”(hj(ôh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÍóubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÉóubjž)�”}”(hŒstruct media_link *link”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjAôh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj=ôubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNôh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj=ôubh)�”}”(hhh]”j> )�”}”(hŒ media_link”h]”hŒ media_link”…”�”}”(hj_ôh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj\ôubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jaôŒmodname”NŒ classname”Njäjç)�”}”jê]”j’óŒc.__media_entity_next_link”†”asbuh1hhj=ôubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj}ôh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj=ôubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj‹ôh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj=ôubj> )�”}”(hŒlink”h]”hŒlink”…”�”}”(hj˜ôh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj=ôubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÉóubjž)�”}”(hŒunsigned long link_type”h]”(j`)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj±ôh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj­ôubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¿ôh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj­ôubj`)�”}”(hŒlong”h]”hŒlong”…”�”}”(hjÍôh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj­ôubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛôh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj­ôubj> )�”}”(hŒ link_type”h]”hŒ link_type”…”�”}”(hjéôh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj­ôubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÉóubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjSóh²hh³jdóh´MŒubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjOóh²hh³jdóh´MŒubah}”(h]”jJóah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jdóh´MŒhjLóh²hubjj )�”}”(hhh]”hï)�”}”(hŒ0Iterate through a :c:type:`media_entity`'s links”h]”(hŒIterate through a ”…”�”}”(hjõh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hjõh]”hŒ media_entity”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjõubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjç)�”}”jê]”j’óŒc.__media_entity_next_link”†”asbjŒ media_entity”uh1hh³jòh´KhjõubhŒ ’s links”…”�”}”(hjõh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŒhjõh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjLóh²hh³jdóh´MŒubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jSõjŒ jSõj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXÈ**Parameters** ``struct media_entity *entity`` pointer to the :c:type:`media_entity` ``struct media_link *link`` pointer to a :c:type:`media_link` to hold the iterated values ``unsigned long link_type`` one of the MEDIA_LNK_FL_LINK_TYPE flags **Description** Return the next link against an entity matching a specific link type. This allows iteration through an entity's links whilst guaranteeing all of the returned links are of the given type.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj]õh]”hŒ Parameters”…”�”}”(hj_õh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj[õubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�hjWõubjÛ )�”}”(hhh]”(jà )�”}”(hŒF``struct media_entity *entity`` pointer to the :c:type:`media_entity` ”h]”(jæ )�”}”(hŒ``struct media_entity *entity``”h]”j’)�”}”(hj|õh]”hŒstruct media_entity *entity”…”�”}”(hj~õh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjzõubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŽhjvõubj)�”}”(hhh]”hï)�”}”(hŒ%pointer to the :c:type:`media_entity`”h]”(hŒpointer to the ”…”�”}”(hj•õh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hjŸõh]”hŒ media_entity”…”�”}”(hj¡õh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj�õubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_entity”uh1hh³j‘õh´MŽhj•õubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j‘õh´MŽhj’õubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjvõubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j‘õh´MŽhjsõubjà )�”}”(hŒZ``struct media_link *link`` pointer to a :c:type:`media_link` to hold the iterated values ”h]”(jæ )�”}”(hŒ``struct media_link *link``”h]”j’)�”}”(hjÔõh]”hŒstruct media_link *link”…”�”}”(hjÖõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÒõubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�hjÎõubj)�”}”(hhh]”hï)�”}”(hŒ=pointer to a :c:type:`media_link` to hold the iterated values”h]”(hŒ pointer to a ”…”�”}”(hjíõh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_link`”h]”j’)�”}”(hj÷õh]”hŒ media_link”…”�”}”(hjùõh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjõõubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_link”uh1hh³jéõh´M�hjíõubhŒ to hold the iterated values”…”�”}”(hjíõh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jéõh´M�hjêõubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÎõubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jéõh´M�hjsõubjà )�”}”(hŒD``unsigned long link_type`` one of the MEDIA_LNK_FL_LINK_TYPE flags ”h]”(jæ )�”}”(hŒ``unsigned long link_type``”h]”j’)�”}”(hj0öh]”hŒunsigned long link_type”…”�”}”(hj2öh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj.öubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�hj*öubj)�”}”(hhh]”hï)�”}”(hŒ'one of the MEDIA_LNK_FL_LINK_TYPE flags”h]”hŒ'one of the MEDIA_LNK_FL_LINK_TYPE flags”…”�”}”(hjIöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jEöh´M�hjFöubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj*öubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jEöh´M�hjsõubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjWõubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjköh]”hŒ Description”…”�”}”(hjmöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjiöubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M’hjWõubhï)�”}”(hŒºReturn the next link against an entity matching a specific link type. This allows iteration through an entity's links whilst guaranteeing all of the returned links are of the given type.”h]”hŒ¼Return the next link against an entity matching a specific link type. This allows iteration through an entity’s links whilst guaranteeing all of the returned links are of the given type.”…”�”}”(hj�öh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M‘hjWõubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ)for_each_media_entity_data_link (C macro)”Œ!c.for_each_media_entity_data_link”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒfor_each_media_entity_data_link”h]”j )�”}”(hŒfor_each_media_entity_data_link”h]”j8 )�”}”(hŒfor_each_media_entity_data_link”h]”j> )�”}”(hjªöh]”hŒfor_each_media_entity_data_link”…”�”}”(hj´öh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj°öubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj¬öh²hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M›ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj¨öh²hh³jÇöh´M›ubah}”(h]”j£öah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÇöh´M›hj¥öh²hubjj )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1ji hj¥öh²hh³jÇöh´M›ubeh}”(h]”h ]”(j³Œmacro”eh"]”h$]”h&]”jŠ j³j‹ jàöjŒ jàöj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubhï)�”}”(hŒ2``for_each_media_entity_data_link (entity, link)``”h]”j’)�”}”(hjæöh]”hŒ.for_each_media_entity_data_link (entity, link)”…”�”}”(hjèöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjäöubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�hjá h²hubj§)�”}”(hŒ'Iterate through an entity's data links ”h]”hï)�”}”(hŒ&Iterate through an entity's data links”h]”hŒ(Iterate through an entity’s data links”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M›hjüöubah}”(h]”h ]”h"]”h$]”h&]”uh1j¦h³j÷h´M›hjá h²hubj‘ )�”}”(hŒÑ**Parameters** ``entity`` pointer to the :c:type:`media_entity` ``link`` pointer to a :c:type:`media_link` to hold the iterated values **Description** Iterate over a :c:type:`media_entity`'s data links”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj÷h]”hŒ Parameters”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŸhj÷ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ1``entity`` pointer to the :c:type:`media_entity` ”h]”(jæ )�”}”(hŒ ``entity``”h]”j’)�”}”(hj:÷h]”hŒentity”…”�”}”(hj<÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj8÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M�hj4÷ubj)�”}”(hhh]”hï)�”}”(hŒ%pointer to the :c:type:`media_entity`”h]”(hŒpointer to the ”…”�”}”(hjS÷h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hj]÷h]”hŒ media_entity”…”�”}”(hj_÷h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj[÷ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_entity”uh1hh³jO÷h´M�hjS÷ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jO÷h´M�hjP÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj4÷ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jO÷h´M�hj1÷ubjà )�”}”(hŒG``link`` pointer to a :c:type:`media_link` to hold the iterated values ”h]”(jæ )�”}”(hŒ``link``”h]”j’)�”}”(hj’÷h]”hŒlink”…”�”}”(hj”÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj�÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MžhjŒ÷ubj)�”}”(hhh]”hï)�”}”(hŒ=pointer to a :c:type:`media_link` to hold the iterated values”h]”(hŒ pointer to a ”…”�”}”(hj«÷h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_link`”h]”j’)�”}”(hjµ÷h]”hŒ media_link”…”�”}”(hj·÷h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj³÷ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_link”uh1hh³j§÷h´Mžhj«÷ubhŒ to hold the iterated values”…”�”}”(hj«÷h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j§÷h´Mžhj¨÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjŒ÷ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j§÷h´Mžhj1÷ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj÷ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjð÷h]”hŒ Description”…”�”}”(hjò÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjî÷ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´M hj÷ubhï)�”}”(hŒ2Iterate over a :c:type:`media_entity`'s data links”h]”(hŒIterate over a ”…”�”}”(hjøh²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_entity`”h]”j’)�”}”(hjøh]”hŒ media_entity”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjøubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_entity”uh1hh³Œf/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:337: ./include/media/media-entity.h”h´MŸhjøubhŒ’s data links”…”�”}”(hjøh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j-øh´MŸhj÷ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_request_state (C enum)”Œc.media_request_state”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_request_state”h]”j )�”}”(hŒenum media_request_state”h]”(j )�”}”(hjgIh]”hŒenum”…”�”}”(hjXøh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjTøh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjføh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjTøh²hh³jeøh´Kubj8 )�”}”(hŒmedia_request_state”h]”j> )�”}”(hjRøh]”hŒmedia_request_state”…”�”}”(hjxøh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjtøubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjTøh²hh³jeøh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjPøh²hh³jeøh´Kubah}”(h]”jKøah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jeøh´KhjMøh²hubjj )�”}”(hhh]”hï)�”}”(hŒmedia request state”h]”hŒmedia request state”…”�”}”(hjšøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Khj—øh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjMøh²hh³jeøh´Kubeh}”(h]”h ]”(j³Œenum”eh"]”h$]”h&]”jŠ j³j‹ j²øjŒ j²øj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX5**Constants** ``MEDIA_REQUEST_STATE_IDLE`` Idle ``MEDIA_REQUEST_STATE_VALIDATING`` Validating the request, no state changes allowed ``MEDIA_REQUEST_STATE_QUEUED`` Queued ``MEDIA_REQUEST_STATE_COMPLETE`` Completed, the request is done ``MEDIA_REQUEST_STATE_CLEANING`` Cleaning, the request is being re-inited ``MEDIA_REQUEST_STATE_UPDATING`` The request is being updated, i.e. request objects are being added, modified or removed ``NR_OF_MEDIA_REQUEST_STATE`` The number of media request states, used internally for sanity check purposes”h]”(hï)�”}”(hŒ **Constants**”h]”j')�”}”(hj¼øh]”hŒ Constants”…”�”}”(hj¾øh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjºøubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Khj¶øubjÛ )�”}”(hhh]”(jà )�”}”(hŒ"``MEDIA_REQUEST_STATE_IDLE`` Idle ”h]”(jæ )�”}”(hŒ``MEDIA_REQUEST_STATE_IDLE``”h]”j’)�”}”(hjÛøh]”hŒMEDIA_REQUEST_STATE_IDLE”…”�”}”(hjÝøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÙøubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KhjÕøubj)�”}”(hhh]”hï)�”}”(hŒIdle”h]”hŒIdle”…”�”}”(hjôøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jðøh´Khjñøubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÕøubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jðøh´KhjÒøubjà )�”}”(hŒT``MEDIA_REQUEST_STATE_VALIDATING`` Validating the request, no state changes allowed ”h]”(jæ )�”}”(hŒ"``MEDIA_REQUEST_STATE_VALIDATING``”h]”j’)�”}”(hjùh]”hŒMEDIA_REQUEST_STATE_VALIDATING”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjùubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K"hjùubj)�”}”(hhh]”hï)�”}”(hŒ0Validating the request, no state changes allowed”h]”hŒ0Validating the request, no state changes allowed”…”�”}”(hj-ùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K!hj*ùubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjùubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j)ùh´K"hjÒøubjà )�”}”(hŒ&``MEDIA_REQUEST_STATE_QUEUED`` Queued ”h]”(jæ )�”}”(hŒ``MEDIA_REQUEST_STATE_QUEUED``”h]”j’)�”}”(hjNùh]”hŒMEDIA_REQUEST_STATE_QUEUED”…”�”}”(hjPùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjLùubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K%hjHùubj)�”}”(hhh]”hï)�”}”(hŒQueued”h]”hŒQueued”…”�”}”(hjgùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jcùh´K%hjdùubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjHùubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jcùh´K%hjÒøubjà )�”}”(hŒ@``MEDIA_REQUEST_STATE_COMPLETE`` Completed, the request is done ”h]”(jæ )�”}”(hŒ ``MEDIA_REQUEST_STATE_COMPLETE``”h]”j’)�”}”(hj‡ùh]”hŒMEDIA_REQUEST_STATE_COMPLETE”…”�”}”(hj‰ùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj…ùubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K(hj�ùubj)�”}”(hhh]”hï)�”}”(hŒCompleted, the request is done”h]”hŒCompleted, the request is done”…”�”}”(hj ùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jœùh´K(hj�ùubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj�ùubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jœùh´K(hjÒøubjà )�”}”(hŒJ``MEDIA_REQUEST_STATE_CLEANING`` Cleaning, the request is being re-inited ”h]”(jæ )�”}”(hŒ ``MEDIA_REQUEST_STATE_CLEANING``”h]”j’)�”}”(hjÀùh]”hŒMEDIA_REQUEST_STATE_CLEANING”…”�”}”(hjÂùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¾ùubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K+hjºùubj)�”}”(hhh]”hï)�”}”(hŒ(Cleaning, the request is being re-inited”h]”hŒ(Cleaning, the request is being re-inited”…”�”}”(hjÙùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÕùh´K+hjÖùubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjºùubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÕùh´K+hjÒøubjà )�”}”(hŒy``MEDIA_REQUEST_STATE_UPDATING`` The request is being updated, i.e. request objects are being added, modified or removed ”•h]”(jæ )�”}”(hŒ ``MEDIA_REQUEST_STATE_UPDATING``”h]”j’)�”}”(hjùùh]”hŒMEDIA_REQUEST_STATE_UPDATING”…”�”}”(hjûùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj÷ùubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K0hjóùubj)�”}”(hhh]”hï)�”}”(hŒWThe request is being updated, i.e. request objects are being added, modified or removed”h]”hŒWThe request is being updated, i.e. request objects are being added, modified or removed”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K.hjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjóùubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³júh´K0hjÒøubjà )�”}”(hŒk``NR_OF_MEDIA_REQUEST_STATE`` The number of media request states, used internally for sanity check purposes”h]”(jæ )�”}”(hŒ``NR_OF_MEDIA_REQUEST_STATE``”h]”j’)�”}”(hj3úh]”hŒNR_OF_MEDIA_REQUEST_STATE”…”�”}”(hj5úh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj1úubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K3hj-úubj)�”}”(hhh]”hï)�”}”(hŒMThe number of media request states, used internally for sanity check purposes”h]”hŒMThe number of media request states, used internally for sanity check purposes”…”�”}”(hjLúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jHúh´K3hjIúubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj-úubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jHúh´K3hjÒøubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj¶øubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_request (C struct)”Œc.media_request”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ media_request”h]”j )�”}”(hŒstruct media_request”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjŒúh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjˆúh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K9ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjšúh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjˆúh²hh³j™úh´K9ubj8 )�”}”(hŒ media_request”h]”j> )�”}”(hj†úh]”hŒ media_request”…”�”}”(hj¬úh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¨úubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjˆúh²hh³j™úh´K9ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj„úh²hh³j™úh´K9ubah}”(h]”júah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j™úh´K9hj�úh²hubjj )�”}”(hhh]”hï)�”}”(hŒMedia device request”h]”hŒMedia device request”…”�”}”(hjÎúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K2hjËúh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj�úh²hh³j™úh´K9ubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ jæújŒ jæúj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXÃ**Definition**:: struct media_request { struct media_device *mdev; struct kref kref; char debug_str[TASK_COMM_LEN + 11]; enum media_request_state state; unsigned int updating_count; unsigned int access_count; struct list_head objects; unsigned int num_incomplete_objects; bool manual_completion; wait_queue_head_t poll_wait; spinlock_t lock; }; **Members** ``mdev`` Media device this request belongs to ``kref`` Reference count ``debug_str`` Prefix for debug messages (process name:fd) ``state`` The state of the request ``updating_count`` count the number of request updates that are in progress ``access_count`` count the number of request accesses that are in progress ``objects`` List of **struct** media_request_object request objects ``num_incomplete_objects`` The number of incomplete objects in the request ``manual_completion`` if true, then the request won't be marked as completed when **num_incomplete_objects** reaches 0. Call media_request_manual_complete() to complete the request after **num_incomplete_objects** == 0. ``poll_wait`` Wait queue for poll ``lock`` Serializes access to this struct”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjòúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjîúubhŒ:”…”�”}”(hjîúh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K6hjêúubjÓ)�”}”(hXsstruct media_request { struct media_device *mdev; struct kref kref; char debug_str[TASK_COMM_LEN + 11]; enum media_request_state state; unsigned int updating_count; unsigned int access_count; struct list_head objects; unsigned int num_incomplete_objects; bool manual_completion; wait_queue_head_t poll_wait; spinlock_t lock; };”h]”hXsstruct media_request { struct media_device *mdev; struct kref kref; char debug_str[TASK_COMM_LEN + 11]; enum media_request_state state; unsigned int updating_count; unsigned int access_count; struct list_head objects; unsigned int num_incomplete_objects; bool manual_completion; wait_queue_head_t poll_wait; spinlock_t lock; };”…”�”}”hj ûsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K8hjêúubhï)�”}”(hŒ **Members**”h]”j')�”}”(hjûh]”hŒMembers”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjûubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KFhjêúubjÛ )�”}”(hhh]”(jà )�”}”(hŒ.``mdev`` Media device this request belongs to ”h]”(jæ )�”}”(hŒ``mdev``”h]”j’)�”}”(hj;ûh]”hŒmdev”…”�”}”(hj=ûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj9ûubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K4hj5ûubj)�”}”(hhh]”hï)�”}”(hŒ$Media device this request belongs to”h]”hŒ$Media device this request belongs to”…”�”}”(hjTûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jPûh´K4hjQûubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj5ûubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jPûh´K4hj2ûubjà )�”}”(hŒ``kref`` Reference count ”h]”(jæ )�”}”(hŒ``kref``”h]”j’)�”}”(hjtûh]”hŒkref”…”�”}”(hjvûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjrûubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K5hjnûubj)�”}”(hhh]”hï)�”}”(hŒReference count”h]”hŒReference count”…”�”}”(hj�ûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j‰ûh´K5hjŠûubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjnûubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j‰ûh´K5hj2ûubjà )�”}”(hŒ:``debug_str`` Prefix for debug messages (process name:fd) ”h]”(jæ )�”}”(hŒ ``debug_str``”h]”j’)�”}”(hj­ûh]”hŒ debug_str”…”�”}”(hj¯ûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj«ûubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K6hj§ûubj)�”}”(hhh]”hï)�”}”(hŒ+Prefix for debug messages (process name:fd)”h]”hŒ+Prefix for debug messages (process name:fd)”…”�”}”(hjÆûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÂûh´K6hjÃûubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj§ûubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÂûh´K6hj2ûubjà )�”}”(hŒ#``state`` The state of the request ”h]”(jæ )�”}”(hŒ ``state``”h]”j’)�”}”(hjæûh]”hŒstate”…”�”}”(hjèûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjäûubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K7hjàûubj)�”}”(hhh]”hï)�”}”(hŒThe state of the request”h]”hŒThe state of the request”…”�”}”(hjÿûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jûûh´K7hjüûubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjàûubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jûûh´K7hj2ûubjà )�”}”(hŒL``updating_count`` count the number of request updates that are in progress ”h]”(jæ )�”}”(hŒ``updating_count``”h]”j’)�”}”(hjüh]”hŒupdating_count”…”�”}”(hj!üh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K8hjüubj)�”}”(hhh]”hï)�”}”(hŒ8count the number of request updates that are in progress”h]”hŒ8count the number of request updates that are in progress”…”�”}”(hj8üh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j4üh´K8hj5üubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j4üh´K8hj2ûubjà )�”}”(hŒK``access_count`` count the number of request accesses that are in progress ”h]”(jæ )�”}”(hŒ``access_count``”h]”j’)�”}”(hjXüh]”hŒ access_count”…”�”}”(hjZüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjVüubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K9hjRüubj)�”}”(hhh]”hï)�”}”(hŒ9count the number of request accesses that are in progress”h]”hŒ9count the number of request accesses that are in progress”…”�”}”(hjqüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jmüh´K9hjnüubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjRüubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jmüh´K9hj2ûubjà )�”}”(hŒD``objects`` List of **struct** media_request_object request objects ”h]”(jæ )�”}”(hŒ ``objects``”h]”j’)�”}”(hj‘üh]”hŒobjects”…”�”}”(hj“üh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj�üubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K:hj‹üubj)�”}”(hhh]”hï)�”}”(hŒ7List of **struct** media_request_object request objects”h]”(hŒList of ”…”�”}”(hjªüh²hh³Nh´Nubj')�”}”(hŒ **struct**”h]”hŒstruct”…”�”}”(hj²üh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjªüubhŒ% media_request_object request objects”…”�”}”(hjªüh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¦üh´K:hj§üubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj‹üubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j¦üh´K:hj2ûubjà )�”}”(hŒK``num_incomplete_objects`` The number of incomplete objects in the request ”h]”(jæ )�”}”(hŒ``num_incomplete_objects``”h]”j’)�”}”(hjÜüh]”hŒnum_incomplete_objects”…”�”}”(hjÞüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÚüubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K;hjÖüubj)�”}”(hhh]”hï)�”}”(hŒ/The number of incomplete objects in the request”h]”hŒ/The number of incomplete objects in the request”…”�”}”(hjõüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jñüh´K;hjòüubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÖüubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jñüh´K;hj2ûubjà )�”}”(hŒÜ``manual_completion`` if true, then the request won't be marked as completed when **num_incomplete_objects** reaches 0. Call media_request_manual_complete() to complete the request after **num_incomplete_objects** == 0. ”h]”(jæ )�”}”(hŒ``manual_completion``”h]”j’)�”}”(hjýh]”hŒmanual_completion”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjýubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K>hjýubj)�”}”(hhh]”hï)�”}”(hŒÅif true, then the request won't be marked as completed when **num_incomplete_objects** reaches 0. Call media_request_manual_complete() to complete the request after **num_incomplete_objects** == 0.”h]”(hŒ>if true, then the request won’t be marked as completed when ”…”�”}”(hj.ýh²hh³Nh´Nubj')�”}”(hŒ**num_incomplete_objects**”h]”hŒnum_incomplete_objects”…”�”}”(hj6ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj.ýubhŒO reaches 0. Call media_request_manual_complete() to complete the request after ”…”�”}”(hj.ýh²hh³Nh´Nubj')�”}”(hŒ**num_incomplete_objects**”h]”hŒnum_incomplete_objects”…”�”}”(hjHýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj.ýubhŒ == 0.”…”�”}”(hj.ýh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Khj2ûubjà )�”}”(hŒ"``poll_wait`` Wait queue for poll ”h]”(jæ )�”}”(hŒ ``poll_wait``”h]”j’)�”}”(hjsýh]”hŒ poll_wait”…”�”}”(hjuýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjqýubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K?hjmýubj)�”}”(hhh]”hï)�”}”(hŒWait queue for poll”h]”hŒWait queue for poll”…”�”}”(hjŒýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jˆýh´K?hj‰ýubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjmýubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jˆýh´K?hj2ûubjà )�”}”(hŒ)``lock`` Serializes access to this struct”h]”(jæ )�”}”(hŒ``lock``”h]”j’)�”}”(hj¬ýh]”hŒlock”…”�”}”(hj®ýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjªýubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K?hj¦ýubj)�”}”(hhh]”hï)�”}”(hŒ Serializes access to this struct”h]”hŒ Serializes access to this struct”…”�”}”(hjÅýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K@hjÂýubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¦ýubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÁýh´K?hj2ûubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjêúubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ*media_request_lock_for_access (C function)”Œc.media_request_lock_for_access”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ=int media_request_lock_for_access (struct media_request *req)”h]”j )�”}”(hŒ )�”}”(hŒmedia_request_lock_for_access”h]”hŒmedia_request_lock_for_access”…”�”}”(hj'þh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj#þubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjþh²hh³jþh´KRubj˜)�”}”(hŒ(struct media_request *req)”h]”jž)�”}”(hŒstruct media_request *req”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjCþh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj?þubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjPþh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj?þubh)�”}”(hhh]”j> )�”}”(hŒ media_request”h]”hŒ media_request”…”�”}”(hjaþh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj^þubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jcþŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j)þsbŒc.media_request_lock_for_access”†”asbuh1hhj?þubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�þh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj?þubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj�þh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj?þubj> )�”}”(hŒreq”h]”hŒreq”…”�”}”(hjœþh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj?þubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj;þubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjþh²hh³jþh´KRubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjþýh²hh³jþh´KRubah}”(h]”jùýah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jþh´KRhjûýh²hubjj )�”}”(hhh]”hï)�”}”(hŒ&Lock the request to access its objects”h]”hŒ&Lock the request to access its objects”…”�”}”(hjÆþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KRhjÃþh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjûýh²hh³jþh´KRubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jÞþjŒ jÞþj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX)**Parameters** ``struct media_request *req`` The media request **Description** Use before accessing a completed request. A reference to the request must be held during the access. This usually takes place automatically through a file handle. Use **media_request_unlock_for_access** when done.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjèþh]”hŒ Parameters”…”�”}”(hjêþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjæþubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KVhjâþubjÛ )�”}”(hhh]”jà )�”}”(hŒ0``struct media_request *req`` The media request ”h]”(jæ )�”}”(hŒ``struct media_request *req``”h]”j’)�”}”(hjÿh]”hŒstruct media_request *req”…”�”}”(hj ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KThjÿubj)�”}”(hhh]”hï)�”}”(hŒThe media request”h]”hŒThe media request”…”�”}”(hj ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÿh´KThjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÿh´KThjþþubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjâþubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjBÿh]”hŒ Description”…”�”}”(hjDÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj@ÿubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KVhjâþubhï)�”}”(hŒÕUse before accessing a completed request. A reference to the request must be held during the access. This usually takes place automatically through a file handle. Use **media_request_unlock_for_access** when done.”h]”(hŒ§Use before accessing a completed request. A reference to the request must be held during the access. This usually takes place automatically through a file handle. Use ”…”�”}”(hjXÿh²hh³Nh´Nubj')�”}”(hŒ#**media_request_unlock_for_access**”h]”hŒmedia_request_unlock_for_access”…”�”}”(hj`ÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjXÿubhŒ when done.”…”�”}”(hjXÿh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KUhjâþubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ,media_request_unlock_for_access (C function)”Œ!c.media_request_unlock_for_access”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ@void media_request_unlock_for_access (struct media_request *req)”h]”j )�”}”(hŒ?void media_request_unlock_for_access(struct media_request *req)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj™ÿh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj•ÿh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kkubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¨ÿh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj•ÿh²hh³j§ÿh´Kkubj8 )�”}”(hŒmedia_request_unlock_for_access”h]”j> )�”}”(hŒmedia_request_unlock_for_access”h]”hŒmedia_request_unlock_for_access”…”�”}”(hjºÿh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¶ÿubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj•ÿh²hh³j§ÿh´Kkubj˜)�”}”(hŒ(struct media_request *req)”h]”jž)�”}”(hŒstruct media_request *req”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÖÿh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÒÿubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjãÿh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÒÿubh)�”}”(hhh]”j> )�”}”(hŒ media_request”h]”hŒ media_request”…”�”}”(hjôÿh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjñÿubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jöÿŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j¼ÿsbŒ!c.media_request_unlock_for_access”†”asbuh1hhjÒÿubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÒÿubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÒÿubj> )�”}”(hŒreq”h]”hŒreq”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÒÿubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÎÿubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj•ÿh²hh³j§ÿh´Kkubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj‘ÿh²hh³j§ÿh´Kkubah}”(h]”jŒÿah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j§ÿh´KkhjŽÿh²hubjj )�”}”(hhh]”hï)�”}”(hŒ-Unlock a request previously locked for access”h]”hŒ-Unlock a request previously locked for access”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KkhjVh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjŽÿh²hh³j§ÿh´Kkubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jqjŒ jqj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ­**Parameters** ``struct media_request *req`` The media request **Description** Unlock a request that has previously been locked using **media_request_lock_for_access**.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj{h]”hŒ Parameters”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjyubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KohjuubjÛ )�”}”(hhh]”jà )�”}”(hŒ0``struct media_request *req`` The media request ”h]”(jæ )�”}”(hŒ``struct media_request *req``”h]”j’)�”}”(hjšh]”hŒstruct media_request *req”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Knhj”ubj)�”}”(hhh]”hï)�”}”(hŒThe media request”h]”hŒThe media request”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¯h´Knhj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j¯h´Knhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjuubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjÕh]”hŒ Description”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kphjuubhï)�”}”(hŒYUnlock a request that has previously been locked using **media_request_lock_for_access**.”h]”(hŒ7Unlock a request that has previously been locked using ”…”�”}”(hjëh²hh³Nh´Nubj')�”}”(hŒ!**media_request_lock_for_access**”h]”hŒmedia_request_lock_for_access”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjëubhŒ.”…”�”}”(hjëh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kohjuubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ*media_request_lock_for_update (C function)”Œc.media_request_lock_for_update”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ=int media_request_lock_for_update (struct media_request *req)”h]”j )�”}”(hŒ )�”}”(hŒmedia_request_lock_for_update”h]”hŒmedia_request_lock_for_update”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjIubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj(h²hh³j:h´K~ubj˜)�”}”(hŒ(struct media_request *req)”h]”jž)�”}”(hŒstruct media_request *req”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjeubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjeubh)�”}”(hhh]”j> )�”}”(hŒ media_request”h]”hŒ media_request”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj„ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j‰Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jOsbŒc.media_request_lock_for_update”†”asbuh1hhjeubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjeubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjeubj> )�”}”(hŒreq”h]”hŒreq”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjeubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjaubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj(h²hh³j:h´K~ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj$h²hh³j:h´K~ubah}”(h]”jah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j:h´K~hj!h²hubjj )�”}”(hhh]”hï)�”}”(hŒ)Lock the request for updating its objects”h]”hŒ)Lock the request for updating its objects”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K~hjéh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj!h²hh³j:h´K~ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jjŒ jj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXY**Parameters** ``struct media_request *req`` The media request **Description** Use before updating a request, i.e. adding, modifying or removing a request object in it. A reference to the request must be held during the update. This usually takes place automatically through a file handle. Use **media_request_unlock_for_update** when done.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjh]”hŒ Parameters”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K‚hjubjÛ )�”}”(hhh]”jà )�”}”(hŒ0``struct media_request *req`` The media request ”h]”(jæ )�”}”(hŒ``struct media_request *req``”h]”j’)�”}”(hj-h]”hŒstruct media_request *req”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K€hj'ubj)�”}”(hhh]”hï)�”}”(hŒThe media request”h]”hŒThe media request”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jBh´K€hjCubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jBh´K€hj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjhh]”hŒ Description”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjfubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K‚hjubhï)�”}”(hXUse before updating a request, i.e. adding, modifying or removing a request object in it. A reference to the request must be held during the update. This usually takes place automatically through a file handle. Use **media_request_unlock_for_update** when done.”h]”(hŒ×Use before updating a request, i.e. adding, modifying or removing a request object in it. A reference to the request must be held during the update. This usually takes place automatically through a file handle. Use ”…”�”}”(hj~h²hh³Nh´Nubj')�”}”(hŒ#**media_request_unlock_for_update**”h]”hŒmedia_request_unlock_for_update”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj~ubhŒ when done.”…”�”}”(hj~h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K�hjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ,media_request_unlock_for_update (C function)”Œ!c.media_request_unlock_for_update”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ@void media_request_unlock_for_update (struct media_request *req)”h]”j )�”}”(hŒ?void media_request_unlock_for_update(struct media_request *req)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj»h²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K›ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj»h²hh³jÍh´K›ubj8 )�”}”(hŒmedia_request_unlock_for_update”h]”j> )�”}”(hŒmedia_request_unlock_for_update”h]”hŒmedia_request_unlock_for_update”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÜubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj»h²hh³jÍh´K›ubj˜)�”}”(hŒ(struct media_request *req)”h]”jž)�”}”(hŒstruct media_request *req”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjøubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjøubh)�”}”(hhh]”j> )�”}”(hŒ media_request”h]”hŒ media_request”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jâsbŒ!c.media_request_unlock_for_update”†”asbuh1hhjøubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjøubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjøubj> )�”}”(hŒreq”h]”hŒreq”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjøubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjôubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj»h²hh³jÍh´K›ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj·h²hh³jÍh´K›ubah}”(h]”j²ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÍh´K›hj´h²hubjj )�”}”(hhh]”hï)�”}”(hŒ-Unlock a request previously locked for update”h]”hŒ-Unlock a request previously locked for update”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K›hj|h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj´h²hh³jÍh´K›ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j—jŒ j—j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ­**Parameters** ``struct media_request *req`` The media request **Description** Unlock a request that has previously been locked using **media_request_lock_for_update**.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj¡h]”hŒ Parameters”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KŸhj›ubjÛ )�”}”(hhh]”jà )�”}”(hŒ0``struct media_request *req`` The media request ”h]”(jæ )�”}”(hŒ``struct media_request *req``”h]”j’)�”}”(hjÀh]”hŒstruct media_request *req”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¾ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kžhjºubj)�”}”(hhh]”hï)�”}”(hŒThe media request”h]”hŒThe media request”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÕh´KžhjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjºubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÕh´Kžhj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj›ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjûh]”hŒ Description”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjùubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K hj›ubhï)�”}”(hŒYUnlock a request that has previously been locked using **media_request_lock_for_update**.”h]”(hŒ7Unlock a request that has previously been locked using ”…”�”}”(hjh²hh³Nh´Nubj')�”}”(hŒ!**media_request_lock_for_update**”h]”hŒmedia_request_lock_for_update”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjubhŒ.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KŸhj›ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_request_get (C function)”Œc.media_request_get”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ2void media_request_get (struct media_request *req)”h]”j )�”}”(hŒ1void media_request_get(struct media_request *req)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjNh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K¯ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjNh²hh³j`h´K¯ubj8 )�”}”(hŒmedia_request_get”h]”j> )�”}”(hŒmedia_request_get”h]”hŒmedia_request_get”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjoubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjNh²hh³j`h´K¯ubj˜)�”}”(hŒ(struct media_request *req)”h]”jž)�”}”(hŒstruct media_request *req”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj‹ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj‹ubh)�”}”(hhh]”j> )�”}”(hŒ media_request”h]”hŒ media_request”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjªubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j¯Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jusbŒc.media_request_get”†”asbuh1hhj‹ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj‹ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj‹ubj> )�”}”(hŒreq”h]”hŒreq”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj‹ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj‡ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjNh²hh³j`h´K¯ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjJh²hh³j`h´K¯ubah}”(h]”jEah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j`h´K¯hjGh²hubjj )�”}”(hhh]”hï)�”}”(hŒGet the media request”h]”hŒGet the media request”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K¯hjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjGh²hh³j`h´K¯ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j*jŒ j*j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒj**Parameters** ``struct media_request *req`` The media request **Description** Get the media request.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj4h]”hŒ Parameters”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K³hj.ubjÛ )�”}”(hhh]”jà )�”}”(hŒ0``struct media_request *req`` The media request ”h]”(jæ )�”}”(hŒ``struct media_request *req``”h]”j’)�”}”(hjSh]”hŒstruct media_request *req”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K±hjMubj)�”}”(hhh]”hï)�”}”(hŒThe media request”h]”hŒThe media request”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jhh´K±hjiubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjMubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jhh´K±hjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj.ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjŽh]”hŒ Description”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K³hj.ubhï)�”}”(hŒGet the media request.”h]”hŒGet the media request.”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K²hj.ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_request_put (C function)”Œc.media_request_put”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ2void media_request_put (struct media_request *req)”h]”j )�”}”(hŒ1void media_request_put(struct media_request *req)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjÏh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K»ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÏh²hh³jáh´K»ubj8 )�”}”(hŒmedia_request_put”h]”j> )�”}”(hŒmedia_request_put”h]”hŒmedia_request_put”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjðubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÏh²hh³jáh´K»ubj˜)�”}”(hŒ(struct media_request *req)”h]”jž)�”}”(hŒstruct media_request *req”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj ubh)�”}”(hhh]”j> )�”}”(hŒ media_request”h]”hŒ media_request”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj+ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j0Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jösbŒc.media_request_put”†”asbuh1hhj ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj ubj> )�”}”(hŒreq”h]”hŒreq”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjÏh²hh³jáh´K»ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjËh²hh³jáh´K»ubah}”(h]”jÆah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jáh´K»hjÈh²hubjj )�”}”(hhh]”hï)�”}”(hŒPut the media request”h]”hŒPut the media request”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K»hj�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÈh²hh³jáh´K»ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j«jŒ j«j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒª**Parameters** ``struct media_request *req`` The media request **Description** Put the media request. The media request will be released when the refcount reaches 0.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjµh]”hŒ Parameters”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K¿hj¯ubjÛ )�”}”(hhh]”jà )�”}”(hŒ0``struct media_request *req`` The media request ”h]”(jæ )�”}”(hŒ``struct media_request *req``”h]”j’)�”}”(hjÔh]”hŒstruct media_request *req”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K½hjÎubj)�”}”(hhh]”hï)�”}”(hŒThe media request”h]”hŒThe media request”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jéh´K½hjêubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÎubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jéh´K½hjËubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj¯ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjh]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K¿hj¯ubhï)�”}”(hŒVPut the media request. The media request will be released when the refcount reaches 0.”h]”hŒVPut the media request. The media request will be released when the refcount reaches 0.”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K¾hj¯ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ$media_request_get_by_fd (C function)”Œc.media_request_get_by_fd”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒZstruct media_request * media_request_get_by_fd (struct media_device *mdev, int request_fd)”h]”j )�”}”(hŒXstruct media_request *media_request_get_by_fd(struct media_device *mdev, int request_fd)”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjPh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KÅubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjPh²hh³jah´KÅubh)�”}”(hhh]”j> )�”}”(hŒ media_request”h]”hŒ media_request”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjpubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”juŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_request_get_by_fd”sbŒc.media_request_get_by_fd”†”asbuh1hhjPh²hh³jah´KÅubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjPh²hh³jah´KÅubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjPh²hh³jah´KÅubj8 )�”}”(hŒmedia_request_get_by_fd”h]”j> )�”}”(hj‘h]”hŒmedia_request_get_by_fd”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¯ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjPh²hh³jah´KÅubj˜)�”}”(hŒ+(struct media_device *mdev, int request_fd)”h]”(jž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÊubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÊubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjéubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jîŒmodname”NŒ classname”Njäjç)�”}”jê]”j�Œc.media_request_get_by_fd”†”asbuh1hhjÊubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÊubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÊubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÊubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÆubjž)�”}”(hŒint request_fd”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj:ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj:ubj> )�”}”(hŒ request_fd”h]”hŒ request_fd”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj:ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÆubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjPh²hh³jah´KÅubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjLh²hh³jah´KÅubah}”(h]”jGah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jah´KÅhjIh²hubjj )�”}”(hhh]”hï)�”}”(hŒGet a media request by fd”h]”hŒGet a media request by fd”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KÅhj�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjIh²hh³jah´KÅubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jœjŒ jœj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXí**Parameters** ``struct media_device *mdev`` Media device this request belongs to ``int request_fd`` The file descriptor of the request **Description** Get the request represented by **request_fd** that is owned by the media device. Return a -EBADR error pointer if requests are not supported by this driver. Return -EINVAL if the request was not found. Return the pointer to the request if found: the caller will have to call **media_request_put** when it finished using the request.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj¦h]”hŒ Parameters”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KÉhj ubjÛ )�”}”(hhh]”(jà )�”}”(hŒC``struct media_device *mdev`` Media device this request belongs to ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hjÅh]”hŒstruct media_device *mdev”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KÇhj¿ubj)�”}”(hhh]”hï)�”}”(hŒ$Media device this request belongs to”h]”hŒ$Media device this request belongs to”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÚh´KÇhjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¿ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÚh´KÇhj¼ubjà )�”}”(hŒ6``int request_fd`` The file descriptor of the request ”h]”(jæ )�”}”(hŒ``int request_fd``”h]”j’)�”}”(hjþh]”hŒint request_fd”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KÈhjøubj)�”}”(hhh]”hï)�”}”(hŒ"The file descriptor of the request”h]”hŒ"The file descriptor of the request”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j h´KÈhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjøubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j h´KÈhj¼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj9 h]”hŒ Description”…”�”}”(hj; h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj7 ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KÊhj ubhï)�”}”(hŒPGet the request represented by **request_fd** that is owned by the media device.”h]”(hŒGet the request represented by ”…”�”}”(hjO h²hh³Nh´Nubj')�”}”(hŒ**request_fd**”h]”hŒ request_fd”…”�”}”(hjW h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjO ubhŒ# that is owned by the media device.”…”�”}”(hjO h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KÉhj ubhï)�”}”(hŒûReturn a -EBADR error pointer if requests are not supported by this driver. Return -EINVAL if the request was not found. Return the pointer to the request if found: the caller will have to call **media_request_put** when it finished using the request.”h]”(hŒÂReturn a -EBADR error pointer if requests are not supported by this driver. Return -EINVAL if the request was not found. Return the pointer to the request if found: the caller will have to call ”…”�”}”(hjp h²hh³Nh´Nubj')�”}”(hŒ**media_request_put**”h]”hŒmedia_request_put”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjp ubhŒ$ when it finished using the request.”…”�”}”(hjp h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KÌhj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ media_request_alloc (C function)”Œc.media_request_alloc”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒBint media_request_alloc (struct media_device *mdev, int *alloc_fd)”h]”j )�”}”(hŒAint media_request_alloc(struct media_device *mdev, int *alloc_fd)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hj± h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj­ h²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K×ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀ h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj­ h²hh³j¿ h´K×ubj8 )�”}”(hŒmedia_request_alloc”h]”j> )�”}”(hŒmedia_request_alloc”h]”hŒmedia_request_alloc”…”�”}”(hjÒ h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÎ ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj­ h²hh³j¿ h´K×ubj˜)�”}”(hŒ*(struct media_device *mdev, int *alloc_fd)”h]”(jž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjî h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjê ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjû h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjê ubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jÔ sbŒc.media_request_alloc”†”asbuh1hhjê ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj, h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjê ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj: h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjê ubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hjG h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjê ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjæ ubjž)�”}”(hŒ int *alloc_fd”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hj` h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj\ ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjn h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj\ ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj| h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj\ ubj> )�”}”(hŒalloc_fd”h]”hŒalloc_fd”…”�”}”(hj‰ h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj\ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjæ ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj­ h²hh³j¿ h´K×ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj© h²hh³j¿ h´K×ubah}”(h]”j¤ ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j¿ h´K×hj¦ h²hubjj )�”}”(hhh]”hï)�”}”(hŒAllocate the media request”h]”hŒAllocate the media request”…”�”}”(hj³ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´K×hj° h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj¦ h²hh³j¿ h´K×ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jË jŒ jË j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒç**Parameters** ``struct media_device *mdev`` Media device this request belongs to ``int *alloc_fd`` Store the request's file descriptor in this int **Description** Allocated the media request and put the fd in **alloc_fd**.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjÕ h]”hŒ Parameters”…”�”}”(hj× h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÓ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KÛhjÏ ubjÛ )�”}”(hhh]”(jà )�”}”(hŒC``struct media_device *mdev`` Media device this request belongs to ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hjô h]”hŒstruct media_device *mdev”…”�”}”(hjö h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjò ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KÙhjî ubj)�”}”(hhh]”hï)�”}”(hŒ$Media device this request belongs to”h]”hŒ$Media device this request belongs to”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j h´KÙhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjî ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j h´KÙhjë ubjà )�”}”(hŒB``int *alloc_fd`` Store the request's file descriptor in this int ”h]”(jæ )�”}”(hŒ``int *alloc_fd``”h]”j’)�”}”(hj- h]”hŒ int *alloc_fd”…”�”}”(hj/ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj+ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KÚhj' ubj)�”}”(hhh]”hï)�”}”(hŒ/Store the request's file descriptor in this int”h]”hŒ1Store the request’s file descriptor in this int”…”�”}”(hjF h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jB h´KÚhjC ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj' ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jB h´KÚhjë ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjÏ ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjh h]”hŒ Description”…”�”}”(hjj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjf ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KÜhjÏ ubhï)�”}”(hŒ;Allocated the media request and put the fd in **alloc_fd**.”h]”(hŒ.Allocated the media request and put the fd in ”…”�”}”(hj~ h²hh³Nh´Nubj')�”}”(hŒ **alloc_fd**”h]”hŒalloc_fd”…”�”}”(hj† h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj~ ubhŒ.”…”�”}”(hj~ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KÛhjÏ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ1media_request_mark_manual_completion (C function)”Œ&c.media_request_mark_manual_completion”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒEvoid media_request_mark_manual_completion (struct media_request *req)”h]”j )�”}”(hŒDvoid media_request_mark_manual_completion(struct media_request *req)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¿ h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj» h²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kâubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÎ h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj» h²hh³jÍ h´Kâubj8 )�”}”(hŒ$media_request_mark_manual_completion”h]”j> )�”}”(hŒ$media_request_mark_manual_completion”h]”hŒ$media_request_mark_manual_completion”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÜ ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj» h²hh³jÍ h´Kâubj˜)�”}”(hŒ(struct media_request *req)”h]”jž)�”}”(hŒstruct media_request *req”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjü h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjø ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjø ubh)�”}”(hhh]”j> )�”}”(hŒ media_request”h]”hŒ media_request”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jâ sbŒ&c.media_request_mark_manual_completion”†”asbuh1hhjø ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj: h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjø ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjH h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjø ubj> )�”}”(hŒreq”h]”hŒreq”…”�”}”(hjU h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjø ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjô ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj» h²hh³jÍ h´Kâubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj· h²hh³jÍ h´Kâubah}”(h]”j² ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÍ h´Kâhj´ h²hubjj )�”}”(hhh]”hï)�”}”(hŒEnable manual completion”h]”hŒEnable manual completion”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kâhj| h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj´ h²hh³jÍ h´Kâubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j— jŒ j— j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒæ**Parameters** ``struct media_request *req`` The request **Description** Mark that the request has to be manually completed by calling media_request_manual_complete(). This function shall be called in the req_queue callback.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj¡ h]”hŒ Parameters”…”�”}”(hj£ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjŸ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kæhj› ubjÛ )�”}”(hhh]”jà )�”}”(hŒ*``struct media_request *req`` The request ”h]”(jæ )�”}”(hŒ``struct media_request *req``”h]”j’)�”}”(hjÀ h]”hŒstruct media_request *req”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj¾ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kähjº ubj)�”}”(hhh]”hï)�”}”(hŒ The request”h]”hŒ The request”…”�”}”(hjÙ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÕ h´KähjÖ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjº ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÕ h´Kähj· ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj› ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjû h]”hŒ Description”…”�”}”(hjý h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjù ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kæhj› ubhï)�”}”(hŒ^Mark that the request has to be manually completed by calling media_request_manual_complete().”h]”hŒ^Mark that the request has to be manually completed by calling media_request_manual_complete().”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kåhj› ubhï)�”}”(hŒ8This function shall be called in the req_queue callback.”h]”hŒ8This function shall be called in the req_queue callback.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kèhj› ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ*media_request_manual_complete (C function)”Œc.media_request_manual_complete”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ>void media_request_manual_complete (struct media_request *req)”h]”j )�”}”(hŒ=void media_request_manual_complete(struct media_request *req)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjO h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjK h²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kòubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^ h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjK h²hh³j] h´Kòubj8 )�”}”(hŒmedia_request_manual_complete”h]”j> )�”}”(hŒmedia_request_manual_complete”h]”hŒmedia_request_manual_complete”…”�”}”(hjp h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjl ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjK h²hh³j] h´Kòubj˜)�”}”(hŒ(struct media_request *req)”h]”jž)�”}”(hŒstruct media_request *req”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjˆ ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjˆ ubh)�”}”(hhh]”j> )�”}”(hŒ media_request”h]”hŒ media_request”…”�”}”(hjª h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj§ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j¬ Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jr sbŒc.media_request_manual_complete”†”asbuh1hhjˆ ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊ h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjˆ ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjØ h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjˆ ubj> )�”}”(hŒreq”h]”hŒreq”…”�”}”(hjå h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjˆ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj„ ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjK h²hh³j] h´Kòubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjG h²hh³j] h´Kòubah}”(h]”jB ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j] h´KòhjD h²hubjj )�”}”(hhh]”hï)�”}”(hŒMark the request as completed”h]”hŒMark the request as completed”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kòhj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjD h²hh³j] h´Kòubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j'jŒ j'j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX**Parameters** ``struct media_request *req`` The request **Description** This function completes a request that was marked for manual completion by an earlier call to media_request_mark_manual_completion(). The request's **manual_completion** field is reset to false. All objects contained in the request must have been completed previously. It is an error to call this function otherwise. If such an error occurred, the function will WARN and the object completion will be delayed until **num_incomplete_objects** is 0.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj1h]”hŒ Parameters”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Köhj+ubjÛ )�”}”(hhh]”jà )�”}”(hŒ*``struct media_request *req`` The request ”•Qh]”(jæ )�”}”(hŒ``struct media_request *req``”h]”j’)�”}”(hjPh]”hŒstruct media_request *req”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjNubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´KôhjJubj)�”}”(hhh]”hï)�”}”(hŒ The request”h]”hŒ The request”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jeh´Kôhjfubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjJubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jeh´KôhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj+ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj‹h]”hŒ Description”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Köhj+ubhï)�”}”(hŒÂThis function completes a request that was marked for manual completion by an earlier call to media_request_mark_manual_completion(). The request's **manual_completion** field is reset to false.”h]”(hŒ–This function completes a request that was marked for manual completion by an earlier call to media_request_mark_manual_completion(). The request’s ”…”�”}”(hj¡h²hh³Nh´Nubj')�”}”(hŒ**manual_completion**”h]”hŒmanual_completion”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¡ubhŒ field is reset to false.”…”�”}”(hj¡h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kõhj+ubhï)�”}”(hŒüAll objects contained in the request must have been completed previously. It is an error to call this function otherwise. If such an error occurred, the function will WARN and the object completion will be delayed until **num_incomplete_objects** is 0.”h]”(hŒÜAll objects contained in the request must have been completed previously. It is an error to call this function otherwise. If such an error occurred, the function will WARN and the object completion will be delayed until ”…”�”}”(hjÂh²hh³Nh´Nubj')�”}”(hŒ**num_incomplete_objects**”h]”hŒnum_incomplete_objects”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÂubhŒ is 0.”…”�”}”(hjÂh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Kùhj+ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ#media_request_object_ops (C struct)”Œc.media_request_object_ops”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_request_object_ops”h]”j )�”}”(hŒstruct media_request_object_ops”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÿh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÿh²hh³jh´Mubj8 )�”}”(hŒmedia_request_object_ops”h]”j> )�”}”(hjýh]”hŒmedia_request_object_ops”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÿh²hh³jh´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjûh²hh³jh´Mubah}”(h]”jöah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jh´Mhjøh²hubjj )�”}”(hhh]”hï)�”}”(hŒMedia request object operations”h]”hŒMedia request object operations”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MhjBh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjøh²hh³jh´Mubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ j]jŒ j]j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX…**Definition**:: struct media_request_object_ops { int (*prepare)(struct media_request_object *object); void (*unprepare)(struct media_request_object *object); void (*queue)(struct media_request_object *object); void (*unbind)(struct media_request_object *object); void (*release)(struct media_request_object *object); }; **Members** ``prepare`` Validate and prepare the request object, optional. ``unprepare`` Unprepare the request object, optional. ``queue`` Queue the request object, optional. ``unbind`` Unbind the request object, optional. ``release`` Release the request object, required.”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjeubhŒ:”…”�”}”(hjeh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MhjaubjÓ)�”}”(hXDstruct media_request_object_ops { int (*prepare)(struct media_request_object *object); void (*unprepare)(struct media_request_object *object); void (*queue)(struct media_request_object *object); void (*unbind)(struct media_request_object *object); void (*release)(struct media_request_object *object); };”h]”hXDstruct media_request_object_ops { int (*prepare)(struct media_request_object *object); void (*unprepare)(struct media_request_object *object); void (*queue)(struct media_request_object *object); void (*unbind)(struct media_request_object *object); void (*release)(struct media_request_object *object); };”…”�”}”hj‚sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mhjaubhï)�”}”(hŒ **Members**”h]”j')�”}”(hj“h]”hŒMembers”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M"hjaubjÛ )�”}”(hhh]”(jà )�”}”(hŒ?``prepare`` Validate and prepare the request object, optional. ”h]”(jæ )�”}”(hŒ ``prepare``”h]”j’)�”}”(hj²h]”hŒprepare”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mhj¬ubj)�”}”(hhh]”hï)�”}”(hŒ2Validate and prepare the request object, optional.”h]”hŒ2Validate and prepare the request object, optional.”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÇh´MhjÈubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÇh´Mhj©ubjà )�”}”(hŒ6``unprepare`` Unprepare the request object, optional. ”h]”(jæ )�”}”(hŒ ``unprepare``”h]”j’)�”}”(hjëh]”hŒ unprepare”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mhjåubj)�”}”(hhh]”hï)�”}”(hŒ'Unprepare the request object, optional.”h]”hŒ'Unprepare the request object, optional.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´Mhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjåubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jh´Mhj©ubjà )�”}”(hŒ.``queue`` Queue the request object, optional. ”h]”(jæ )�”}”(hŒ ``queue``”h]”j’)�”}”(hj$h]”hŒqueue”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mhjubj)�”}”(hhh]”hï)�”}”(hŒ#Queue the request object, optional.”h]”hŒ#Queue the request object, optional.”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j9h´Mhj:ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j9h´Mhj©ubjà )�”}”(hŒ0``unbind`` Unbind the request object, optional. ”h]”(jæ )�”}”(hŒ ``unbind``”h]”j’)�”}”(hj]h]”hŒunbind”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MhjWubj)�”}”(hhh]”hï)�”}”(hŒ$Unbind the request object, optional.”h]”hŒ$Unbind the request object, optional.”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jrh´Mhjsubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjWubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jrh´Mhj©ubjà )�”}”(hŒ1``release`` Release the request object, required.”h]”(jæ )�”}”(hŒ ``release``”h]”j’)�”}”(hj–h]”hŒrelease”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mhj�ubj)�”}”(hhh]”hï)�”}”(hŒ%Release the request object, required.”h]”hŒ%Release the request object, required.”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mhj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j«h´Mhj©ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjaubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œmedia_request_object (C struct)”Œc.media_request_object”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒmedia_request_object”h]”j )�”}”(hŒstruct media_request_object”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjìh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjìh²hh³jýh´M ubj8 )�”}”(hŒmedia_request_object”h]”j> )�”}”(hjêh]”hŒmedia_request_object”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjìh²hh³jýh´M ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjèh²hh³jýh´M ubah}”(h]”jãah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jýh´M hjåh²hubjj )�”}”(hhh]”hï)�”}”(hŒ0An opaque object that belongs to a media request”h]”hŒ0An opaque object that belongs to a media request”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M$hj/h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjåh²hh³jýh´M ubeh}”(h]”h ]”(j³Œstruct”eh"]”h$]”h&]”jŠ j³j‹ jJjŒ jJj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX‹**Definition**:: struct media_request_object { struct media_device *mdev; const struct media_request_object_ops *ops; void *priv; struct media_request *req; struct list_head list; struct kref kref; bool completed; }; **Members** ``mdev`` Media device this object belongs to ``ops`` object's operations ``priv`` object's priv pointer ``req`` the request this object belongs to (can be NULL) ``list`` List entry of the object for **struct** media_request ``kref`` Reference count of the object, acquire before releasing req->lock ``completed`` If true, then this object was completed.”h]”(hï)�”}”(hŒ**Definition**::”h]”(j')�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjRubhŒ:”…”�”}”(hjRh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M(hjNubjÓ)�”}”(hŒãstruct media_request_object { struct media_device *mdev; const struct media_request_object_ops *ops; void *priv; struct media_request *req; struct list_head list; struct kref kref; bool completed; };”h]”hŒãstruct media_request_object { struct media_device *mdev; const struct media_request_object_ops *ops; void *priv; struct media_request *req; struct list_head list; struct kref kref; bool completed; };”…”�”}”hjosbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÒh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M*hjNubhï)�”}”(hŒ **Members**”h]”j')�”}”(hj€h]”hŒMembers”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M4hjNubjÛ )�”}”(hhh]”(jà )�”}”(hŒ-``mdev`` Media device this object belongs to ”h]”(jæ )�”}”(hŒ``mdev``”h]”j’)�”}”(hjŸh]”hŒmdev”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M(hj™ubj)�”}”(hhh]”hï)�”}”(hŒ#Media device this object belongs to”h]”hŒ#Media device this object belongs to”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j´h´M(hjµubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj™ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j´h´M(hj–ubjà )�”}”(hŒ``ops`` object's operations ”h]”(jæ )�”}”(hŒ``ops``”h]”j’)�”}”(hjØh]”hŒops”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÖubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M)hjÒubj)�”}”(hhh]”hï)�”}”(hŒobject's operations”h]”hŒobject’s operations”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jíh´M)hjîubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jíh´M)hj–ubjà )�”}”(hŒ``priv`` object's priv pointer ”h]”(jæ )�”}”(hŒ``priv``”h]”j’)�”}”(hjh]”hŒpriv”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M*hj ubj)�”}”(hhh]”hï)�”}”(hŒobject's priv pointer”h]”hŒobject’s priv pointer”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j&h´M*hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j&h´M*hj–ubjà )�”}”(hŒ9``req`` the request this object belongs to (can be NULL) ”h]”(jæ )�”}”(hŒ``req``”h]”j’)�”}”(hjJh]”hŒreq”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjHubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M+hjDubj)�”}”(hhh]”hï)�”}”(hŒ0the request this object belongs to (can be NULL)”h]”hŒ0the request this object belongs to (can be NULL)”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j_h´M+hj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjDubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j_h´M+hj–ubjà )�”}”(hŒ?``list`` List entry of the object for **struct** media_request ”h]”(jæ )�”}”(hŒ``list``”h]”j’)�”}”(hjƒh]”hŒlist”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M,hj}ubj)�”}”(hhh]”hï)�”}”(hŒ5List entry of the object for **struct** media_request”h]”(hŒList entry of the object for ”…”�”}”(hjœh²hh³Nh´Nubj')�”}”(hŒ **struct**”h]”hŒstruct”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjœubhŒ media_request”…”�”}”(hjœh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j˜h´M,hj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j˜h´M,hj–ubjà )�”}”(hŒK``kref`` Reference count of the object, acquire before releasing req->lock ”h]”(jæ )�”}”(hŒ``kref``”h]”j’)�”}”(hjÎh]”hŒkref”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M-hjÈubj)�”}”(hhh]”hï)�”}”(hŒAReference count of the object, acquire before releasing req->lock”h]”hŒAReference count of the object, acquire before releasing req->lock”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jãh´M-hjäubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÈubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jãh´M-hj–ubjà )�”}”(hŒ6``completed`` If true, then this object was completed.”h]”(jæ )�”}”(hŒ ``completed``”h]”j’)�”}”(hjh]”hŒ completed”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M-hjubj)�”}”(hhh]”hï)�”}”(hŒ(If true, then this object was completed.”h]”hŒ(If true, then this object was completed.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M.hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jh´M-hj–ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjNubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjJh]”hŒ Description”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjHubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M1hjá h²hubhï)�”}”(hŒ‰An object related to the request. This struct is always embedded in another struct that contains the actual data for this request object.”h]”hŒ‰An object related to the request. This struct is always embedded in another struct that contains the actual data for this request object.”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M.hjá h²hubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ%media_request_object_get (C function)”Œc.media_request_object_get”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ@void media_request_object_get (struct media_request_object *obj)”h]”j )�”}”(hŒ?void media_request_object_get(struct media_request_object *obj)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj„h²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M?ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj„h²hh³j–h´M?ubj8 )�”}”(hŒmedia_request_object_get”h]”j> )�”}”(hŒmedia_request_object_get”h]”hŒmedia_request_object_get”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¥ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj„h²hh³j–h´M?ubj˜)�”}”(hŒ"(struct media_request_object *obj)”h]”jž)�”}”(hŒ struct media_request_object *obj”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÁubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÁubh)�”}”(hhh]”j> )�”}”(hŒmedia_request_object”h]”hŒmedia_request_object”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjàubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jåŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j«sbŒc.media_request_object_get”†”asbuh1hhjÁubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÁubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÁubj> )�”}”(hŒobj”h]”hŒobj”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÁubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj½ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj„h²hh³j–h´M?ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj€h²hh³j–h´M?ubah}”(h]”j{ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j–h´M?hj}h²hubjj )�”}”(hhh]”hï)�”}”(hŒGet a media request object”h]”hŒGet a media request object”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M?hjEh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hj}h²hh³j–h´M?ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j`jŒ j`j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒo**Parameters** ``struct media_request_object *obj`` The object **Description** Get a media request object.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjjh]”hŒ Parameters”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjhubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MChjdubjÛ )�”}”(hhh]”jà )�”}”(hŒ0``struct media_request_object *obj`` The object ”h]”(jæ )�”}”(hŒ$``struct media_request_object *obj``”h]”j’)�”}”(hj‰h]”hŒ struct media_request_object *obj”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MAhjƒubj)�”}”(hhh]”hï)�”}”(hŒ The object”h]”hŒ The object”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jžh´MAhjŸubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjƒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jžh´MAhj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjdubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjÄh]”hŒ Description”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MChjdubhï)�”}”(hŒGet a media request object.”h]”hŒGet a media request object.”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MBhjdubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ%media_request_object_put (C function)”Œc.media_request_object_put”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ@void media_request_object_put (struct media_request_object *obj)”h]”j )�”}”(hŒ?void media_request_object_put(struct media_request_object *obj)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MKubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjh²hh³jh´MKubj8 )�”}”(hŒmedia_request_object_put”h]”j> )�”}”(hŒmedia_request_object_put”h]”hŒmedia_request_object_put”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj&ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjh²hh³jh´MKubj˜)�”}”(hŒ"(struct media_request_object *obj)”h]”jž)�”}”(hŒ struct media_request_object *obj”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjBubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjBubh)�”}”(hhh]”j> )�”}”(hŒmedia_request_object”h]”hŒmedia_request_object”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjaubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jfŒmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j,sbŒc.media_request_object_put”†”asbuh1hhjBubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjBubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjBubj> )�”}”(hŒobj”h]”hŒobj”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjBubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj>ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjh²hh³jh´MKubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjh²hh³jh´MKubah}”(h]”jüah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jh´MKhjþh²hubjj )�”}”(hhh]”hï)�”}”(hŒPut a media request object”h]”hŒPut a media request object”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MKhjÆh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjþh²hh³jh´MKubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jájŒ jáj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ®**Parameters** ``struct media_request_object *obj`` The object **Description** Put a media request object. Once all references are gone, the object's memory is released.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjëh]”hŒ Parameters”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MOhjåubjÛ )�”}”(hhh]”jà )�”}”(hŒ0``struct media_request_object *obj`` The object ”h]”(jæ )�”}”(hŒ$``struct media_request_object *obj``”h]”j’)�”}”(hj h]”hŒ struct media_request_object *obj”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MMhjubj)�”}”(hhh]”hï)�”}”(hŒ The object”h]”hŒ The object”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´MMhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jh´MMhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjåubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjEh]”hŒ Description”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjCubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MOhjåubhï)�”}”(hŒZPut a media request object. Once all references are gone, the object's memory is released.”h]”hŒ\Put a media request object. Once all references are gone, the object’s memory is released.”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MNhjåubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ&media_request_object_find (C function)”Œc.media_request_object_find”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ‹struct media_request_object * media_request_object_find (struct media_request *req, const struct media_request_object_ops *ops, void *priv)”h]”j )�”}”(hŒ‰struct media_request_object *media_request_object_find(struct media_request *req, const struct media_request_object_ops *ops, void *priv)”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj†h²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MUubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj†h²hh³j—h´MUubh)�”}”(hhh]”j> )�”}”(hŒmedia_request_object”h]”hŒmedia_request_object”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¦ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j«Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_request_object_find”sbŒc.media_request_object_find”†”asbuh1hhj†h²hh³j—h´MUubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj†h²hh³j—h´MUubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj†h²hh³j—h´MUubj8 )�”}”(hŒmedia_request_object_find”h]”j> )�”}”(hjÇh]”hŒmedia_request_object_find”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjåubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hj†h²hh³j—h´MUubj˜)�”}”(hŒS(struct media_request *req, const struct media_request_object_ops *ops, void *priv)”h]”(jž)�”}”(hŒstruct media_request *req”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjubh)�”}”(hhh]”j> )�”}”(hŒ media_request”h]”hŒ media_request”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j$Œmodname”NŒ classname”Njäjç)�”}”jê]”jÅŒc.media_request_object_find”†”asbuh1hhjubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjubj> )�”}”(hŒreq”h]”hŒreq”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjüubjž)�”}”(hŒ*const struct media_request_object_ops *ops”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjpubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjpubj )�”}”(hj h]”hŒstruct”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjpubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjpubh)�”}”(hhh]”j> )�”}”(hŒmedia_request_object_ops”h]”hŒmedia_request_object_ops”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjªubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j¯Œmodname”NŒ classname”Njäjç)�”}”jê]”jÅŒc.media_request_object_find”†”asbuh1hhjpubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjpubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjpubj> )�”}”(hŒops”h]”hŒops”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjpubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjüubjž)�”}”(hŒ void *priv”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjûubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjûubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjûubj> )�”}”(hŒpriv”h]”hŒpriv”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjûubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjüubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hj†h²hh³j—h´MUubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hj‚h²hh³j—h´MUubah}”(h]”j}ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j—h´MUhjh²hubjj )�”}”(hhh]”hï)�”}”(hŒFind an object in a request”h]”hŒFind an object in a request”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MUhjOh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjh²hh³j—h´MUubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jjjŒ jjj� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXþ**Parameters** ``struct media_request *req`` The media request ``const struct media_request_object_ops *ops`` Find an object with this ops value ``void *priv`` Find an object with this priv value **Description** Both **ops** and **priv** must be non-NULL. Returns the object pointer or NULL if not found. The caller must call media_request_object_put() once it finished using the object. Since this function needs to walk the list of objects it takes the **req->lock** spin lock to make this safe.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjth]”hŒ Parameters”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjrubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MYhjnubjÛ )�”}”(hhh]”(jà )�”}”(hŒ0``struct media_request *req`` The media request ”h]”(jæ )�”}”(hŒ``struct media_request *req``”h]”j’)�”}”(hj“h]”hŒstruct media_request *req”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MWhj�ubj)�”}”(hhh]”hï)�”}”(hŒThe media request”h]”hŒThe media request”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¨h´MWhj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j¨h´MWhjŠubjà )�”}”(hŒR``const struct media_request_object_ops *ops`` Find an object with this ops value ”h]”(jæ )�”}”(hŒ.``const struct media_request_object_ops *ops``”h]”j’)�”}”(hjÌh]”hŒ*const struct media_request_object_ops *ops”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MXhjÆubj)�”}”(hhh]”hï)�”}”(hŒ"Find an object with this ops value”h]”hŒ"Find an object with this ops value”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jáh´MXhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jáh´MXhjŠubjà )�”}”(hŒ3``void *priv`` Find an object with this priv value ”h]”(jæ )�”}”(hŒ``void *priv``”h]”j’)�”}”(hjh]”hŒ void *priv”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MYhjÿubj)�”}”(hhh]”hï)�”}”(hŒ#Find an object with this priv value”h]”hŒ#Find an object with this priv value”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´MYhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jh´MYhjŠubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjnubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj@h]”hŒ Description”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M[hjnubhï)�”}”(hŒ+Both **ops** and **priv** must be non-NULL.”h]”(hŒBoth ”…”�”}”(hjVh²hh³Nh´Nubj')�”}”(hŒ**ops**”h]”hŒops”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjVubhŒ and ”…”�”}”(hjVh²hh³Nh´Nubj')�”}”(hŒ**priv**”h]”hŒpriv”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjVubhŒ must be non-NULL.”…”�”}”(hjVh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MZhjnubhï)�”}”(hŒƒReturns the object pointer or NULL if not found. The caller must call media_request_object_put() once it finished using the object.”h]”hŒƒReturns the object pointer or NULL if not found. The caller must call media_request_object_put() once it finished using the object.”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M\hjnubhï)�”}”(hŒmSince this function needs to walk the list of objects it takes the **req->lock** spin lock to make this safe.”h]”(hŒCSince this function needs to walk the list of objects it takes the ”…”�”}”(hj˜h²hh³Nh´Nubj')�”}”(hŒ **req->lock**”h]”hŒ req->lock”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj˜ubhŒ spin lock to make this safe.”…”�”}”(hj˜h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M_hjnubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ&media_request_object_init (C function)”Œc.media_request_object_init”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒAvoid media_request_object_init (struct media_request_object *obj)”h]”j )�”}”(hŒ@void media_request_object_init(struct media_request_object *obj)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjÕh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Miubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÕh²hh³jçh´Miubj8 )�”}”(hŒmedia_request_object_init”h]”j> )�”}”(hŒmedia_request_object_init”h]”hŒmedia_request_object_init”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjöubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjÕh²hh³jçh´Miubj˜)�”}”(hŒ"(struct media_request_object *obj)”h]”jž)�”}”(hŒ struct media_request_object *obj”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjubh)�”}”(hhh]”j> )�”}”(hŒmedia_request_object”h]”hŒmedia_request_object”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj1ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j6Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jüsbŒc.media_request_object_init”†”asbuh1hhjubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjubj> )�”}”(hŒobj”h]”hŒobj”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjÕh²hh³jçh´Miubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÑh²hh³jçh´Miubah}”(h]”jÌah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jçh´MihjÎh²hubjj )�”}”(hhh]”hï)�”}”(hŒ!Initialise a media request object”h]”hŒ!Initialise a media request object”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mihj–h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÎh²hh³jçh´Miubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j±jŒ j±j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX**Parameters** ``struct media_request_object *obj`` The object **Description** Initialise a media request object. The object will be released using the release callback of the ops once it has no references (this function initialises references to one).”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj»h]”hŒ Parameters”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MmhjµubjÛ )�”}”(hhh]”jà )�”}”(hŒ0``struct media_request_object *obj`` The object ”h]”(jæ )�”}”(hŒ$``struct media_request_object *obj``”h]”j’)�”}”(hjÚh]”hŒ struct media_request_object *obj”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjØubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MkhjÔubj)�”}”(hhh]”hï)�”}”(hŒ The object”h]”hŒ The object”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jïh´Mkhjðubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÔubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jïh´MkhjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hjµubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjh]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mmhjµubhï)�”}”(hŒ­Initialise a media request object. The object will be released using the release callback of the ops once it has no references (this function initialises references to one).”h]”hŒ­Initialise a media request object. The object will be released using the release callback of the ops once it has no references (this function initialises references to one).”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mlhjµubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ&media_request_object_bind (C function)”Œc.media_request_object_bind”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒ£int media_request_object_bind (struct media_request *req, const struct media_request_object_ops *ops, void *priv, bool is_buffer, struct media_request_object *obj)”h]”j )�”}”(hŒ¢int media_request_object_bind(struct media_request *req, const struct media_request_object_ops *ops, void *priv, bool is_buffer, struct media_request_object *obj)”h]”(j`)�”}”(hŒint”h]”hŒint”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjVh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mtubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjVh²hh³jhh´Mtubj8 )�”}”(hŒmedia_request_object_bind”h]”j> )�”}”(hŒmedia_request_object_bind”h]”hŒmedia_request_object_bind”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjwubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjVh²hh³jhh´Mtubj˜)�”}”(hŒ…(struct media_request *req, const struct media_request_object_ops *ops, void *priv, bool is_buffer, struct media_request_object *obj)”h]”(jž)�”}”(hŒstruct media_request *req”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj“ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj“ubh)�”}”(hhh]”j> )�”}”(hŒ media_request”h]”hŒ media_request”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj²ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j·Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j}sbŒc.media_request_object_bind”†”asbuh1hhj“ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj“ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj“ubj> )�”}”(hŒreq”h]”hŒreq”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj“ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj�ubjž)�”}”(hŒ*const struct media_request_object_ops *ops”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjubj )�”}”(hj h]”hŒstruct”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjubh)�”}”(hhh]”j> )�”}”(hŒmedia_request_object_ops”h]”hŒmedia_request_object_ops”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj?ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jDŒmodname”NŒ classname”Njäjç)�”}”jê]”jÑŒc.media_request_object_bind”†”asbuh1hhjubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjubj> )�”}”(hŒops”h]”hŒops”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj�ubjž)�”}”(hŒ void *priv”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj�ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj�ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj�ubj> )�”}”(hŒpriv”h]”hŒpriv”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj�ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj�ubjž)�”}”(hŒbool is_buffer”h]”(j`)�”}”(hjJsh]”hŒbool”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjÒubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÒubj> )�”}”(hŒ is_buffer”h]”hŒ is_buffer”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÒubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj�ubjž)�”}”(hŒ struct media_request_object *obj”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjubh)�”}”(hhh]”j> )�”}”(hŒmedia_request_object”h]”hŒmedia_request_object”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj%ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j*Œmodname”NŒ classname”Njäjç)�”}”jê]”jÑŒc.media_request_object_bind”†”asbuh1hhjubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjubj> )�”}”(hŒobj”h]”hŒobj”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjVh²hh³jhh´Mtubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjRh²hh³jhh´Mtubah}”(h]”jMah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jhh´MthjOh²hubjj )�”}”(hhh]”hï)�”}”(hŒ(Bind a media request object to a request”h]”hŒ(Bind a media request object to a request”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mthjˆh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjOh²hh³jhh´Mtubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j£jŒ j£j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXÚ**Parameters** ``struct media_request *req`` The media request ``const struct media_request_object_ops *ops`` The object ops for this object ``void *priv`` A driver-specific priv pointer associated with this object ``bool is_buffer`` Set to true if the object is a buffer object. ``struct media_request_object *obj`` The object **Description** Bind this object to the request and set the ops and priv values of the object so it can be found later with media_request_object_find(). Every bound object must be unbound or completed by the kernel at some point in time, otherwise the request will never complete. When the request is released all completed objects will be unbound by the request core code. Buffer objects will be added to the end of the request's object list, non-buffer objects will be added to the front of the list. This ensures that all buffer objects are at the end of the list and that all non-buffer objects that they depend on are processed first.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj­h]”hŒ Parameters”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mxhj§ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ0``struct media_request *req`` The media request ”h]”(jæ )�”}”(hŒ``struct media_request *req``”h]”j’)�”}”(hjÌh]”hŒstruct media_request *req”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´MvhjÆubj)�”}”(hhh]”hï)�”}”(hŒThe media request”h]”hŒThe media request”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jáh´Mvhjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jáh´MvhjÃubjà )�”}”(hŒN``const struct media_request_object_ops *ops`` The object ops for this object ”h]”(jæ )�”}”(hŒ.``const struct media_request_object_ops *ops``”h]”j’)�”}”(hjh]”hŒ*const struct media_request_object_ops *ops”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mwhjÿubj)�”}”(hhh]”hï)�”}”(hŒThe object ops for this object”h]”hŒThe object ops for this object”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´Mwhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÿubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jh´MwhjÃubjà )�”}”(hŒJ``void *priv`` A driver-specific priv pointer associated with this object ”h]”(jæ )�”}”(hŒ``void *priv``”h]”j’)�”}”(hj>h]”hŒ void *priv”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mxhj8ubj)�”}”(hhh]”hï)�”}”(hŒ:A driver-specific priv pointer associated with this object”h]”hŒ:A driver-specific priv pointer associated with this object”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jSh´MxhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jSh´MxhjÃubjà )�”}”(hŒA``bool is_buffer`` Set to true if the object is a buffer object. ”h]”(jæ )�”}”(hŒ``bool is_buffer``”h]”j’)�”}”(hjwh]”hŒbool is_buffer”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjuubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Myhjqubj)�”}”(hhh]”hï)�”}”(hŒ-Set to true if the object is a buffer object.”h]”hŒ-Set to true if the object is a buffer object.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŒh´Myhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjqubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jŒh´MyhjÃubjà )�”}”(hŒ0``struct media_request_object *obj`` The object ”h]”(jæ )�”}”(hŒ$``struct media_request_object *obj``”h]”j’)�”}”(hj°h]”hŒ struct media_request_object *obj”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mzhjªubj)�”}”(hhh]”hï)�”}”(hŒ The object”h]”hŒ The object”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÅh´MzhjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjªubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jÅh´MzhjÃubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj§ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjëh]”hŒ Description”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjéubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M|hj§ubhï)�”}”(hŒˆBind this object to the request and set the ops and priv values of the object so it can be found later with media_request_object_find().”h]”hŒˆBind this object to the request and set the ops and priv values of the object so it can be found later with media_request_object_find().”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M{hj§ubhï)�”}”(hŒÜEvery bound object must be unbound or completed by the kernel at some point in time, otherwise the request will never complete. When the request is released all completed objects will be unbound by the request core code.”h]”hŒÜEvery bound object must be unbound or completed by the kernel at some point in time, otherwise the request will never complete. When the request is released all completed objects will be unbound by the request core code.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M~hj§ubhï)�”}”(hX Buffer objects will be added to the end of the request's object list, non-buffer objects will be added to the front of the list. This ensures that all buffer objects are at the end of the list and that all non-buffer objects that they depend on are processed first.”h]”hX Buffer objects will be added to the end of the request’s object list, non-buffer objects will be added to the front of the list. This ensures that all buffer objects are at the end of the list and that all non-buffer objects that they depend on are processed first.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mƒhj§ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ(media_request_object_unbind (C function)”Œc.media_request_object_unbind”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒCvoid media_request_object_unbind (struct media_request_object *obj)”h]”j )�”}”(hŒBvoid media_request_object_unbind(struct media_request_object *obj)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjJh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M�ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjJh²hh³j\h´M�ubj8 )�”}”(hŒmedia_request_object_unbind”h]”j> )�”}”(hŒmedia_request_object_unbind”h]”hŒmedia_request_object_unbind”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjkubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjJh²hh³j\h´M�ubj˜)�”}”(hŒ"(struct media_request_object *obj)”h]”jž)�”}”(hŒ struct media_request_object *obj”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj‡ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj‡ubh)�”}”(hhh]”j> )�”}”(hŒmedia_request_object”h]”hŒmedia_request_object”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj¦ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j«Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jqsbŒc.media_request_object_unbind”†”asbuh1hhj‡ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj‡ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj‡ubj> )�”}”(hŒobj”h]”hŒobj”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj‡ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjƒubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjJh²hh³j\h´M�ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjFh²hh³j\h´M�ubah}”(h]”jAah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j\h´M�hjCh²hubjj )�”}”(hhh]”hï)�”}”(hŒUnbind a media request object”h]”hŒUnbind a media request object”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M�hj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjCh²hh³j\h´M�ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j& jŒ j& j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ…**Parameters** ``struct media_request_object *obj`` The object **Description** Unbind the media request object from the request.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj0 h]”hŒ Parameters”…”�”}”(hj2 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj. ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M”hj* ubjÛ )�”}”(hhh]”jà )�”}”(hŒ0``struct media_request_object *obj`` The object ”h]”(jæ )�”}”(hŒ$``struct media_request_object *obj``”h]”j’)�”}”(hjO h]”hŒ struct media_request_object *obj”…”�”}”(hjQ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjM ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M’hjI ubj)�”}”(hhh]”hï)�”}”(hŒ The object”h]”hŒ The object”…”�”}”(hjh h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jd h´M’hje ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjI ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jd h´M’hjF ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj* ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjŠ h]”hŒ Description”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjˆ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M”hj* ubhï)�”}”(hŒ1Unbind the media request object from the request.”h]”hŒ1Unbind the media request object from the request.”…”�”}”(hj  h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M“hj* ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ*media_request_object_complete (C function)”Œc.media_request_object_complete”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒEvoid media_request_object_complete (struct media_request_object *obj)”h]”j )�”}”(hŒDvoid media_request_object_complete(struct media_request_object *obj)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÏ h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjË h²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M™ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÞ h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjË h²hh³jÝ h´M™ubj8 )�”}”(hŒmedia_request_object_complete”h]”j> )�”}”(hŒmedia_request_object_complete”h]”hŒmedia_request_object_complete”…”�”}”(hjð h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjì ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjË h²hh³jÝ h´M™ubj˜)�”}”(hŒ"(struct media_request_object *obj)”h]”jž)�”}”(hŒ struct media_request_object *obj”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj !h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj!ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj!ubh)�”}”(hhh]”j> )�”}”(hŒmedia_request_object”h]”hŒmedia_request_object”…”�”}”(hj*!h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj'!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j,!Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×jò sbŒc.media_request_object_complete”†”asbuh1hhj!ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJ!h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj!ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjX!h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj!ubj> )�”}”(hŒobj”h]”hŒobj”…”�”}”(hje!h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj!ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjË h²hh³jÝ h´M™ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjÇ h²hh³jÝ h´M™ubah}”(h]”j ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³jÝ h´M™hjÄ h²hubjj )�”}”(hhh]”hï)�”}”(hŒ)Mark the media request object as complete”h]”hŒ)Mark the media request object as complete”…”�”}”(hj�!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M™hjŒ!h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjÄ h²hh³jÝ h´M™ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j§!jŒ j§!j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hŒ£**Parameters** ``struct media_request_object *obj`` The object **Description** Mark the media request object as complete. Only bound objects can be completed.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj±!h]”hŒ Parameters”…”�”}”(hj³!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj¯!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M�hj«!ubjÛ )�”}”(hhh]”jà )�”}”(hŒ0``struct media_request_object *obj`` The object ”h]”(jæ )�”}”(hŒ$``struct media_request_object *obj``”h]”j’)�”}”(hjÐ!h]”hŒ struct media_request_object *obj”…”�”}”(hjÒ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÎ!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M›hjÊ!ubj)�”}”(hhh]”hï)�”}”(hŒ The object”h]”hŒ The object”…”�”}”(hjé!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jå!h´M›hjæ!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÊ!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jå!h´M›hjÇ!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj«!ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj "h]”hŒ Description”…”�”}”(hj "h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj "ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´M�hj«!ubhï)�”}”(hŒOMark the media request object as complete. Only bound objects can be completed.”h]”hŒOMark the media request object as complete. Only bound objects can be completed.”…”�”}”(hj!"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:339: ./include/media/media-request.h”h´Mœhj«!ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ&media_device_usb_allocate (C function)”Œc.media_device_usb_allocate”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒxstruct media_device * media_device_usb_allocate (struct usb_device *udev, const char *module_name, struct module *owner)”h]”j )�”}”(hŒvstruct media_device *media_device_usb_allocate(struct usb_device *udev, const char *module_name, struct module *owner)”•®]h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjP"h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjL"h²hh³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´Kubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^"h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjL"h²hh³j]"h´Kubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hjo"h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjl"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jq"Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j׌media_device_usb_allocate”sbŒc.media_device_usb_allocate”†”asbuh1hhjL"h²hh³j]"h´Kubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�"h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjL"h²hh³j]"h´Kubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjž"h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjL"h²hh³j]"h´Kubj8 )�”}”(hŒmedia_device_usb_allocate”h]”j> )�”}”(hj�"h]”hŒmedia_device_usb_allocate”…”�”}”(hj¯"h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj«"ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjL"h²hh³j]"h´Kubj˜)�”}”(hŒH(struct usb_device *udev, const char *module_name, struct module *owner)”h]”(jž)�”}”(hŒstruct usb_device *udev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hjÊ"h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hjÆ"ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj×"h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÆ"ubh)�”}”(hhh]”j> )�”}”(hŒ usb_device”h]”hŒ usb_device”…”�”}”(hjè"h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjå"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”jê"Œmodname”NŒ classname”Njäjç)�”}”jê]”j‹"Œc.media_device_usb_allocate”†”asbuh1hhjÆ"ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjÆ"ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhjÆ"ubj> )�”}”(hŒudev”h]”hŒudev”…”�”}”(hj!#h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjÆ"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÂ"ubjž)�”}”(hŒconst char *module_name”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hj:#h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj6#ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjG#h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj6#ubj`)�”}”(hŒchar”h]”hŒchar”…”�”}”(hjU#h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj6#ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjc#h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj6#ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjq#h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj6#ubj> )�”}”(hŒ module_name”h]”hŒ module_name”…”�”}”(hj~#h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj6#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÂ"ubjž)�”}”(hŒstruct module *owner”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj—#h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj“#ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¤#h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj“#ubh)�”}”(hhh]”j> )�”}”(hŒmodule”h]”hŒmodule”…”�”}”(hjµ#h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj²#ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j·#Œmodname”NŒ classname”Njäjç)�”}”jê]”j‹"Œc.media_device_usb_allocate”†”asbuh1hhj“#ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓ#h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj“#ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjá#h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj“#ubj> )�”}”(hŒowner”h]”hŒowner”…”�”}”(hjî#h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj“#ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hjÂ"ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjL"h²hh³j]"h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjH"h²hh³j]"h´Kubah}”(h]”jC"ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j]"h´KhjE"h²hubjj )�”}”(hhh]”hï)�”}”(hŒ1Allocate and return struct :c:type:`media` device”h]”(hŒAllocate and return struct ”…”�”}”(hj$h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media`”h]”j’)�”}”(hj"$h]”hŒmedia”…”�”}”(hj$$h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj $ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjç)�”}”jê]”j‹"Œc.media_device_usb_allocate”†”asbjŒmedia”uh1hh³j]"h´Khj$ubhŒ device”…”�”}”(hj$h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´Khj$h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjE"h²hh³j]"h´Kubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ jX$jŒ jX$j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hXD**Parameters** ``struct usb_device *udev`` struct :c:type:`usb_device` pointer ``const char *module_name`` should be filled with ``KBUILD_MODNAME`` ``struct module *owner`` struct module pointer ``THIS_MODULE`` for the driver. ``THIS_MODULE`` is null for a built-in driver. It is safe even when ``THIS_MODULE`` is null. **Description** This interface should be called to allocate a Media Device when multiple drivers share usb_device and the media device. This interface allocates :c:type:`media_device` structure and calls media_device_usb_init() to initialize it.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hjb$h]”hŒ Parameters”…”�”}”(hjd$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj`$ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´Khj\$ubjÛ )�”}”(hhh]”(jà )�”}”(hŒ@``struct usb_device *udev`` struct :c:type:`usb_device` pointer ”h]”(jæ )�”}”(hŒ``struct usb_device *udev``”h]”j’)�”}”(hj�$h]”hŒstruct usb_device *udev”…”�”}”(hjƒ$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´Khj{$ubj)�”}”(hhh]”hï)�”}”(hŒ#struct :c:type:`usb_device` pointer”h]”(hŒstruct ”…”�”}”(hjš$h²hh³Nh´Nubh)�”}”(hŒ:c:type:`usb_device`”h]”j’)�”}”(hj¤$h]”hŒ usb_device”…”�”}”(hj¦$h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj¢$ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ usb_device”uh1hh³j–$h´Khjš$ubhŒ pointer”…”�”}”(hjš$h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j–$h´Khj—$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj{$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j–$h´Khjx$ubjà )�”}”(hŒE``const char *module_name`` should be filled with ``KBUILD_MODNAME`` ”h]”(jæ )�”}”(hŒ``const char *module_name``”h]”j’)�”}”(hjÝ$h]”hŒconst char *module_name”…”�”}”(hjß$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÛ$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´Khj×$ubj)�”}”(hhh]”hï)�”}”(hŒ(should be filled with ``KBUILD_MODNAME``”h]”(hŒshould be filled with ”…”�”}”(hjö$h²hh³Nh´Nubj’)�”}”(hŒ``KBUILD_MODNAME``”h]”hŒKBUILD_MODNAME”…”�”}”(hjþ$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjö$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jò$h´Khjó$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj×$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³jò$h´Khjx$ubjà )�”}”(hŒ¬``struct module *owner`` struct module pointer ``THIS_MODULE`` for the driver. ``THIS_MODULE`` is null for a built-in driver. It is safe even when ``THIS_MODULE`` is null. ”h]”(jæ )�”}”(hŒ``struct module *owner``”h]”j’)�”}”(hj$%h]”hŒstruct module *owner”…”�”}”(hj&%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj"%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´Khj%ubj)�”}”(hhh]”hï)�”}”(hŒ’struct module pointer ``THIS_MODULE`` for the driver. ``THIS_MODULE`` is null for a built-in driver. It is safe even when ``THIS_MODULE`` is null.”h]”(hŒstruct module pointer ”…”�”}”(hj=%h²hh³Nh´Nubj’)�”}”(hŒ``THIS_MODULE``”h]”hŒ THIS_MODULE”…”�”}”(hjE%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj=%ubhŒ for the driver. ”…”�”}”(hj=%h²hh³Nh´Nubj’)�”}”(hŒ``THIS_MODULE``”h]”hŒ THIS_MODULE”…”�”}”(hjW%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj=%ubhŒ5 is null for a built-in driver. It is safe even when ”…”�”}”(hj=%h²hh³Nh´Nubj’)�”}”(hŒ``THIS_MODULE``”h]”hŒ THIS_MODULE”…”�”}”(hji%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj=%ubhŒ is null.”…”�”}”(hj=%h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´Khj:%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j9%h´Khjx$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj\$ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hj–%h]”hŒ Description”…”�”}”(hj˜%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj”%ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´K hj\$ubhï)�”}”(hŒåThis interface should be called to allocate a Media Device when multiple drivers share usb_device and the media device. This interface allocates :c:type:`media_device` structure and calls media_device_usb_init() to initialize it.”h]”(hŒ‘This interface should be called to allocate a Media Device when multiple drivers share usb_device and the media device. This interface allocates ”…”�”}”(hj¬%h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hj¶%h]”hŒ media_device”…”�”}”(hj¸%h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hj´%ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´Khj¬%ubhŒ> structure and calls media_device_usb_init() to initialize it.”…”�”}”(hj¬%h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÓ%h´Khj\$ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubjó )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jÿ Œ media_device_delete (C function)”Œc.media_device_delete”hNt”auh1jò hjá h²hh³Nh´Nubj )�”}”(hhh]”(j )�”}”(hŒcvoid media_device_delete (struct media_device *mdev, const char *module_name, struct module *owner)”h]”j )�”}”(hŒbvoid media_device_delete(struct media_device *mdev, const char *module_name, struct module *owner)”h]”(j`)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjþ%h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hjú%h²hh³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´K*ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj &h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hjú%h²hh³j &h´K*ubj8 )�”}”(hŒmedia_device_delete”h]”j> )�”}”(hŒmedia_device_delete”h]”hŒmedia_device_delete”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj&ubah}”(h]”h ]”(jP jQ eh"]”h$]”h&]”hÅhÆuh1j7 hjú%h²hh³j &h´K*ubj˜)�”}”(hŒJ(struct media_device *mdev, const char *module_name, struct module *owner)”h]”(jž)�”}”(hŒstruct media_device *mdev”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj;&h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj7&ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjH&h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj7&ubh)�”}”(hhh]”j> )�”}”(hŒ media_device”h]”hŒ media_device”…”�”}”(hjY&h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hjV&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j[&Œmodname”NŒ classname”Njäjç)�”}”jê]”jß)�”}”j×j!&sbŒc.media_device_delete”†”asbuh1hhj7&ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjy&h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj7&ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hj‡&h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj7&ubj> )�”}”(hŒmdev”h]”hŒmdev”…”�”}”(hj”&h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj7&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj3&ubjž)�”}”(hŒconst char *module_name”h]”(j )�”}”(hj/h]”hŒconst”…”�”}”(hj­&h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj©&ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjº&h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj©&ubj`)�”}”(hŒchar”h]”hŒchar”…”�”}”(hjÈ&h²hh³Nh´Nubah}”(h]”h ]”jlah"]”h$]”h&]”uh1j_hj©&ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖ&h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj©&ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjä&h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj©&ubj> )�”}”(hŒ module_name”h]”hŒ module_name”…”�”}”(hjñ&h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj©&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj3&ubjž)�”}”(hŒstruct module *owner”h]”(j )�”}”(hj h]”hŒstruct”…”�”}”(hj 'h²hh³Nh´Nubah}”(h]”h ]”j! ah"]”h$]”h&]”uh1j hj'ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj'ubh)�”}”(hhh]”j> )�”}”(hŒmodule”h]”hŒmodule”…”�”}”(hj('h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj%'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j³Œreftype”j׌ reftarget”j*'Œmodname”NŒ classname”Njäjç)�”}”jê]”ju&Œc.media_device_delete”†”asbuh1hhj'ubj' )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjF'h²hh³Nh´Nubah}”(h]”h ]”j3 ah"]”h$]”h&]”uh1j& hj'ubjó)�”}”(hjöh]”hŒ*”…”�”}”(hjT'h²hh³Nh´Nubah}”(h]”h ]”jÿah"]”h$]”h&]”uh1jòhj'ubj> )�”}”(hŒowner”h]”hŒowner”…”�”}”(hja'h²hh³Nh´Nubah}”(h]”h ]”jI ah"]”h$]”h&]”uh1j= hj'ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j�hj3&ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j—hjú%h²hh³j &h´K*ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj[ ˆuh1j j\ j] hjö%h²hh³j &h´K*ubah}”(h]”jñ%ah ]”(ja jb eh"]”h$]”h&]”jf ˆjg )jh huh1j h³j &h´K*hjó%h²hubjj )�”}”(hhh]”hï)�”}”(hŒ'Release media device. Calls kref_put().”h]”hŒ'Release media device. Calls kref_put().”…”�”}”(hj‹'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´K*hjˆ'h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1ji hjó%h²hh³j &h´K*ubeh}”(h]”h ]”(j³Œfunction”eh"]”h$]”h&]”jŠ j³j‹ j£'jŒ j£'j� ‰jŽ ‰j� ‰uh1j h²hhjá h³Nh´Nubj‘ )�”}”(hX¥**Parameters** ``struct media_device *mdev`` struct :c:type:`media_device` pointer ``const char *module_name`` should be filled with ``KBUILD_MODNAME`` ``struct module *owner`` struct module pointer ``THIS_MODULE`` for the driver. ``THIS_MODULE`` is null for a built-in driver. It is safe even when ``THIS_MODULE`` is null. **Description** This interface should be called to put Media Device Instance kref.”h]”(hï)�”}”(hŒ**Parameters**”h]”j')�”}”(hj­'h]”hŒ Parameters”…”�”}”(hj¯'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hj«'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´K.hj§'ubjÛ )�”}”(hhh]”(jà )�”}”(hŒD``struct media_device *mdev`` struct :c:type:`media_device` pointer ”h]”(jæ )�”}”(hŒ``struct media_device *mdev``”h]”j’)�”}”(hjÌ'h]”hŒstruct media_device *mdev”…”�”}”(hjÎ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjÊ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´K,hjÆ'ubj)�”}”(hhh]”hï)�”}”(hŒ%struct :c:type:`media_device` pointer”h]”(hŒstruct ”…”�”}”(hjå'h²hh³Nh´Nubh)�”}”(hŒ:c:type:`media_device`”h]”j’)�”}”(hjï'h]”hŒ media_device”…”�”}”(hjñ'h²hh³Nh´Nubah}”(h]”h ]”(jj³Œc-type”eh"]”h$]”h&]”uh1j‘hjí'ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j³Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jäjèjŒ media_device”uh1hh³já'h´K,hjå'ubhŒ pointer”…”�”}”(hjå'h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³já'h´K,hjâ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hjÆ'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³já'h´K,hjÃ'ubjà )�”}”(hŒE``const char *module_name`` should be filled with ``KBUILD_MODNAME`` ”h]”(jæ )�”}”(hŒ``const char *module_name``”h]”j’)�”}”(hj((h]”hŒconst char *module_name”…”�”}”(hj*(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hj&(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´K-hj"(ubj)�”}”(hhh]”hï)�”}”(hŒ(should be filled with ``KBUILD_MODNAME``”h]”(hŒshould be filled with ”…”�”}”(hjA(h²hh³Nh´Nubj’)�”}”(hŒ``KBUILD_MODNAME``”h]”hŒKBUILD_MODNAME”…”�”}”(hjI(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjA(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j=(h´K-hj>(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hj"(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j=(h´K-hjÃ'ubjà )�”}”(hŒ¬``struct module *owner`` struct module pointer ``THIS_MODULE`` for the driver. ``THIS_MODULE`` is null for a built-in driver. It is safe even when ``THIS_MODULE`` is null. ”h]”(jæ )�”}”(hŒ``struct module *owner``”h]”j’)�”}”(hjo(h]”hŒstruct module *owner”…”�”}”(hjq(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjm(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jå h³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´K0hji(ubj)�”}”(hhh]”hï)�”}”(hŒ’struct module pointer ``THIS_MODULE`` for the driver. ``THIS_MODULE`` is null for a built-in driver. It is safe even when ``THIS_MODULE`` is null.”h]”(hŒstruct module pointer ”…”�”}”(hjˆ(h²hh³Nh´Nubj’)�”}”(hŒ``THIS_MODULE``”h]”hŒ THIS_MODULE”…”�”}”(hj�(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjˆ(ubhŒ for the driver. ”…”�”}”(hjˆ(h²hh³Nh´Nubj’)�”}”(hŒ``THIS_MODULE``”h]”hŒ THIS_MODULE”…”�”}”(hj¢(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjˆ(ubhŒ5 is null for a built-in driver. It is safe even when ”…”�”}”(hjˆ(h²hh³Nh´Nubj’)�”}”(hŒ``THIS_MODULE``”h]”hŒ THIS_MODULE”…”�”}”(hj´(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j‘hjˆ(ubhŒ is null.”…”�”}”(hjˆ(h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´K.hj…(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÿ hji(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jß h³j„(h´K0hjÃ'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚ hj§'ubhï)�”}”(hŒ**Description**”h]”j')�”}”(hjá(h]”hŒ Description”…”�”}”(hjã(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j&hjß(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´K2hj§'ubhï)�”}”(hŒBThis interface should be called to put Media Device Instance kref.”h]”hŒBThis interface should be called to put Media Device Instance kref.”…”�”}”(hj÷(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œm/var/lib/git/docbuild/linux/Documentation/driver-api/media/mc-core:341: ./include/media/media-dev-allocator.h”h´K1hj§'ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j� hjá h²hh³Nh´Nubeh}”(h]”Œapi-definitions”ah ]”h"]”Œapi definitions”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´MKubeh}”(h]”Œmedia-controller”ah ]”h"]”Œmedia controller”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Kubeh}”(h]”Œmedia-controller-devices”ah ]”h"]”Œmedia controller devices”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jH)Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j")j)j)j)jujrjŽj‹j’j�jjjîjëj�j�j…j‚j6j3j€j}jl ji j j j� j~ jÞ jÛ j)j)uŒ nametypes”}”(j")‰j)‰ju‰jމj’‰j‰jî‰j�‰j…‰j6‰j€‰jl ‰j ‰j� ‰jÞ ‰j)‰uh}”(j)hÊj)hÝjrj'j‹jxj�j‘jj•jëj"j�jñj‚j“j3jˆj}j9ji jƒj jo j~ j jÛ j„ j)já j j jÑjÖjøjýjRjWjmjrj jjw!j|!jÄ"jÉ"jd$ji$jÃ'jÈ'jž)j£)jÒ+j×+jÖ-jÛ-jÊ0jÏ0j»4jÀ4j°6jµ6j_9jd9j<j<j?j„?j’Bj—Bj"Dj'Dj²Ej·EjŒGj‘GjXIj]IjàJjåJjÊLjÏLj NjNjAPjFPjõQjúQjºSj¿SjÃTjÈTjVj VjÂYjÇYjM[jR[jâ]jç]jí_jò_j§aj¬ajgjgjZhj_hjÎjjÓjjIljNljÖmjÛmj‚oj‡ojqjqj;sj@sjÜtjátjÂvjÇvjìxjñxjGzjLzj¢{j§{j¦}j«}jªj¯jå�jê�j „j%„j®…j³…jˆj ˆjW‰j\‰j“Šj˜ŠjÏ‹jÔ‹j �j�j Žj%Žja‘jf‘j“j “jj–jo–jú—jÿ—jËšjКj¯Ÿj´Ÿj¨j¨j½©j©jÝ«jâ«j¬®j±®j#±j(±j3³j8³jŒµj‘µj�¸j†¸jÚºjߺju¼jz¼j¾j¾jÀjÀjôÁjùÁjBÅjGÅj­Çj²Çj.Éj3ÉjgËjlËjzÍjÍjÅÏjÊÏjïÑjôÑj‘Ój–ÓjÕj Õj—ÖjœÖj÷ØjüØjxÚj}ÚjôÛjùÛj„Ýj‰ÝjGâjLâjëãjðãj�çj”çj<éjAéjéêjîêj’ìj—ìjgîjlîjsðjxðjJójOój£öj¨öjKøjPøjúj„újùýjþýjŒÿj‘ÿjj$j²j·jEjJjÆjËjGjLj¤ j© j² j· jB jG jöjûjãjèj{j€jüjj}j‚jÌjÑjMjRjAjFj jÇ jC"jH"jñ%jö%uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.