€•Œ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/v4l2-event”Œ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/v4l2-event”Œ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/v4l2-event”Œ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/v4l2-event”Œ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/v4l2-event”Œ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/v4l2-event”Œ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/v4l2-event”Œ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³ŒI/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ V4L2 events”h]”hŒ V4L2 events”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒŒThe V4L2 events provide a generic way to pass events to user space. The driver must use :c:type:`v4l2_fh` to be able to support V4L2 events.”h]”(hŒXThe V4L2 events provide a generic way to pass events to user space. The driver must use ”…”�”}”(hhßh²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_fh`”h]”hŒliteral”“”)�”}”(hhéh]”hŒv4l2_fh”…”�”}”(hhíh²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œc”Œc-type”eh"]”h$]”h&]”uh1hëhhçubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œdriver-api/media/v4l2-event”Œ refdomain”høŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰Œ reftarget”Œv4l2_fh”uh1hh³hÇh´KhhßubhŒ# to be able to support V4L2 events.”…”�”}”(hhßh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)�”}”(hXEvents are subscribed per-filehandle. An event specification consists of a ``type`` and is optionally associated with an object identified through the ``id`` field. If unused, then the ``id`` is 0. So an event is uniquely identified by the ``(type, id)`` tuple.”h]”(hŒKEvents are subscribed per-filehandle. An event specification consists of a ”…”�”}”(hjh²hh³Nh´Nubhì)�”}”(hŒ``type``”h]”hŒtype”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjubhŒD and is optionally associated with an object identified through the ”…”�”}”(hjh²hh³Nh´Nubhì)�”}”(hŒ``id``”h]”hŒid”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjubhŒ field. If unused, then the ”…”�”}”(hjh²hh³Nh´Nubhì)�”}”(hŒ``id``”h]”hŒid”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjubhŒ1 is 0. So an event is uniquely identified by the ”…”�”}”(hjh²hh³Nh´Nubhì)�”}”(hŒ``(type, id)``”h]”hŒ (type, id)”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjubhŒ tuple.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hhÊh²hubhÞ)�”}”(hŒYThe :c:type:`v4l2_fh` struct has a list of subscribed events on its ``subscribed`` field.”h]”(hŒThe ”…”�”}”(hjlh²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_fh`”h]”hì)�”}”(hjvh]”hŒv4l2_fh”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjtubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j Œv4l2_fh”uh1hh³hÇh´KhjlubhŒ/ struct has a list of subscribed events on its ”…”�”}”(hjlh²hh³Nh´Nubhì)�”}”(hŒ``subscribed``”h]”hŒ subscribed”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjlubhŒ field.”…”�”}”(hjlh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)�”}”(hŒžWhen the user subscribes to an event, a :c:type:`v4l2_subscribed_event` struct is added to :c:type:`v4l2_fh`\ ``.subscribed``, one for every subscribed event.”h]”(hŒ(When the user subscribes to an event, a ”…”�”}”(hj¯h²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_subscribed_event`”h]”hì)�”}”(hj¹h]”hŒv4l2_subscribed_event”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj·ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j Œv4l2_subscribed_event”uh1hh³hÇh´Khj¯ubhŒ struct is added to ”…”�”}”(hj¯h²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_fh`”h]”hì)�”}”(hjÜh]”hŒv4l2_fh”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjÚubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j Œv4l2_fh”uh1hh³hÇh´Khj¯ubhŒ ”…”�”}”(hj¯h²hh³Nh´Nubhì)�”}”(hŒ``.subscribed``”h]”hŒ .subscribed”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj¯ubhŒ!, one for every subscribed event.”…”�”}”(hj¯h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)�”}”(hŒàEach :c:type:`v4l2_subscribed_event` struct ends with a :c:type:`v4l2_kevent` ringbuffer, with the size given by the caller of :c:func:`v4l2_event_subscribe`. This ringbuffer is used to store any events raised by the driver.”h]”(hŒEach ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_subscribed_event`”h]”hì)�”}”(hjh]”hŒv4l2_subscribed_event”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j Œv4l2_subscribed_event”uh1hh³hÇh´KhjubhŒ struct ends with a ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_kevent`”h]”hì)�”}”(hjBh]”hŒ v4l2_kevent”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj@ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j Œ v4l2_kevent”uh1hh³hÇh´KhjubhŒ2 ringbuffer, with the size given by the caller of ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ:c:func:`v4l2_event_subscribe`”h]”hì)�”}”(hjeh]”hŒv4l2_event_subscribe()”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-func”eh"]”h$]”h&]”uh1hëhjcubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰j Œv4l2_event_subscribe”uh1hh³hÇh´KhjubhŒC. This ringbuffer is used to store any events raised by the driver.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)�”}”(hŒçSo every ``(type, ID)`` event tuple will have its own :c:type:`v4l2_kevent` ringbuffer. This guarantees that if a driver is generating lots of events of one type in a short time, then that will not overwrite events of another type.”h]”(hŒ So every ”…”�”}”(hjŒh²hh³Nh´Nubhì)�”}”(hŒ``(type, ID)``”h]”hŒ (type, ID)”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjŒubhŒ event tuple will have its own ”…”�”}”(hjŒh²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_kevent`”h]”hì)�”}”(hj¨h]”hŒ v4l2_kevent”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj¦ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j Œ v4l2_kevent”uh1hh³hÇh´KhjŒubhŒœ ringbuffer. This guarantees that if a driver is generating lots of events of one type in a short time, then that will not overwrite events of another type.”…”�”}”(hjŒh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)�”}”(hŒšBut if you get more events of one type than the size of the :c:type:`v4l2_kevent` ringbuffer, then the oldest event will be dropped and the new one added.”h]”(hŒhhÊh²hubhÞ)�”}”(hŒ²The ``merge()`` callback allows you to merge the oldest event payload into that of the second-oldest event payload. It is called when the ringbuffer has size is greater than one.”h]”(hŒThe ”…”�”}”(hjªh²hh³Nh´Nubhì)�”}”(hŒ ``merge()``”h]”hŒmerge()”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjªubhŒ£ callback allows you to merge the oldest event payload into that of the second-oldest event payload. It is called when the ringbuffer has size is greater than one.”…”�”}”(hjªh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KDhhÊh²hubhÞ)�”}”(hŒ]This way no status information is lost, just the intermediate steps leading up to that state.”h]”hŒ]This way no status information is lost, just the intermediate steps leading up to that state.”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KHhhÊh²hubhÞ)�”}”(hŒ–A good example of these ``replace``/``merge`` callbacks is in v4l2-event.c: ``ctrls_replace()`` and ``ctrls_merge()`` callbacks for the control event.”h]”(hŒA good example of these ”…”�”}”(hjØh²hh³Nh´Nubhì)�”}”(hŒ ``replace``”h]”hŒreplace”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjØubhŒ/”…”�”}”(hjØh²hh³Nh´Nubhì)�”}”(hŒ ``merge``”h]”hŒmerge”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjØubhŒ callbacks is in v4l2-event.c: ”…”�”}”(hjØh²hh³Nh´Nubhì)�”}”(hŒ``ctrls_replace()``”h]”hŒctrls_replace()”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjØubhŒ and ”…”�”}”(hjØh²hh³Nh´Nubhì)�”}”(hŒ``ctrls_merge()``”h]”hŒ ctrls_merge()”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjØubhŒ! callbacks for the control event.”…”�”}”(hjØh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KKhhÊh²hubhŒnote”“”)�”}”(hŒKthese callbacks can be called from interrupt context, so they must be fast.”h]”hÞ)�”}”(hŒKthese callbacks can be called from interrupt context, so they must be fast.”h]”hŒKthese callbacks can be called from interrupt context, so they must be fast.”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KOhj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j.hhÊh²hh³hÇh´NubhÞ)�”}”(hŒ>In order to queue events to video device, drivers should call:”h]”hŒ>In order to queue events to video device, drivers should call:”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KRhhÊh²hubhŒ block_quote”“”)�”}”(hŒi:c:func:`v4l2_event_queue ` (:c:type:`vdev `, :c:type:`ev `) ”h]”hÞ)�”}”(hŒh:c:func:`v4l2_event_queue ` (:c:type:`vdev `, :c:type:`ev `)”h]”(h)�”}”(hŒ-:c:func:`v4l2_event_queue `”h]”hì)�”}”(hjbh]”hŒv4l2_event_queue”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-func”eh"]”h$]”h&]”uh1hëhj`ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œfunc”Œ refexplicit”ˆŒrefwarn”‰j Œv4l2_event_queue”uh1hh³hÇh´KThj\ubhŒ (”…”�”}”(hj\h²hh³Nh´Nubh)�”}”(hŒ:c:type:`vdev `”h]”hì)�”}”(hj…h]”hŒvdev”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjƒubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j Œ video_device”uh1hh³hÇh´KThj\ubhŒ, ”…”�”}”(hj\h²hh³Nh´Nubh)�”}”(hŒ:c:type:`ev `”h]”hì)�”}”(hj¨h]”hŒev”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj¦ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j Œ v4l2_event”uh1hh³hÇh´KThj\ubhŒ)”…”�”}”(hj\h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KThjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jVh³hÇh´KThhÊh²hubhÞ)�”}”(hŒxThe driver's only responsibility is to fill in the type and the data fields. The other fields will be filled in by V4L2.”h]”hŒzThe driver’s only responsibility is to fill in the type and the data fields. The other fields will be filled in by V4L2.”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KWhhÊh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒEvent subscription”h]”hŒEvent subscription”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjãh²hh³hÇh´K[ubhÞ)�”}”(hŒSubscribing to an event is via:”h]”hŒSubscribing to an event is via:”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K]hjãh²hubjW)�”}”(hŒ¬:c:func:`v4l2_event_subscribe ` (:c:type:`fh `, :c:type:`sub ` , elems, :c:type:`ops `) ”h]”hÞ)�”}”(hŒª:c:func:`v4l2_event_subscribe ` (:c:type:`fh `, :c:type:`sub ` , elems, :c:type:`ops `)”h]”(h)�”}”(hŒ5:c:func:`v4l2_event_subscribe `”h]”hì)�”}”(hj h]”hŒv4l2_event_subscribe”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-func”eh"]”h$]”h&]”uh1hëhj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œfunc”Œ refexplicit”ˆŒrefwarn”‰j Œv4l2_event_subscribe”uh1hh³hÇh´K_hjubhŒ (”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ:c:type:`fh `”h]”hì)�”}”(hj/h]”hŒfh”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj-ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j Œv4l2_fh”uh1hh³hÇh´K_hjubhŒ, ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ':c:type:`sub `”h]”hì)�”}”(hjRh]”hŒsub”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjPubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j Œv4l2_event_subscription”uh1hh³hÇh´K_hjubhŒ , elems, ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ):c:type:`ops `”h]”hì)�”}”(hjuh]”hŒops”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjsubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j Œv4l2_subscribed_event_ops”uh1hh³hÇh´K_hjubhŒ)”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K_hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jVh³hÇh´K_hjãh²hubhÞ)�”}”(hX+This function is used to implement :c:type:`video_device`-> :c:type:`ioctl_ops `-> ``vidioc_subscribe_event``, but the driver must check first if the driver is able to produce events with specified event id, and then should call :c:func:`v4l2_event_subscribe` to subscribe the event.”h]”(hŒ#This function is used to implement ”…”�”}”(hj¢h²hh³Nh´Nubh)�”}”(hŒ:c:type:`video_device`”h]”hì)�”}”(hj¬h]”hŒ video_device”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjªubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j Œ video_device”uh1hh³hÇh´Kdhj¢ubhŒ-> ”…”�”}”(hj¢h²hh³Nh´Nubh)�”}”(hŒ$:c:type:`ioctl_ops `”h]”hì)�”}”(hjÏh]”hŒ ioctl_ops”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjÍubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j Œv4l2_ioctl_ops”uh1hh³hÇh´Kdhj¢ubhŒ-> ”…”�”}”(hj¢h²hh³Nh´Nubhì)�”}”(hŒ``vidioc_subscribe_event``”h]”hŒvidioc_subscribe_event”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj¢ubhŒx, but the driver must check first if the driver is able to produce events with specified event id, and then should call ”…”�”}”(hj¢h²hh³Nh´Nubh)�”}”(hŒ:c:func:`v4l2_event_subscribe`”h]”hì)�”}”(hjh]”hŒv4l2_event_subscribe()”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-func”eh"]”h$]”h&]”uh1hëhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰j Œv4l2_event_subscribe”uh1hh³hÇh´Kdhj¢ubhŒ to subscribe the event.”…”�”}”(hj¢h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kdhjãh²hubhÞ)�”}”(hŒŸThe elems argument is the size of the event queue for this event. If it is 0, then the framework will fill in a default value (this depends on the event type).”h]”hŒŸThe elems argument is the size of the event queue for this event. If it is 0, then the framework will fill in a default value (this depends on the event type).”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kjhjãh²hubhÞ)�”}”(hŒDThe ops argument allows the driver to specify a number of callbacks:”h]”hŒDThe ops argument allows the driver to specify a number of callbacks:”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Knhjãh²hubhŒtabular_col_spec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œspec”Œ|p{1.5cm}|p{16.0cm}|”uh1jGh³hÇh´Kphjãh²hubhŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j^hj[ubj_)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K>uh1j^hj[ubhŒthead”“”)�”}”(hhh]”hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hÞ)�”}”(hŒCallback”h]”hŒCallback”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kshj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj{ubj)�”}”(hhh]”hÞ)�”}”(hŒ Description”h]”hŒ Description”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kshj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jthj[ubhŒtbody”“”)�”}”(hhh]”(jz)�”}”(hhh]”(j)�”}”(hhh]”hÞ)�”}”(hŒadd”h]”hŒadd”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KuhjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj¿ubj)�”}”(hhh]”hÞ)�”}”(hŒ|called when a new listener gets added (subscribing to the same event twice will only cause this callback to get called once)”h]”hŒ|called when a new listener gets added (subscribing to the same event twice will only cause this callback to get called once)”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KuhjÙubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj¿ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¼ubjz)�”}”(hhh]”(j)�”}”(hhh]”hÞ)�”}”(hŒdel”h]”hŒdel”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kwhjùubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjöubj)�”}”(hhh]”hÞ)�”}”(hŒ&called when a listener stops listening”h]”hŒ&called when a listener stops listening”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kwhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjöubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¼ubjz)�”}”(hhh]”(j)�”}”(hhh]”hÞ)�”}”(hŒreplace”h]”hŒreplace”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kxhj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj-ubj)�”}”(hhh]”hÞ)�”}”(hŒ%replace event 'old' with event 'new'.”h]”hŒ-replace event ‘old’ with event ‘new’.”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KxhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hj-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¼ubjz)�”}”(hhh]”(j)�”}”(hhh]”hÞ)�”}”(hŒmerge”h]”hŒmerge”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kyhjgubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjdubj)�”}”(hhh]”hÞ)�”}”(hŒ#merge event 'old' into event 'new'.”h]”hŒ+merge event ‘old’ into event ‘new’.”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kyhj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1j~hjdubeh}”(h]”h ]”h"]”h$]”h&]”uh1jyhj¼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jºhj[ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jYhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1jThjãh²hh³hÇh´NubhÞ)�”}”(hŒpAll 4 callbacks are optional, if you don't want to specify any callbacks the ops argument itself maybe ``NULL``.”h]”(hŒiAll 4 callbacks are optional, if you don’t want to specify any callbacks the ops argument itself maybe ”…”�”}”(hj®h²hh³Nh´Nubhì)�”}”(hŒ``NULL``”h]”hŒNULL”…”�”}”(hj¶h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj®ubhŒ.”…”�”}”(hj®h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K|hjãh²hubeh}”(h]”Œevent-subscription”ah ]”h"]”Œevent subscription”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K[ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒUnsubscribing an event”h]”hŒUnsubscribing an event”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÖh²hh³hÇh´K€ubhÞ)�”}”(hŒ!Unsubscribing to an event is via:”h]”hŒ!Unsubscribing to an event is via:”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‚hjÖh²hubjW)�”}”(hŒ|:c:func:`v4l2_event_unsubscribe ` (:c:type:`fh `, :c:type:`sub `) ”h]”hÞ)�”}”(hŒ{:c:func:`v4l2_event_unsubscribe ` (:c:type:`fh `, :c:type:`sub `)”h]”(h)�”}”(hŒ9:c:func:`v4l2_event_unsubscribe `”h]”hì)�”}”(hjÿh]”hŒv4l2_event_unsubscribe”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-func”eh"]”h$]”h&]”uh1hëhjýubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œfunc”Œ refexplicit”ˆŒrefwarn”‰j Œv4l2_event_unsubscribe”uh1hh³hÇh´K„hjùubhŒ (”…”�”}”(hjùh²hh³Nh´Nubh)�”}”(hŒ:c:type:`fh `”h]”hì)�”}”(hj" h]”hŒfh”…”�”}”(hj$ h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j Œv4l2_fh”uh1hh³hÇh´K„hjùubhŒ, ”…”�”}”(hjùh²hh³Nh´Nubh)�”}”(hŒ':c:type:`sub `”h]”hì)�”}”(hjE h]”hŒsub”…”�”}”(hjG h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjC ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j Œv4l2_event_subscription”uh1hh³hÇh´K„hjùubhŒ)”…”�”}”(hjùh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K„hjõubah}”(h]”h ]”h"]”h$]”h&]”uh1jVh³hÇh´K„hjÖh²hubhÞ)�”}”(hŒöThis function is used to implement :c:type:`video_device`-> :c:type:`ioctl_ops `-> ``vidioc_unsubscribe_event``. A driver may call :c:func:`v4l2_event_unsubscribe` directly unless it wants to be involved in unsubscription process.”h]”(hŒ#This function is used to implement ”…”�”}”(hjr h²hh³Nh´Nubh)�”}”(hŒ:c:type:`video_device`”h]”hì)�”}”(hj| h]”hŒ video_device”…”�”}”(hj~ h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjz ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j Œ video_device”uh1hh³hÇh´K‡hjr ubhŒ-> ”…”�”}”(hjr h²hh³Nh´Nubh)�”}”(hŒ$:c:type:`ioctl_ops `”h]”hì)�”}”(hjŸ h]”hŒ ioctl_ops”…”�”}”(hj¡ h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj� ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j Œv4l2_ioctl_ops”uh1hh³hÇh´K‡hjr ubhŒ-> ”…”�”}”(hjr h²hh³Nh´Nubhì)�”}”(hŒ``vidioc_unsubscribe_event``”h]”hŒvidioc_unsubscribe_event”…”�”}”(hjÀ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjr ubhŒ. A driver may call ”…”�”}”(hjr h²hh³Nh´Nubh)�”}”(hŒ :c:func:`v4l2_event_unsubscribe`”h]”hì)�”}”(hjÔ h]”hŒv4l2_event_unsubscribe()”…”�”}”(hjÖ h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-func”eh"]”h$]”h&]”uh1hëhjÒ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰j Œv4l2_event_unsubscribe”uh1hh³hÇh´K‡hjr ubhŒC directly unless it wants to be involved in unsubscription process.”…”�”}”(hjr h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K‡hjÖh²hubhÞ)�”}”(hŒ€The special type ``V4L2_EVENT_ALL`` may be used to unsubscribe all events. The drivers may want to handle this in a special way.”h]”(hŒThe special type ”…”�”}”(hjû h²hh³Nh´Nubhì)�”}”(hŒ``V4L2_EVENT_ALL``”h]”hŒV4L2_EVENT_ALL”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjû ubhŒ] may be used to unsubscribe all events. The drivers may want to handle this in a special way.”…”�”}”(hjû h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŒhjÖh²hubeh}”(h]”Œunsubscribing-an-event”ah ]”h"]”Œunsubscribing an event”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K€ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Check if there's a pending event”h]”hŒ"Check if there’s a pending event”…”�”}”(hj& h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj# h²hh³hÇh´K�ubhÞ)�”}”(hŒ+Checking if there's a pending event is via:”h]”hŒ-Checking if there’s a pending event is via:”…”�”}”(hj4 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K’hj# h²hubjW)�”}”(hŒL:c:func:`v4l2_event_pending ` (:c:type:`fh `) ”h]”hÞ)�”}”(hŒJ:c:func:`v4l2_event_pending ` (:c:type:`fh `)”h]”(h)�”}”(hŒ1:c:func:`v4l2_event_pending `”h]”hì)�”}”(hjL h]”hŒv4l2_event_pending”…”�”}”(hjN h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-func”eh"]”h$]”h&]”uh1hëhjJ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œfunc”Œ refexplicit”ˆŒrefwarn”‰j Œv4l2_event_pending”uh1hh³hÇh´K”hjF ubhŒ (”…”�”}”(hjF h²hh³Nh´Nubh)�”}”(hŒ:c:type:`fh `”h]”hì)�”}”(hjo h]”hŒfh”…”�”}”(hjq h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjm ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j Œv4l2_fh”uh1hh³hÇh´K”hjF ubhŒ)”…”�”}”(hjF h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K”hjB ubah}”(h]”h ]”h"]”h$]”h&]”uh1jVh³hÇh´K”hj# h²hubhÞ)�”}”(hŒRThis function returns the number of pending events. Useful when implementing poll.”h]”hŒRThis function returns the number of pending events. Useful when implementing poll.”…”�”}”(hjœ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K˜hj# h²hubeh}”(h]”Œ check-if-there-s-a-pending-event”ah ]”h"]”Œ check if there's a pending event”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K�ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒHow events work”h]”hŒHow events work”…”�”}”(hjµ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj² h²hh³hÇh´KœubhÞ)�”}”(hŒ¦Events are delivered to user space through the poll system call. The driver can use :c:type:`v4l2_fh`->wait (a wait_queue_head_t) as the argument for ``poll_wait()``.”h]”(hŒTEvents are delivered to user space through the poll system call. The driver can use ”…”�”}”(hjà h²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_fh`”h]”hì)�”}”(hjÍ h]”hŒv4l2_fh”…”�”}”(hjÏ h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjË ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j Œv4l2_fh”uh1hh³hÇh´Kžhjà ubhŒ1->wait (a wait_queue_head_t) as the argument for ”…”�”}”(hjà h²hh³Nh´Nubhì)�”}”(hŒ``poll_wait()``”h]”hŒ poll_wait()”…”�”}”(hjî h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjà ubhŒ.”…”�”}”(hjà h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kžhj² h²hubhÞ)�”}”(hX�There are standard and private events. New standard events must use the smallest available event type. The drivers must allocate their events from their own class starting from class base. Class base is ``V4L2_EVENT_PRIVATE_START`` + n * 1000 where n is the lowest available number. The first event type in the class is reserved for future use, so the first available event type is 'class base + 1'.”h]”(hŒËThere are standard and private events. New standard events must use the smallest available event type. The drivers must allocate their events from their own class starting from class base. Class base is ”…”�”}”(hj h²hh³Nh´Nubhì)�”}”(hŒ``V4L2_EVENT_PRIVATE_START``”h]”hŒV4L2_EVENT_PRIVATE_START”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj ubhŒ¬ + n * 1000 where n is the lowest available number. The first event type in the class is reserved for future use, so the first available event type is ‘class base + 1’.”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¢hj² h²hubhÞ)�”}”(hŒ}An example on how the V4L2 events may be used can be found in the OMAP 3 ISP driver (``drivers/media/platform/ti/omap3isp``).”h]”(hŒUAn example on how the V4L2 events may be used can be found in the OMAP 3 ISP driver (”…”�”}”(hj& h²hh³Nh´Nubhì)�”}”(hŒ&``drivers/media/platform/ti/omap3isp``”h]”hŒ"drivers/media/platform/ti/omap3isp”…”�”}”(hj. h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj& ubhŒ).”…”�”}”(hj& h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K©hj² h²hubhÞ)�”}”(hXA subdev can directly send an event to the :c:type:`v4l2_device` notify function with ``V4L2_DEVICE_NOTIFY_EVENT``. This allows the bridge to map the subdev that sends the event to the video node(s) associated with the subdev that need to be informed about such an event.”h]”(hŒ+A subdev can directly send an event to the ”…”�”}”(hjF h²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_device`”h]”hì)�”}”(hjP h]”hŒ v4l2_device”…”�”}”(hjR h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjN ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j Œ v4l2_device”uh1hh³hÇh´K¬hjF ubhŒ notify function with ”…”�”}”(hjF h²hh³Nh´Nubhì)�”}”(hŒ``V4L2_DEVICE_NOTIFY_EVENT``”h]”hŒV4L2_DEVICE_NOTIFY_EVENT”…”�”}”(hjq h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjF ubhŒ�. This allows the bridge to map the subdev that sends the event to the video node(s) associated with the subdev that need to be informed about such an event.”…”�”}”(hjF h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¬hj² h²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ(V4L2 event functions and data structures”h]”hŒ(V4L2 event functions and data structures”…”�”}”(hjŒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj‰ h²hh³hÇh´K²ubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œv4l2_kevent (C struct)”Œ c.v4l2_kevent”hNt”auh1jš hj‰ h²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒ v4l2_kevent”h]”hŒdesc_signature_line”“”)�”}”(hŒstruct v4l2_kevent”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³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.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Œ v4l2_kevent”h]”hŒ desc_sig_name”“”)�”}”(hj´ h]”hŒ v4l2_kevent”…”�”}”(hjç h²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1jå hjá ubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1jß 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ŒInternal kernel event struct.”h]”hŒInternal kernel event struct.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Khj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj­ h²hh³jÍ h´Kubeh}”(h]”h ]”(høŒstruct”eh"]”h$]”h&]”Œdomain”høŒobjtype”j. Œdesctype”j. Œnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1j« h²hhj‰ h³Nh´NubhŒ container”“”)�”}”(hX€ **Definition**:: struct v4l2_kevent { struct list_head list; struct v4l2_subscribed_event *sev; struct v4l2_event event; u64 ts; }; **Members** ``list`` List node for the v4l2_fh->available list. ``sev`` Pointer to parent v4l2_subscribed_event. ``event`` The event itself. ``ts`` The timestamp of the event.”h]”(jW)�”}”(hŒ¶**Definition**:: struct v4l2_kevent { struct list_head list; struct v4l2_subscribed_event *sev; struct v4l2_event event; u64 ts; }; ”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(hŒstrong”“”)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjH h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hjB ubhŒ:”…”�”}”(hjB h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Khj> ubhŒ literal_block”“”)�”}”(hŒ—struct v4l2_kevent { struct list_head list; struct v4l2_subscribed_event *sev; struct v4l2_event event; u64 ts; };”h]”hŒ—struct v4l2_kevent { struct list_head list; struct v4l2_subscribed_event *sev; struct v4l2_event event; u64 ts; };”…”�”}”hjc sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1ja h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Khj> ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVh³j` h´Khj: ubhÞ)�”}”(hŒ **Members**”h]”jG )�”}”(hjz h]”hŒMembers”…”�”}”(hj| h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hjx ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K&hj: ubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ4``list`` List node for the v4l2_fh->available list. ”h]”(hŒterm”“”)�”}”(hŒ``list``”h]”hì)�”}”(hjŸ h]”hŒlist”…”�”}”(hj¡ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Khj— ubhŒ definition”“”)�”}”(hhh]”hÞ)�”}”(hŒ*List node for the v4l2_fh->available list.”h]”hŒ*List node for the v4l2_fh->available list.”…”�”}”(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Œ1``sev`` Pointer to parent v4l2_subscribed_event. ”h]”(jœ )�”}”(hŒ``sev``”h]”hì)�”}”(hjÚ h]”hŒsev”…”�”}”(hjÜ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjØ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KhjÔ ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ(Pointer to parent v4l2_subscribed_event.”h]”hŒ(Pointer to parent v4l2_subscribed_event.”…”�”}”(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Œ``event`` The event itself. ”h]”(jœ )�”}”(hŒ ``event``”h]”hì)�”}”(hj h]”hŒevent”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Khj ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒThe event itself.”h]”hŒThe event itself.”…”�”}”(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Œ"``ts`` The timestamp of the event.”h]”(jœ )�”}”(hŒ``ts``”h]”hì)�”}”(hjL h]”hŒts”…”�”}”(hjN h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjJ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KhjF ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒThe timestamp of the event.”h]”hŒThe timestamp of the event.”…”�”}”(hje h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Khjb ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hjF ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³ja h´Khj’ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j� hj: ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j8 hj‰ h²hh³Nh´Nubj› )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j§ Œ$v4l2_subscribed_event_ops (C struct)”Œc.v4l2_subscribed_event_ops”hNt”auh1jš hj‰ h²hh³Nh´Nubj¬ )�”}”(hhh]”(j± )�”}”(hŒv4l2_subscribed_event_ops”h]”j· )�”}”(hŒ struct v4l2_subscribed_event_ops”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/v4l2-event:180: ./include/media/v4l2-event.h”h´K$ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj´ h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj¢ h²hh³j³ h´K$ubjà )�”}”(hŒv4l2_subscribed_event_ops”h]”jæ )�”}”(hj  h]”hŒv4l2_subscribed_event_ops”…”�”}”(hjÆ h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj ubah}”(h]”h ]”(jø jù eh"]”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 ]”(j j eh"]”h$]”h&]”j ˆj )j huh1j° h³j³ h´K$hj› h²hubj )�”}”(hhh]”hÞ)�”}”(hŒSubscribed event operations.”h]”hŒSubscribed event operations.”…”�”}”(hjè h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K'hjå h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj› h²hh³j³ h´K$ubeh}”(h]”h ]”(høŒstruct”eh"]”h$]”h&]”j2 høj3 jj4 jj5 ‰j6 ‰j7 ‰uh1j« h²hhj‰ h³Nh´Nubj9 )�”}”(hX˜ **Definition**:: struct v4l2_subscribed_event_ops { int (*add)(struct v4l2_subscribed_event *sev, unsigned int elems); void (*del)(struct v4l2_subscribed_event *sev); void (*replace)(struct v4l2_event *old, const struct v4l2_event *new); void (*merge)(const struct v4l2_event *old, struct v4l2_event *new); }; **Members** ``add`` Optional callback, called when a new listener is added ``del`` Optional callback, called when a listener stops listening ``replace`` Optional callback that can replace event 'old' with event 'new'. ``merge`` Optional callback that can merge event 'old' into event 'new'.”h]”(jW)�”}”(hX[**Definition**:: struct v4l2_subscribed_event_ops { int (*add)(struct v4l2_subscribed_event *sev, unsigned int elems); void (*del)(struct v4l2_subscribed_event *sev); void (*replace)(struct v4l2_event *old, const struct v4l2_event *new); void (*merge)(const struct v4l2_event *old, struct v4l2_event *new); }; ”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jG )�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hj ubhŒ:”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K+hjubjb )�”}”(hX<struct v4l2_subscribed_event_ops { int (*add)(struct v4l2_subscribed_event *sev, unsigned int elems); void (*del)(struct v4l2_subscribed_event *sev); void (*replace)(struct v4l2_event *old, const struct v4l2_event *new); void (*merge)(const struct v4l2_event *old, struct v4l2_event *new); };”h]”hX<struct v4l2_subscribed_event_ops { int (*add)(struct v4l2_subscribed_event *sev, unsigned int elems); void (*del)(struct v4l2_subscribed_event *sev); void (*replace)(struct v4l2_event *old, const struct v4l2_event *new); void (*merge)(const struct v4l2_event *old, struct v4l2_event *new); };”…”�”}”hj)sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1ja h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K-hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVh³j(h´K+hjubhÞ)�”}”(hŒ **Members**”h]”jG )�”}”(hj@h]”hŒMembers”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K4hjubj‘ )�”}”(hhh]”(j– )�”}”(hŒ?``add`` Optional callback, called when a new listener is added ”h]”(jœ )�”}”(hŒ``add``”h]”hì)�”}”(hj_h]”hŒadd”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K*hjYubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ6Optional callback, called when a new listener is added”h]”hŒ6Optional callback, called when a new listener is added”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jth´K*hjuubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hjYubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³jth´K*hjVubj– )�”}”(hŒB``del`` Optional callback, called when a listener stops listening ”h]”(jœ )�”}”(hŒ``del``”h]”hì)�”}”(hj˜h]”hŒdel”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K+hj’ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ9Optional callback, called when a listener stops listening”h]”hŒ9Optional callback, called when a listener stops listening”…”�”}”(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+hjVubj– )�”}”(hŒM``replace`` Optional callback that can replace event 'old' with event 'new'. ”h]”(jœ )�”}”(hŒ ``replace``”h]”hì)�”}”(hjÑh]”hŒreplace”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K,hjËubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ@Optional callback that can replace event 'old' with event 'new'.”h]”hŒHOptional callback that can replace event ‘old’ with event ‘new’.”…”�”}”(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,hjVubj– )�”}”(hŒH``merge`` Optional callback that can merge event 'old' into event 'new'.”h]”(jœ )�”}”(hŒ ``merge``”h]”hì)�”}”(hj h]”hŒmerge”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K,hjubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ>Optional callback that can merge event 'old' into event 'new'.”h]”hŒFOptional callback that can merge event ‘old’ into event ‘new’.”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K-hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³jh´K,hjVubeh}”(h]”h ]”h"]”h$]”h&]”uh1j� hjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j8 hj‰ h²hh³Nh´Nubj› )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j§ Œ v4l2_subscribed_event (C struct)”Œc.v4l2_subscribed_event”hNt”auh1jš hj‰ h²hh³Nh´Nubj¬ )�”}”(hhh]”(j± )�”}”(hŒv4l2_subscribed_event”h]”j· )�”}”(hŒstruct v4l2_subscribed_event”h]”(j½ )�”}”(hjÀ h]”hŒstruct”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”jÉ ah"]”h$]”h&]”uh1j¼ hj`h²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K3ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj`h²hh³jqh´K3ubjà )�”}”(hŒv4l2_subscribed_event”h]”jæ )�”}”(hj^h]”hŒv4l2_subscribed_event”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj€ubah}”(h]”h ]”(jø jù eh"]”h$]”h&]”hÅhÆuh1jß hj`h²hh³jqh´K3ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¶ j j hj\h²hh³jqh´K3ubah}”(h]”jWah ]”(j j eh"]”h$]”h&]”j ˆj )j huh1j° h³jqh´K3hjYh²hubj )�”}”(hhh]”hÞ)�”}”(hŒ0Internal struct representing a subscribed event.”h]”hŒ0Internal struct representing a subscribed event.”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K6hj£h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjYh²hh³jqh´K3ubeh}”(h]”h ]”(høŒstruct”eh"]”h$]”h&]”j2 høj3 j¾j4 j¾j5 ‰j6 ‰j7 ‰uh1j« h²hhj‰ h³Nh´Nubj9 )�”}”(hX0 **Definition**:: struct v4l2_subscribed_event { struct list_head list; u32 type; u32 id; u32 flags; struct v4l2_fh *fh; struct list_head node; const struct v4l2_subscribed_event_ops *ops; unsigned int elems; unsigned int first; unsigned int in_use; struct v4l2_kevent events[]; }; **Members** ``list`` List node for the v4l2_fh->subscribed list. ``type`` Event type. ``id`` Associated object ID (e.g. control ID). 0 if there isn't any. ``flags`` Copy of v4l2_event_subscription->flags. ``fh`` Filehandle that subscribed to this event. ``node`` List node that hooks into the object's event list (if there is one). ``ops`` v4l2_subscribed_event_ops ``elems`` The number of elements in the events array. ``first`` The index of the events containing the oldest available event. ``in_use`` The number of queued events. ``events`` An array of **elems** events.”h]”(jW)�”}”(hX³**Definition**:: struct v4l2_subscribed_event { struct list_head list; u32 type; u32 id; u32 flags; struct v4l2_fh *fh; struct list_head node; const struct v4l2_subscribed_event_ops *ops; unsigned int elems; unsigned int first; unsigned int in_use; struct v4l2_kevent events[]; }; ”h]”(hÞ)�”}”(hŒ**Definition**::”h]”(jG )�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hjÊubhŒ:”…”�”}”(hjÊh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K:hjÆubjb )�”}”(hX†struct v4l2_subscribed_event { struct list_head list; u32 type; u32 id; u32 flags; struct v4l2_fh *fh; struct list_head node; const struct v4l2_subscribed_event_ops *ops; unsigned int elems; unsigned int first; unsigned int in_use; struct v4l2_kevent events[]; };”h]”hX†struct v4l2_subscribed_event { struct list_head list; u32 type; u32 id; u32 flags; struct v4l2_fh *fh; struct list_head node; const struct v4l2_subscribed_event_ops *ops; unsigned int elems; unsigned int first; unsigned int in_use; struct v4l2_kevent events[]; };”…”�”}”hjçsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1ja h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Ksubscribed list. ”h]”(jœ )�”}”(hŒ``list``”h]”hì)�”}”(hjh]”hŒlist”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K:hjubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ+List node for the v4l2_fh->subscribed list.”h]”hŒ+List node for the v4l2_fh->subscribed list.”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j2h´K:hj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³j2h´K:hjubj– )�”}”(hŒ``type`` Event type. ”h]”(jœ )�”}”(hŒ``type``”h]”hì)�”}”(hjVh]”hŒtype”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K;hjPubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ Event type.”h]”hŒ Event type.”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jkh´K;hjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hjPubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³jkh´K;hjubj– )�”}”(hŒE``id`` Associated object ID (e.g. control ID). 0 if there isn't any. ”h]”(jœ )�”}”(hŒ``id``”h]”hì)�”}”(hj�h]”hŒid”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Kflags. ”h]”(jœ )�”}”(hŒ ``flags``”h]”hì)�”}”(hjÈh]”hŒflags”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K=hjÂubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ'Copy of v4l2_event_subscription->flags.”h]”hŒ'Copy of v4l2_event_subscription->flags.”…”�”}”(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=hjubj– )�”}”(hŒ1``fh`` Filehandle that subscribed to this event. ”h]”(jœ )�”}”(hŒ``fh``”h]”hì)�”}”(hjh]”hŒfh”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjÿubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K>hjûubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ)Filehandle that subscribed to this event.”h]”hŒ)Filehandle that subscribed to this event.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jh´K>hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hjûubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³jh´K>hjubj– )�”}”(hŒN``node`` List node that hooks into the object's event list (if there is one). ”h]”(jœ )�”}”(hŒ``node``”h]”hì)�”}”(hj:h]”hŒnode”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K@hj4ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒDList node that hooks into the object's event list (if there is one).”h]”hŒFList node that hooks into the object’s event list (if there is one).”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K?hjPubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hj4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³jOh´K@hjubj– )�”}”(hŒ"``ops`` v4l2_subscribed_event_ops ”h]”(jœ )�”}”(hŒ``ops``”h]”hì)�”}”(hjth]”hŒops”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjrubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KAhjnubj¶ )�”}”(hhh]”hÞ)�”}”(hŒv4l2_subscribed_event_ops”h]”hŒv4l2_subscribed_event_ops”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j‰h´KAhjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hjnubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³j‰h´KAhjubj– )�”}”(hŒ6``elems`` The number of elements in the events array. ”h]”(jœ )�”}”(hŒ ``elems``”h]”hì)�”}”(hj­h]”hŒelems”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KBhj§ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ+The number of elements in the events array.”h]”hŒ+The number of elements in the events array.”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÂh´KBhjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hj§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³jÂh´KBhjubj– )�”}”(hŒI``first`` The index of the events containing the oldest available event. ”h]”(jœ )�”}”(hŒ ``first``”h]”hì)�”}”(hjæh]”hŒfirst”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjäubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KChjàubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ>The index of the events containing the oldest available event.”h]”hŒ>The index of the events containing the oldest available event.”…”�”}”(hjÿh²hh³Nh´Nubah}”(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´KChjubj– )�”}”(hŒ(``in_use`` The number of queued events. ”h]”(jœ )�”}”(hŒ ``in_use``”h]”hì)�”}”(hjh]”hŒin_use”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KDhjubj¶ )�”}”(hhh]”hÞ)�”}”(hŒThe number of queued events.”h]”hŒThe number of queued events.”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j4h´KDhj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³j4h´KDhjubj– )�”}”(hŒ(``events`` An array of **elems** events.”h]”(jœ )�”}”(hŒ ``events``”h]”hì)�”}”(hjXh]”hŒevents”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KDhjRubj¶ )�”}”(hhh]”hÞ)�”}”(hŒAn array of **elems** events.”h]”(hŒ An array of ”…”�”}”(hjqh²hh³Nh´NubjG )�”}”(hŒ **elems**”h]”hŒelems”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hjqubhŒ events.”…”�”}”(hjqh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KEhjnubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hjRubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³jmh´KDhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j� hjÂubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j8 hj‰ h²hh³Nh´Nubj› )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j§ Œv4l2_event_dequeue (C function)”Œc.v4l2_event_dequeue”hNt”auh1jš hj‰ h²hh³Nh´Nubj¬ )�”}”(hhh]”(j± )�”}”(hŒVint v4l2_event_dequeue (struct v4l2_fh *fh, struct v4l2_event *event, int nonblocking)”h]”j· )�”}”(hŒUint v4l2_event_dequeue(struct v4l2_fh *fh, struct v4l2_event *event, int nonblocking)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒint”h]”hŒint”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1jÄhjÀh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KUubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjÀh²hh³jÕh´KUubjà )�”}”(hŒv4l2_event_dequeue”h]”jæ )�”}”(hŒv4l2_event_dequeue”h]”hŒv4l2_event_dequeue”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjäubah}”(h]”h ]”(jø jù eh"]”h$]”h&]”hÅhÆuh1jß hjÀh²hh³jÕh´KUubhŒdesc_parameterlist”“”)�”}”(hŒ?(struct v4l2_fh *fh, struct v4l2_event *event, int nonblocking)”h]”(hŒdesc_parameter”“”)�”}”(hŒstruct v4l2_fh *fh”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 ]”jÛ ah"]”h$]”h&]”uh1jÎ hjubh)�”}”(hhh]”jæ )�”}”(hŒv4l2_fh”h]”hŒv4l2_fh”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj#ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”Œ identifier”Œ reftarget”j(Œmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”jAŒ ASTIdentifier”“”)�”}”j<jêsbŒc.v4l2_event_dequeue”†”asbuh1hhjubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1j\hjubjæ )�”}”(hŒfh”h]”hŒfh”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhjþubj)�”}”(hŒstruct v4l2_event *event”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 ]”jÛ ah"]”h$]”h&]”uh1jÎ hj‚ubh)�”}”(hhh]”jæ )�”}”(hŒ v4l2_event”h]”hŒ v4l2_event”…”�”}”(hj¤h²hh³Nh´Nuba•h}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj¡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”j¦Œmodname”NŒ classname”Nj@jC)�”}”jF]”jJŒc.v4l2_event_dequeue”†”asbuh1hhj‚ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÂh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj‚ubj])�”}”(hj`h]”hŒ*”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hj‚ubjæ )�”}”(hŒevent”h]”hŒevent”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj‚ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhjþubj)�”}”(hŒint nonblocking”h]”(jÅ)�”}”(hŒint”h]”hŒint”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”jÑah"]”h$]”h&]”uh1jÄhjòubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjòubjæ )�”}”(hŒ nonblocking”h]”hŒ nonblocking”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjòubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhjþubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühjÀh²hh³jÕh´KUubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¶ j j hj¼h²hh³jÕh´KUubah}”(h]”j·ah ]”(j j eh"]”h$]”h&]”j ˆj )j huh1j° h³jÕh´KUhj¹h²hubj )�”}”(hhh]”hÞ)�”}”(hŒ!Dequeue events from video device.”h]”hŒ!Dequeue events from video device.”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KUhj9h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj¹h²hh³jÕh´KUubeh}”(h]”h ]”(høŒfunction”eh"]”h$]”h&]”j2 høj3 jTj4 jTj5 ‰j6 ‰j7 ‰uh1j« h²hhj‰ h³Nh´Nubj9 )�”}”(hŒÀ**Parameters** ``struct v4l2_fh *fh`` pointer to struct v4l2_fh ``struct v4l2_event *event`` pointer to struct v4l2_event ``int nonblocking`` if not zero, waits for an event to arrive”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jG )�”}”(hj^h]”hŒ Parameters”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hj\ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KYhjXubj‘ )�”}”(hhh]”(j– )�”}”(hŒ1``struct v4l2_fh *fh`` pointer to struct v4l2_fh ”h]”(jœ )�”}”(hŒ``struct v4l2_fh *fh``”h]”hì)�”}”(hj}h]”hŒstruct v4l2_fh *fh”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj{ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KWhjwubj¶ )�”}”(hhh]”hÞ)�”}”(hŒpointer to struct v4l2_fh”h]”hŒpointer to struct v4l2_fh”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j’h´KWhj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hjwubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³j’h´KWhjtubj– )�”}”(hŒ:``struct v4l2_event *event`` pointer to struct v4l2_event ”h]”(jœ )�”}”(hŒ``struct v4l2_event *event``”h]”hì)�”}”(hj¶h]”hŒstruct v4l2_event *event”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KXhj°ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒpointer to struct v4l2_event”h]”hŒpointer to struct v4l2_event”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jËh´KXhjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hj°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³jËh´KXhjtubj– )�”}”(hŒ=``int nonblocking`` if not zero, waits for an event to arrive”h]”(jœ )�”}”(hŒ``int nonblocking``”h]”hì)�”}”(hjïh]”hŒint nonblocking”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjíubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KZhjéubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ)if not zero, waits for an event to arrive”h]”hŒ)if not zero, waits for an event to arrive”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KYhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hjéubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³jh´KZhjtubeh}”(h]”h ]”h"]”h$]”h&]”uh1j� hjXubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j8 hj‰ h²hh³Nh´Nubj› )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j§ Œv4l2_event_queue (C function)”Œc.v4l2_event_queue”hNt”auh1jš hj‰ h²hh³Nh´Nubj¬ )�”}”(hhh]”(j± )�”}”(hŒNvoid v4l2_event_queue (struct video_device *vdev, const struct v4l2_event *ev)”h]”j· )�”}”(hŒMvoid v4l2_event_queue(struct video_device *vdev, const struct v4l2_event *ev)”h]”(jÅ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”jÑah"]”h$]”h&]”uh1jÄhjEh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K_ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjEh²hh³jWh´K_ubjà )�”}”(hŒv4l2_event_queue”h]”jæ )�”}”(hŒv4l2_event_queue”h]”hŒv4l2_event_queue”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjfubah}”(h]”h ]”(jø jù eh"]”h$]”h&]”hÅhÆuh1jß hjEh²hh³jWh´K_ubjý)�”}”(hŒ8(struct video_device *vdev, const struct v4l2_event *ev)”h]”(j)�”}”(hŒstruct video_device *vdev”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 ]”jÛ ah"]”h$]”h&]”uh1jÎ hj‚ubh)�”}”(hhh]”jæ )�”}”(hŒ video_device”h]”hŒ video_device”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj¡ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”j¦Œmodname”NŒ classname”Nj@jC)�”}”jF]”jI)�”}”j<jlsbŒc.v4l2_event_queue”†”asbuh1hhj‚ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj‚ubj])�”}”(hj`h]”hŒ*”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hj‚ubjæ )�”}”(hŒvdev”h]”hŒvdev”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj‚ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhj~ubj)�”}”(hŒconst struct v4l2_event *ev”h]”(j½ )�”}”(hŒconst”h]”hŒconst”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”jÉ ah"]”h$]”h&]”uh1j¼ hjôubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjôubj½ )�”}”(hjÀ h]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÉ ah"]”h$]”h&]”uh1j¼ hjôubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjôubh)�”}”(hhh]”jæ )�”}”(hŒ v4l2_event”h]”hŒ v4l2_event”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj/ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”j4Œmodname”NŒ classname”Nj@jC)�”}”jF]”jÀŒc.v4l2_event_queue”†”asbuh1hhjôubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjôubj])�”}”(hj`h]”hŒ*”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hjôubjæ )�”}”(hŒev”h]”hŒev”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjôubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhj~ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühjEh²hh³jWh´K_ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¶ j j hjAh²hh³jWh´K_ubah}”(h]”j<ah ]”(j j eh"]”h$]”h&]”j ˆj )j huh1j° h³jWh´K_hj>h²hubj )�”}”(hhh]”hÞ)�”}”(hŒQueue events to video device.”h]”hŒQueue events to video device.”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K_hj’h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj>h²hh³jWh´K_ubeh}”(h]”h ]”(høŒfunction”eh"]”h$]”h&]”j2 høj3 j­j4 j­j5 ‰j6 ‰j7 ‰uh1j« h²hhj‰ h³Nh´Nubj9 )�”}”(hX­**Parameters** ``struct video_device *vdev`` pointer to :c:type:`struct video_device ` ``const struct v4l2_event *ev`` pointer to :c:type:`struct v4l2_event ` **Description** The event will be queued for all :c:type:`struct v4l2_fh ` file handlers. .. note:: The driver's only responsibility is to fill in the type and the data fields. The other fields will be filled in by V4L2.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jG )�”}”(hj·h]”hŒ Parameters”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hjµubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Kchj±ubj‘ )�”}”(hhh]”(j– )�”}”(hŒV``struct video_device *vdev`` pointer to :c:type:`struct video_device ` ”h]”(jœ )�”}”(hŒ``struct video_device *vdev``”h]”hì)�”}”(hjÖh]”hŒstruct video_device *vdev”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KahjÐubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ7pointer to :c:type:`struct video_device `”h]”(hŒ pointer to ”…”�”}”(hjïh²hh³Nh´Nubh)�”}”(hŒ,:c:type:`struct video_device `”h]”hì)�”}”(hjùh]”hŒstruct video_device”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj÷ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jC)�”}”jF]”sbj Œ video_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ŒT``const struct v4l2_event *ev`` pointer to :c:type:`struct v4l2_event ` ”h]”(jœ )�”}”(hŒ``const struct v4l2_event *ev``”h]”hì)�”}”(hj1h]”hŒconst struct v4l2_event *ev”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Kbhj+ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ3pointer to :c:type:`struct v4l2_event `”h]”(hŒ pointer to ”…”�”}”(hjJh²hh³Nh´Nubh)�”}”(hŒ(:c:type:`struct v4l2_event `”h]”hì)�”}”(hjTh]”hŒstruct v4l2_event”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjRubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œ v4l2_event”uh1hh³jFh´KbhjJubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jFh´KbhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³jFh´KbhjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1j� hj±ubhÞ)�”}”(hŒ**Description**”h]”jG )�”}”(hj‹h]”hŒ Description”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Kdhj±ubhÞ)�”}”(hŒRThe event will be queued for all :c:type:`struct v4l2_fh ` file handlers.”h]”(hŒ!The event will be queued for all ”…”�”}”(hj¡h²hh³Nh´Nubh)�”}”(hŒ":c:type:`struct v4l2_fh `”h]”hì)�”}”(hj«h]”hŒstruct v4l2_fh”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj©ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œv4l2_fh”uh1hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Kchj¡ubhŒ file handlers.”…”�”}”(hj¡h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jÈh´Kchj±ubj/)�”}”(hŒxThe driver's only responsibility is to fill in the type and the data fields. The other fields will be filled in by V4L2.”h]”hÞ)�”}”(hŒxThe driver's only responsibility is to fill in the type and the data fields. The other fields will be filled in by V4L2.”h]”hŒzThe driver’s only responsibility is to fill in the type and the data fields. The other fields will be filled in by V4L2.”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KfhjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1j.hj±ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j8 hj‰ h²hh³Nh´Nubj› )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j§ Œ v4l2_event_queue_fh (C function)”Œc.v4l2_event_queue_fh”hNt”auh1jš hj‰ h²hh³Nh´Nubj¬ )�”}”(hhh]”(j± )�”}”(hŒJvoid v4l2_event_queue_fh (struct v4l2_fh *fh, const struct v4l2_event *ev)”h]”j· )�”}”(hŒIvoid v4l2_event_queue_fh(struct v4l2_fh *fh, const struct v4l2_event *ev)”h]”(jÅ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÑah"]”h$]”h&]”uh1jÄhjh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KmubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjh²hh³jh´Kmubjà )�”}”(hŒv4l2_event_queue_fh”h]”jæ )�”}”(hŒv4l2_event_queue_fh”h]”hŒv4l2_event_queue_fh”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj)ubah}”(h]”h ]”(jø jù eh"]”h$]”h&]”hÅhÆuh1jß hjh²hh³jh´Kmubjý)�”}”(hŒ1(struct v4l2_fh *fh, const struct v4l2_event *ev)”h]”(j)�”}”(hŒstruct v4l2_fh *fh”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 ]”jÛ ah"]”h$]”h&]”uh1jÎ hjEubh)�”}”(hhh]”jæ )�”}”(hŒv4l2_fh”h]”hŒv4l2_fh”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjdubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”jiŒmodname”NŒ classname”Nj@jC)�”}”jF]”jI)�”}”j<j/sbŒc.v4l2_event_queue_fh”†”asbuh1hhjEubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjEubj])�”}”(hj`h]”hŒ*”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hjEubjæ )�”}”(hŒfh”h]”hŒfh”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjEubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhjAubj)�”}”(hŒconst struct v4l2_event *ev”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 ]”jÛ 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 ]”jÛ ah"]”h$]”h&]”uh1jÎ hj·ubh)�”}”(hhh]”jæ )�”}”(hŒ v4l2_event”h]”hŒ v4l2_event”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjñubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”jöŒmodname”NŒ classname”Nj@jC)�”}”jF]”jƒŒc.v4l2_event_queue_fh”†”asbuh1hhj·ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj·ubj])�”}”(hj`h]”hŒ*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hj·ubjæ )�”}”(hŒev”h]”hŒev”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj·ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhjAubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühjh²hh³jh´Kmubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¶ j j hjh²hh³jh´Kmubah}”(h]”jÿah ]”(j j eh"]”h$]”h&]”j ˆj )j huh1j° h³jh´Kmhjh²hubj )�”}”(hhh]”hÞ)�”}”(hŒQueue events to video device.”h]”hŒQueue events to video device.”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KmhjTh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjh²hh³jh´Kmubeh}”(h]”h ]”(høŒfunction”eh"]”h$]”h&]”j2 høj3 joj4 joj5 ‰j6 ‰j7 ‰uh1j« h²hhj‰ h³Nh´Nubj9 )�”}”(hXª**Parameters** ``struct v4l2_fh *fh`` pointer to :c:type:`struct v4l2_fh ` ``const struct v4l2_event *ev`` pointer to :c:type:`struct v4l2_event ` **Description** The event will be queued only for the specified :c:type:`struct v4l2_fh ` file handler. .. note:: The driver's only responsibility is to fill in the type and the data fields. The other fields will be filled in by V4L2.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jG )�”}”(hjyh]”hŒ Parameters”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Kqhjsubj‘ )�”}”(hhh]”(j– )�”}”(hŒE``struct v4l2_fh *fh`` pointer to :c:type:`struct v4l2_fh ` ”h]”(jœ )�”}”(hŒ``struct v4l2_fh *fh``”h]”hì)�”}”(hj˜h]”hŒstruct v4l2_fh *fh”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Kohj’ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ-pointer to :c:type:`struct v4l2_fh `”h]”(hŒ pointer to ”…”�”}”(hj±h²hh³Nh´Nubh)�”}”(hŒ":c:type:`struct v4l2_fh `”h]”hì)�”}”(hj»h]”hŒstruct v4l2_fh”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj¹ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œv4l2_fh”uh1hh³j­h´Kohj±ubeh}”(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ŒT``const struct v4l2_event *ev`` pointer to :c:type:`struct v4l2_event ` ”h]”(jœ )�”}”(hŒ``const struct v4l2_event *ev``”h]”hì)�”}”(hjðh]”hŒconst struct v4l2_event *ev”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjîubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Kphjêubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ3pointer to :c:type:`struct v4l2_event `”h]”(hŒ pointer to ”…”�”}”(hj h²hh³Nh´Nubh)�”}”(hŒ(:c:type:`struct v4l2_event `”h]”hì)�”}”(hjh]”hŒstruct v4l2_event”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œ v4l2_event”uh1hh³jh´Kphj ubeh}”(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�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j� hjsubhÞ)�”}”(hŒ**Description**”h]”jG )�”}”(hjJh]”hŒ Description”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hjHubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KrhjsubhÞ)�”}”(hŒ`The event will be queued only for the specified :c:type:`struct v4l2_fh ` file handler.”h]”(hŒ0The event will be queued only for the specified ”…”�”}”(hj`h²hh³Nh´Nubh)�”}”(hŒ":c:type:`struct v4l2_fh `”h]”hì)�”}”(hjjh]”hŒstruct v4l2_fh”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjhubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œv4l2_fh”uh1hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Kqhj`ubhŒ file handler.”…”�”}”(hj`h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j‡h´Kqhjsubj/)�”}”(hŒxThe driver's only responsibility is to fill in the type and the data fields. The other fields will be filled in by V4L2.”h]”hÞ)�”}”(hŒxThe driver's only responsibility is to fill in the type and the data fields. The other fields will be filled in by V4L2.”h]”hŒzThe driver’s only responsibility is to fill in the type and the data fields. The other fields will be filled in by V4L2.”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Kthj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1j.hjsubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j8 hj‰ h²hh³Nh´Nubj› )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j§ Œ v4l2_event_wake_all (C function)”Œc.v4l2_event_wake_all”hNt”auh1jš hj‰ h²hh³Nh´Nubj¬ )�”}”(hhh]”(j± )�”}”(hŒ4void v4l2_event_wake_all (struct video_device *vdev)”h]”j· )�”}”(hŒ3void v4l2_event_wake_all(struct video_device *vdev)”h]”(jÅ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(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/v4l2-event:180: ./include/media/v4l2-event.h”h´K|ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjÇh²hh³jÙh´K|ubjà )�”}”(hŒv4l2_event_wake_all”h]”jæ )�”}”(hŒv4l2_event_wake_all”h]”hŒv4l2_event_wake_all”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjèubah}”(h]”h ]”(jø jù eh"]”h$]”h&]”hÅhÆuh1jß hjÇh²hh³jÙh´K|ubjý)�”}”(hŒ(struct video_device *vdev)”h]”j)�”}”(hŒstruct video_device *vdev”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 ]”jÛ ah"]”h$]”h&]”uh1jÎ hjubh)�”}”(hhh]”jæ )�”}”(hŒ video_device”h]”hŒ video_device”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj#ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”j(Œmodname”NŒ classname”Nj@jC)�”}”jF]”jI)�”}”j<jîsbŒc.v4l2_event_wake_all”†”asbuh1hhjubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjubj])�”}”(hj`h]”hŒ*”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hjubjæ )�”}”(hŒvdev”h]”hŒvdev”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhjubah}”(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 ]”(j j eh"]”h$]”h&]”j ˆj )j huh1j° h³jÙh´K|hjÀh²hubj )�”}”(hhh]”hÞ)�”}”(hŒWake all filehandles.”h]”hŒWake all filehandles.”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K|hjˆh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÀh²hh³jÙh´K|ubeh}”(h]”h ]”(høŒfunction”eh"]”h$]”h&]”j2 høj3 j£j4 j£j5 ‰j6 ‰j7 ‰uh1j« h²hhj‰ h³Nh´Nubj9 )�”}”(hŒ¡**Parameters** ``struct video_device *vdev`` pointer to :c:type:`struct video_device ` **Description** Used when unregistering a video device.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jG )�”}”(hj­h]”hŒ Parameters”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K€hj§ubj‘ )�”}”(hhh]”j– )�”}”(hŒV``struct video_device *vdev`` pointer to :c:type:`struct video_device ` ”h]”(jœ )�”}”(hŒ``struct video_device *vdev``”h]”hì)�”}”(hjÌh]”hŒstruct video_device *vdev”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K€hjÆubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ7pointer to :c:type:`struct video_device `”h]”(hŒ pointer to ”…”�”}”(hjåh²hh³Nh´Nubh)�”}”(hŒ,:c:type:`struct video_device `”h]”hì)�”}”(hjïh]”hŒstruct video_device”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjíubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œ video_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Ãubah}”(h]”h ]”h"]”h$]”h&]”uh1j� hj§ubhÞ)�”}”(hŒ**Description**”h]”jG )�”}”(hj&h]”hŒ Description”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K‚hj§ubhÞ)�”}”(hŒ'Used when unregistering a video device.”h]”hŒ'Used when unregistering a video device.”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K}hj§ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j8 hj‰ h²hh³Nh´Nubj› )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j§ Œv4l2_event_pending (C function)”Œc.v4l2_event_pending”hNt”auh1jš hj‰ h²hh³Nh´Nubj¬ )�”}”(hhh]”(j± )�”}”(hŒ+int v4l2_event_pending (struct v4l2_fh *fh)”h]”j· )�”}”(hŒ*int v4l2_event_pending(struct v4l2_fh *fh)”h]”(jÅ)�”}”(hŒint”h]”hŒint”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”jÑah"]”h$]”h&]”uh1jÄhjgh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K…ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjgh²hh³jyh´K…ubjà )�”}”(hŒv4l2_event_pending”h]”jæ )�”}”(hŒv4l2_event_pending”h]”hŒv4l2_event_pending”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjˆubah}”(h]”h ]”(jø jù eh"]”h$]”h&]”hÅhÆuh1jß hjgh²hh³jyh´K…ubjý)�”}”(hŒ(struct v4l2_fh *fh)”h]”j)�”}”(hŒstruct v4l2_fh *fh”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 ]”jÛ ah"]”h$]”h&]”uh1jÎ hj¤ubh)�”}”(hhh]”jæ )�”}”(hŒv4l2_fh”h]”hŒv4l2_fh”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjÃubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”jÈŒmodname”NŒ classname”Nj@jC)�”}”jF]”jI)�”}”j<jŽsbŒc.v4l2_event_pending”†”asbuh1hhj¤ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj¤ubj])�”}”(hj`h]”hŒ*”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hj¤ubjæ )�”}”(hŒfh”h]”hŒfh”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj¤ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhj ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühjgh²hh³jyh´K…ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¶ j j hjch²hh³jyh´K…ubah}”(h]”j^ah ]”(j j eh"]”h$]”h&]”j ˆj )j huh1j° h³jyh´K…hj`h²hubj )�”}”(hhh]”hÞ)�”}”(hŒCheck if an event is available”h]”hŒCheck if an event is available”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K…hj(h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj`h²hh³jyh´K…ubeh}”(h]”h ]”(høŒfunction”eh"]”h$]”h&]”j2 høj3 jCj4 jCj5 ‰j6 ‰j7 ‰uh1j« h²hhj‰ h³Nh´Nubj9 )�”}”(hŒŽ**Parameters** ``struct v4l2_fh *fh`` pointer to :c:type:`struct v4l2_fh ` **Description** Returns the number of pending events.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jG )�”}”(hjMh]”hŒ Parameters”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hjKubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K‰hjGubj‘ )�”}”(hhh]”j– )�”}”(hŒE``struct v4l2_fh *fh`` pointer to :c:type:`struct v4l2_fh ` ”h]”(jœ )�”}”(hŒ``struct v4l2_fh *fh``”h]”hì)�”}”(hjlh]”hŒstruct v4l2_fh *fh”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjjubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K‡hjfubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ-pointer to :c:type:`struct v4l2_fh `”h]”(hŒ pointer to ”…”�”}”(hj…h²hh³Nh´Nubh)�”}”(hŒ":c:type:`struct v4l2_fh `”h]”hì)�”}”(hj�h]”hŒstruct v4l2_fh”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj�ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œv4l2_fh”uh1hh³j�h´K‡hj…ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j�h´K‡hj‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hjfubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³j�h´K‡hjcubah}”(h]”h ]”h"]”h$]”h&]”uh1j� hjGubhÞ)�”}”(hŒ**Description**”h]”jG )�”}”(hjÆh]”hŒ Description”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hjÄubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K‰hjGubhÞ)�”}”(hŒ%Returns the number of pending events.”h]”hŒ%Returns the number of pending events.”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KˆhjGubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j8 hj‰ h²hh³Nh´Nubj› )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j§ Œ!v4l2_event_subscribe (C function)”Œc.v4l2_event_subscribe”hNt”auh1jš hj‰ h²hh³Nh´Nubj¬ )�”}”(hhh]”(j± )�”}”(hŒ™int v4l2_event_subscribe (struct v4l2_fh *fh, const struct v4l2_event_subscription *sub, unsigned int elems, const struct v4l2_subscribed_event_ops *ops)”h]”j· )�”}”(hŒ˜int v4l2_event_subscribe(struct v4l2_fh *fh, const struct v4l2_event_subscription *sub, unsigned int elems, const struct v4l2_subscribed_event_ops *ops)”h]”(jÅ)�”}”(hŒint”h]”hŒint”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jÑah"]”h$]”h&]”uh1jÄhjh²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KŽubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjh²hh³jh´KŽubjà )�”}”(hŒv4l2_event_subscribe”h]”jæ )�”}”(hŒv4l2_event_subscribe”h]”hŒv4l2_event_subscribe”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj(ubah}”(h]”h ]”(jø jù eh"]”h$]”h&]”hÅhÆuh1jß hjh²hh³jh´KŽubjý)�”}”(hŒ€(struct v4l2_fh *fh, const struct v4l2_event_subscription *sub, unsigned int elems, const struct v4l2_subscribed_event_ops *ops)”h]”(j)�”}”(hŒstruct v4l2_fh *fh”h]”(j½ )�”}”(hjÀ h]”hŒstruct”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”jÉ ah"]”h$]”h&]”uh1j¼ hjDubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjDubh)�”}”(hhh]”jæ )�”}”(hŒv4l2_fh”h]”hŒv4l2_fh”…”�”}”(hjfh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjcubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”jhŒmodname”NŒ classname”Nj@jC)�”}”jF]”jI)�”}”j<j.sbŒc.v4l2_event_subscribe”†”asbuh1hhjDubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjDubj])�”}”(hj`h]”hŒ*”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hjDubjæ )�”}”(hŒfh”h]”hŒfh”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjDubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhj@ubj)�”}”(hŒ)const struct v4l2_event_subscription *sub”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 ]”jÛ 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 ]”jÛ ah"]”h$]”h&]”uh1jÎ hj¶ubh)�”}”(hhh]”jæ )�”}”(hŒv4l2_event_subscription”h]”hŒv4l2_event_subscription”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjðubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”jõŒmodname”NŒ classname”Nj@jC)�”}”jF]”j‚Œc.v4l2_event_subscribe”†”asbuh1hhj¶ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj¶ubj])�”}”(hj`h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hj¶ubjæ )�”}”(hŒsub”h]”hŒsub”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj¶ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhj@ubj)�”}”(hŒunsigned int elems”h]”(jÅ)�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”jÑah"]”h$]”h&]”uh1jÄhjAubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjAubjÅ)�”}”(hŒint”h]”hŒint”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”jÑah"]”h$]”h&]”uh1jÄhjAubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjAubjæ )�”}”(hŒelems”h]”hŒelems”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjAubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhj@ubj)�”}”(hŒ+const struct v4l2_subscribed_event_ops *ops”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 ]”jÛ 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 ]”jÛ ah"]”h$]”h&]”uh1jÎ hj’ubh)�”}”(hhh]”jæ )�”}”(hŒv4l2_subscribed_event_ops”h]”hŒv4l2_subscribed_event_ops”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjÌubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”jÑŒmodname”NŒ classname”Nj@jC)�”}”jF]”j‚Œc.v4l2_event_subscribe”†”asbuh1hhj’ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj’ubj])�”}”(hj`h]”hŒ*”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hj’ubjæ )�”}”(hŒops”h]”hŒops”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj’ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhj@ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühjh²hh³jh´KŽubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¶ j j hjh²hh³jh´KŽubah}”(h]”jþah ]”(j j eh"]”h$]”h&]”j ˆj )j huh1j° h³jh´KŽhjh²hubj )�”}”(hhh]”hÞ)�”}”(hŒSubscribes to an event”h]”hŒSubscribes to an event”…”�”}”(hj2 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KŽhj/ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjh²hh³jh´KŽubeh}”(h]”h ]”(høŒfunction”eh"]”h$]”h&]”j2 høj3 jJ j4 jJ j5 ‰j6 ‰j7 ‰uh1j« h²hhj‰ h³Nh´Nubj9 )�”}”(hXì**Parameters** ``struct v4l2_fh *fh`` pointer to :c:type:`struct v4l2_fh ` ``const struct v4l2_event_subscription *sub`` pointer to :c:type:`struct v4l2_event_subscription ` ``unsigned int elems`` size of the events queue ``const struct v4l2_subscribed_event_ops *ops`` pointer to :c:type:`v4l2_subscribed_event_ops` **Description** .. note:: if **elems** is zero, the framework will fill in a default value, with is currently 1 element.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jG )�”}”(hjT h]”hŒ Parameters”…”�”}”(hjV h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hjR ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K’hjN ubj‘ )�”}”(hhh]”(j– )�”}”(hŒE``struct v4l2_fh *fh`` pointer to :c:type:`struct v4l2_fh ` ”h]”(jœ )�”}”(hŒ``struct v4l2_fh *fh``”h]”hì)�”}”(hjs h]”hŒstruct v4l2_fh *fh”…”�”}”(hju h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjq ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K�hjm ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ-pointer to :c:type:`struct v4l2_fh `”h]”(hŒ pointer to ”…”�”}”(hjŒ h²hh³Nh´Nubh)�”}”(hŒ":c:type:`struct v4l2_fh `”h]”hì)�”}”(hj– h]”hŒstruct v4l2_fh”…”�”}”(hj˜ h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj” ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œv4l2_fh”uh1hh³jˆ h´K�hjŒ ubeh}”(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�hjj ubj– )�”}”(hŒ|``const struct v4l2_event_subscription *sub`` pointer to :c:type:`struct v4l2_event_subscription ` ”h]”(jœ )�”}”(hŒ-``const struct v4l2_event_subscription *sub``”h]”hì)�”}”(hjË h]”hŒ)const struct v4l2_event_subscription *sub”…”�”}”(hjÍ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjÉ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K‘hjÅ ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒMpointer to :c:type:`struct v4l2_event_subscription `”h]”(hŒ pointer to ”…”�”}”(hjä h²hh³Nh´Nubh)�”}”(hŒB:c:type:`struct v4l2_event_subscription `”h]”hì)�”}”(hjî h]”hŒstruct v4l2_event_subscription”…”�”}”(hjð h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjì ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œv4l2_event_subscription”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‘hjj ubj– )�”}”(hŒ0``unsigned int elems`` size of the events queue ”h]”(jœ )�”}”(hŒ``unsigned int elems``”h]”hì)�”}”(hj#!h]”hŒunsigned int elems”…”�”}”(hj%!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj!!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K’hj!ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒsize of the events queue”h]”hŒsize of the events queue”…”�”}”(hj` ``const struct v4l2_event_subscription *sub`` pointer to :c:type:`struct v4l2_event_subscription `”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jG )�”}”(hj„#h]”hŒ Parameters”…”�”}”(hj†#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hj‚#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K£hj~#ubj‘ )�”}”(hhh]”(j– )�”}”(hŒE``struct v4l2_fh *fh`` pointer to :c:type:`struct v4l2_fh ` ”h]”(jœ )�”}”(hŒ``struct v4l2_fh *fh``”h]”hì)�”}”(hj£#h]”hŒstruct v4l2_fh *fh”…”�”}”(hj¥#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj¡#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K¡hj�#ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ-pointer to :c:type:`struct v4l2_fh `”h]”(hŒ pointer to ”…”�”}”(hj¼#h²hh³Nh´Nubh)�”}”(hŒ":c:type:`struct v4l2_fh `”h]”hì)�”}”(hjÆ#h]”hŒstruct v4l2_fh”…”�”}”(hjÈ#h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjÄ#ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œv4l2_fh”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Œ{``const struct v4l2_event_subscription *sub`` pointer to :c:type:`struct v4l2_event_subscription `”h]”(jœ )�”}”(hŒ-``const struct v4l2_event_subscription *sub``”h]”hì)�”}”(hjû#h]”hŒ)const struct v4l2_event_subscription *sub”…”�”}”(hjý#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjù#ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K£hjõ#ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒMpointer to :c:type:`struct v4l2_event_subscription `”h]”(hŒ pointer to ”…”�”}”(hj$h²hh³Nh´Nubh)�”}”(hŒB:c:type:`struct v4l2_event_subscription `”h]”hì)�”}”(hj$h]”hŒstruct v4l2_event_subscription”…”�”}”(hj $h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj$ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œv4l2_event_subscription”uh1hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”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š#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j� hj~#ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j8 hj‰ h²hh³Nh´Nubj› )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j§ Œ'v4l2_event_unsubscribe_all (C function)”Œc.v4l2_event_unsubscribe_all”hNt”auh1jš hj‰ h²hh³Nh´Nubj¬ )�”}”(hhh]”(j± )�”}”(hŒ4void v4l2_event_unsubscribe_all (struct v4l2_fh *fh)”h]”j· )�”}”(hŒ3void v4l2_event_unsubscribe_all(struct v4l2_fh *fh)”h]”(jÅ)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjt$h²hh³Nh´Nubah}”(h]”h ]”jÑah"]”h$]”h&]”uh1jÄhjp$h²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K§ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjƒ$h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjp$h²hh³j‚$h´K§ubjà )�”}”(hŒv4l2_event_unsubscribe_all”h]”jæ )�”}”(hŒv4l2_event_unsubscribe_all”h]”hŒv4l2_event_unsubscribe_all”…”�”}”(hj•$h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj‘$ubah}”(h]”h ]”(jø jù eh"]”h$]”h&]”hÅhÆuh1jß hjp$h²hh³j‚$h´K§ubjý)�”}”(hŒ(struct v4l2_fh *fh)”h]”j)�”}”(hŒstruct v4l2_fh *fh”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 ]”jÛ ah"]”h$]”h&]”uh1jÎ hj­$ubh)�”}”(hhh]”jæ )�”}”(hŒv4l2_fh”h]”hŒv4l2_fh”…”�”}”(hjÏ$h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjÌ$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”jÑ$Œmodname”NŒ classname”Nj@jC)�”}”jF]”jI)�”}”j<j—$sbŒc.v4l2_event_unsubscribe_all”†”asbuh1hhj­$ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjï$h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj­$ubj])�”}”(hj`h]”hŒ*”…”�”}”(hjý$h²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hj­$ubjæ )�”}”(hŒfh”h]”hŒfh”…”�”}”(hj %h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj­$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhj©$ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühjp$h²hh³j‚$h´K§ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¶ j j hjl$h²hh³j‚$h´K§ubah}”(h]”jg$ah ]”(j j eh"]”h$]”h&]”j ˆj )j huh1j° h³j‚$h´K§hji$h²hubj )�”}”(hhh]”hÞ)�”}”(hŒUnsubscribes to all events”h]”hŒUnsubscribes to all events”…”�”}”(hj4%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K§hj1%h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j hji$h²hh³j‚$h´K§ubeh}”(h]”h ]”(høŒfunction”eh"]”h$]”h&]”j2 høj3 jL%j4 jL%j5 ‰j6 ‰j7 ‰uh1j« h²hhj‰ h³Nh´Nubj9 )�”}”(hŒV**Parameters** ``struct v4l2_fh *fh`` pointer to :c:type:`struct v4l2_fh `”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jG )�”}”(hjV%h]”hŒ Parameters”…”�”}”(hjX%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hjT%ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K«hjP%ubj‘ )�”}”(hhh]”j– )�”}”(hŒD``struct v4l2_fh *fh`` pointer to :c:type:`struct v4l2_fh `”h]”(jœ )�”}”(hŒ``struct v4l2_fh *fh``”h]”hì)�”}”(hju%h]”hŒstruct v4l2_fh *fh”…”�”}”(hjw%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjs%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K­hjo%ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ-pointer to :c:type:`struct v4l2_fh `”h]”(hŒ pointer to ”…”�”}”(hjŽ%h²hh³Nh´Nubh)�”}”(hŒ":c:type:`struct v4l2_fh `”h]”hì)�”}”(hj˜%h]”hŒstruct v4l2_fh”…”�”}”(hjš%h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj–%ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œv4l2_fh”uh1hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K©hjŽ%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jµ%h´K©hj‹%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hjo%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³jŠ%h´K­hjl%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j� hjP%ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j8 hj‰ h²hh³Nh´Nubj› )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j§ Œ*v4l2_event_subdev_unsubscribe (C function)”Œc.v4l2_event_subdev_unsubscribe”hNt”auh1jš hj‰ h²hh³Nh´Nubj¬ )�”}”(hhh]”(j± )�”}”(hŒsint v4l2_event_subdev_unsubscribe (struct v4l2_subdev *sd, struct v4l2_fh *fh, struct v4l2_event_subscription *sub)”h]”j· )�”}”(hŒrint v4l2_event_subdev_unsubscribe(struct v4l2_subdev *sd, struct v4l2_fh *fh, struct v4l2_event_subscription *sub)”h]”(jÅ)�”}”(hŒint”h]”hŒint”…”�”}”(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/v4l2-event:180: ./include/media/v4l2-event.h”h´K®ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjý%h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjê%h²hh³jü%h´K®ubjà )�”}”(hŒv4l2_event_subdev_unsubscribe”h]”jæ )�”}”(hŒv4l2_event_subdev_unsubscribe”h]”hŒv4l2_event_subdev_unsubscribe”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj &ubah}”(h]”h ]”(jø jù eh"]”h$]”h&]”hÅhÆuh1jß hjê%h²hh³jü%h´K®ubjý)�”}”(hŒQ(struct v4l2_subdev *sd, struct v4l2_fh *fh, struct v4l2_event_subscription *sub)”h]”(j)�”}”(hŒstruct v4l2_subdev *sd”h]”(j½ )�”}”(hjÀ h]”hŒstruct”…”�”}”(hj+&h²hh³Nh´Nubah}”(h]”h ]”jÉ ah"]”h$]”h&]”uh1j¼ hj'&ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8&h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj'&ubh)�”}”(hhh]”jæ )�”}”(hŒ v4l2_subdev”h]”hŒ v4l2_subdev”…”�”}”(hjI&h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjF&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”jK&Œmodname”NŒ classname”Nj@jC)�”}”jF]”jI)�”}”j<j&sbŒc.v4l2_event_subdev_unsubscribe”†”asbuh1hhj'&ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hji&h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj'&ubj])�”}”(hj`h]”hŒ*”…”�”}”(hjw&h²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hj'&ubjæ )�”}”(hŒsd”h]”hŒsd”…”�”}”(hj„&h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj'&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhj#&ubj)�”}”(hŒstruct v4l2_fh *fh”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 ]”jÛ ah"]”h$]”h&]”uh1jÎ hj™&ubh)�”}”(hhh]”jæ )�”}”(hŒv4l2_fh”h]”hŒv4l2_fh”…”�”}”(hj»&h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj¸&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”j½&Œmodname”NŒ classname”Nj@jC)�”}”jF]”je&Œc.v4l2_event_subdev_unsubscribe”†”asbuh1hhj™&ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÙ&h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj™&ubj])�”}”(hj`h]”hŒ*”…”�”}”(hjç&h²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hj™&ubjæ )�”}”(hŒfh”h]”hŒfh”…”�”}”(hjô&h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj™&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhj#&ubj)�”}”(hŒ#struct v4l2_event_subscription *sub”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 ]”jÛ ah"]”h$]”h&]”uh1jÎ hj 'ubh)�”}”(hhh]”jæ )�”}”(hŒv4l2_event_subscription”h]”hŒv4l2_event_subscription”…”�”}”(hj+'h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj('ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”j-'Œmodname”NŒ classname”Nj@jC)�”}”jF]”je&Œc.v4l2_event_subdev_unsubscribe”†”asbuh1hhj 'ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjI'h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj 'ubj])�”}”(hj`h]”hŒ*”…”�”}”(hjW'h²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hj 'ubjæ )�”}”(hŒsub”h]”hŒsub”…”�”}”(hjd'h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj 'ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhj#&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 ]”(j j eh"]”h$]”h&]”j ˆj )j huh1j° h³jü%h´K®hjã%h²hubj )�”}”(hhh]”hÞ)�”}”(hŒ*Subdev variant of v4l2_event_unsubscribe()”h]”hŒ*Subdev variant of v4l2_event_unsubscribe()”…”�”}”(hjŽ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K®hj‹'h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjã%h²hh³jü%h´K®ubeh}”(h]”h ]”(høŒfunction”eh"]”h$]”h&]”j2 høj3 j¦'j4 j¦'j5 ‰j6 ‰j7 ‰uh1j« h²hhj‰ h³Nh´Nubj9 )�”}”(hXÉ**Parameters** ``struct v4l2_subdev *sd`` pointer to :c:type:`struct v4l2_subdev ` ``struct v4l2_fh *fh`` pointer to :c:type:`struct v4l2_fh ` ``struct v4l2_event_subscription *sub`` pointer to :c:type:`struct v4l2_event_subscription ` **Description** .. note:: This function should be used for the :c:type:`struct v4l2_subdev_core_ops ` ``unsubscribe_event`` field.”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jG )�”}”(hj°'h]”hŒ Parameters”…”�”}”(hj²'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hj®'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K²hjª'ubj‘ )�”}”(hhh]”(j– )�”}”(hŒQ``struct v4l2_subdev *sd`` pointer to :c:type:`struct v4l2_subdev ` ”h]”(jœ )�”}”(hŒ``struct v4l2_subdev *sd``”h]”hì)�”}”(hjÏ'h]”hŒstruct v4l2_subdev *sd”…”�”}”(hjÑ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjÍ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K°hjÉ'ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ5pointer to :c:type:`struct v4l2_subdev `”h]”(hŒ pointer to ”…”�”}”(hjè'h²hh³Nh´Nubh)�”}”(hŒ*:c:type:`struct v4l2_subdev `”h]”hì)�”}”(hjò'h]”hŒstruct v4l2_subdev”…”�”}”(hjô'h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjð'ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œ v4l2_subdev”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ŒE``struct v4l2_fh *fh`` pointer to :c:type:`struct v4l2_fh ` ”h]”(jœ )�”}”(hŒ``struct v4l2_fh *fh``”h]”hì)�”}”(hj'(h]”hŒstruct v4l2_fh *fh”…”�”}”(hj)(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj%(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K±hj!(ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ-pointer to :c:type:`struct v4l2_fh `”h]”(hŒ pointer to ”…”�”}”(hj@(h²hh³Nh´Nubh)�”}”(hŒ":c:type:`struct v4l2_fh `”h]”hì)�”}”(hjJ(h]”hŒstruct v4l2_fh”…”�”}”(hjL(h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjH(ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œv4l2_fh”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Œv``struct v4l2_event_subscription *sub`` pointer to :c:type:`struct v4l2_event_subscription ` ”h]”(jœ )�”}”(hŒ'``struct v4l2_event_subscription *sub``”h]”hì)�”}”(hj(h]”hŒ#struct v4l2_event_subscription *sub”…”�”}”(hj�(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj}(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K²hjy(ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒMpointer to :c:type:`struct v4l2_event_subscription `”h]”(hŒ pointer to ”…”�”}”(hj˜(h²hh³Nh´Nubh)�”}”(hŒB:c:type:`struct v4l2_event_subscription `”h]”hì)�”}”(hj¢(h]”hŒstruct v4l2_event_subscription”…”�”}”(hj¤(h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj (ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œv4l2_event_subscription”uh1hh³j”(h´K²hj˜(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j”(h´K²hj•(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hjy(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³j”(h´K²hjÆ'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j� hjª'ubhÞ)�”}”(hŒ**Description**”h]”jG )�”}”(hjÙ(h]”hŒ Description”…”�”}”(hjÛ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hj×(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K´hjª'ubj/)�”}”(hŒ~This function should be used for the :c:type:`struct v4l2_subdev_core_ops ` ``unsubscribe_event`` field.”h]”hÞ)�”}”(hŒ~This function should be used for the :c:type:`struct v4l2_subdev_core_ops ` ``unsubscribe_event`` field.”h]”(hŒ%This function should be used for the ”…”�”}”(hjó(h²hh³Nh´Nubh)�”}”(hŒ<:c:type:`struct v4l2_subdev_core_ops `”h]”hì)�”}”(hjý(h]”hŒstruct v4l2_subdev_core_ops”…”�”}”(hjÿ(h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjû(ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œv4l2_subdev_core_ops”uh1hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´Kµhjó(ubhŒ ”…”�”}”(hjó(h²hh³Nh´Nubhì)�”}”(hŒ``unsubscribe_event``”h]”hŒunsubscribe_event”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjó(ubhŒ field.”…”�”}”(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 ]”Œ kernelindent”ah"]”h$]”h&]”uh1j8 hj‰ h²hh³Nh´Nubj› )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j§ Œ,v4l2_src_change_event_subscribe (C function)”Œ!c.v4l2_src_change_event_subscribe”hNt”auh1jš hj‰ h²hh³Nh´Nubj¬ )�”}”(hhh]”(j± )�”}”(hŒcint v4l2_src_change_event_subscribe (struct v4l2_fh *fh, const struct v4l2_event_subscription *sub)”h]”j· )�”}”(hŒbint v4l2_src_change_event_subscribe(struct v4l2_fh *fh, const struct v4l2_event_subscription *sub)”h]”(jÅ)�”}”(hŒint”h]”hŒint”…”�”}”(hj])h²hh³Nh´Nubah}”(h]”h ]”jÑah"]”h$]”h&]”uh1jÄhjY)h²hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K½ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjl)h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjY)h²hh³jk)h´K½ubjà )�”}”(hŒv4l2_src_change_event_subscribe”h]”jæ )�”}”(hŒv4l2_src_change_event_subscribe”h]”hŒv4l2_src_change_event_subscribe”…”�”}”(hj~)h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjz)ubah}”(h]”h ]”(jø jù eh"]”h$]”h&]”hÅhÆuh1jß hjY)h²hh³jk)h´K½ubjý)�”}”(hŒ?(struct v4l2_fh *fh, const struct v4l2_event_subscription *sub)”h]”(j)�”}”(hŒstruct v4l2_fh *fh”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 ]”jÛ ah"]”h$]”h&]”uh1jÎ hj–)ubh)�”}”(hhh]”jæ )�”}”(hŒv4l2_fh”h]”hŒv4l2_fh”…”�”}”(hj¸)h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjµ)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”jº)Œmodname”NŒ classname”Nj@jC)�”}”jF]”jI)�”}”j<j€)sbŒ!c.v4l2_src_change_event_subscribe”†”asbuh1hhj–)ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjØ)h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj–)ubj])�”}”(hj`h]”hŒ*”…”�”}”(hjæ)h²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hj–)ubjæ )�”}”(hŒfh”h]”hŒfh”…”�”}”(hjó)h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj–)ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhj’)ubj)�”}”(hŒ)const struct v4l2_event_subscription *sub”•»?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 ]”jÛ 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Œ ”…”�”}”(hj4*h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj*ubh)�”}”(hhh]”jæ )�”}”(hŒv4l2_event_subscription”h]”hŒv4l2_event_subscription”…”�”}”(hjE*h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjB*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”jG*Œmodname”NŒ classname”Nj@jC)�”}”jF]”jÔ)Œ!c.v4l2_src_change_event_subscribe”†”asbuh1hhj*ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjc*h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj*ubj])�”}”(hj`h]”hŒ*”…”�”}”(hjq*h²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hj*ubjæ )�”}”(hŒsub”h]”hŒsub”…”�”}”(hj~*h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhj’)ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jühjY)h²hh³jk)h´K½ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj ˆuh1j¶ j j hjU)h²hh³jk)h´K½ubah}”(h]”jP)ah ]”(j j eh"]”h$]”h&]”j ˆj )j huh1j° h³jk)h´K½hjR)h²hubj )�”}”(hhh]”hÞ)�”}”(hŒ_helper function that calls v4l2_event_subscribe() if the event is ``V4L2_EVENT_SOURCE_CHANGE``.”h]”(hŒBhelper function that calls v4l2_event_subscribe() if the event is ”…”�”}”(hj¨*h²hh³Nh´Nubhì)�”}”(hŒ``V4L2_EVENT_SOURCE_CHANGE``”h]”hŒV4L2_EVENT_SOURCE_CHANGE”…”�”}”(hj°*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj¨*ubhŒ.”…”�”}”(hj¨*h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´K½hj¥*h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjR)h²hh³jk)h´K½ubeh}”(h]”h ]”(høŒfunction”eh"]”h$]”h&]”j2 høj3 jÒ*j4 jÒ*j5 ‰j6 ‰j7 ‰uh1j« h²hhj‰ h³Nh´Nubj9 )�”}”(hŒÁ**Parameters** ``struct v4l2_fh *fh`` pointer to struct v4l2_fh ``const struct v4l2_event_subscription *sub`` pointer to :c:type:`struct v4l2_event_subscription `”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jG )�”}”(hjÜ*h]”hŒ Parameters”…”�”}”(hjÞ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hjÚ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KÁhjÖ*ubj‘ )�”}”(hhh]”(j– )�”}”(hŒ1``struct v4l2_fh *fh`` pointer to struct v4l2_fh ”h]”(jœ )�”}”(hŒ``struct v4l2_fh *fh``”h]”hì)�”}”(hjû*h]”hŒstruct v4l2_fh *fh”…”�”}”(hjý*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjù*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KÀhjõ*ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒpointer to struct v4l2_fh”h]”hŒpointer to struct v4l2_fh”…”�”}”(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Œ{``const struct v4l2_event_subscription *sub`` pointer to :c:type:`struct v4l2_event_subscription `”h]”(jœ )�”}”(hŒ-``const struct v4l2_event_subscription *sub``”h]”hì)�”}”(hj4+h]”hŒ)const struct v4l2_event_subscription *sub”…”�”}”(hj6+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj2+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KÂhj.+ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒMpointer to :c:type:`struct v4l2_event_subscription `”h]”(hŒ pointer to ”…”�”}”(hjM+h²hh³Nh´Nubh)�”}”(hŒB:c:type:`struct v4l2_event_subscription `”h]”hì)�”}”(hjW+h]”hŒstruct v4l2_event_subscription”…”�”}”(hjY+h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjU+ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œv4l2_event_subscription”uh1hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KÁhjM+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³jt+h´KÁhjJ+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hj.+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³jI+h´KÂhjò*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j� hjÖ*ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j8 hj‰ h²hh³Nh´Nubj› )�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j§ Œ3v4l2_src_change_event_subdev_subscribe (C function)”Œ(c.v4l2_src_change_event_subdev_subscribe”hNt”auh1jš hj‰ h²hh³Nh´Nubj¬ )�”}”(hhh]”(j± )�”}”(hŒ|int v4l2_src_change_event_subdev_subscribe (struct v4l2_subdev *sd, struct v4l2_fh *fh, struct v4l2_event_subscription *sub)”h]”j· )�”}”(hŒ{int v4l2_src_change_event_subdev_subscribe(struct v4l2_subdev *sd, struct v4l2_fh *fh, struct v4l2_event_subscription *sub)”h]”(jÅ)�”}”(hŒint”h]”hŒint”…”�”}”(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/v4l2-event:180: ./include/media/v4l2-event.h”h´KÆubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼+h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hj©+h²hh³j»+h´KÆubjà )�”}”(hŒ&v4l2_src_change_event_subdev_subscribe”h]”jæ )�”}”(hŒ&v4l2_src_change_event_subdev_subscribe”h]”hŒ&v4l2_src_change_event_subdev_subscribe”…”�”}”(hjÎ+h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjÊ+ubah}”(h]”h ]”(jø jù eh"]”h$]”h&]”hÅhÆuh1jß hj©+h²hh³j»+h´KÆubjý)�”}”(hŒQ(struct v4l2_subdev *sd, struct v4l2_fh *fh, struct v4l2_event_subscription *sub)”h]”(j)�”}”(hŒstruct v4l2_subdev *sd”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 ]”jÛ ah"]”h$]”h&]”uh1jÎ hjæ+ubh)�”}”(hhh]”jæ )�”}”(hŒ v4l2_subdev”h]”hŒ v4l2_subdev”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hj,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”j ,Œmodname”NŒ classname”Nj@jC)�”}”jF]”jI)�”}”j<jÐ+sbŒ(c.v4l2_src_change_event_subdev_subscribe”†”asbuh1hhjæ+ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj(,h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjæ+ubj])�”}”(hj`h]”hŒ*”…”�”}”(hj6,h²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hjæ+ubjæ )�”}”(hŒsd”h]”hŒsd”…”�”}”(hjC,h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjæ+ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhjâ+ubj)�”}”(hŒstruct v4l2_fh *fh”h]”(j½ )�”}”(hjÀ h]”hŒstruct”…”�”}”(hj\,h²hh³Nh´Nubah}”(h]”h ]”jÉ ah"]”h$]”h&]”uh1j¼ hjX,ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hji,h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjX,ubh)�”}”(hhh]”jæ )�”}”(hŒv4l2_fh”h]”hŒv4l2_fh”…”�”}”(hjz,h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjw,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”j|,Œmodname”NŒ classname”Nj@jC)�”}”jF]”j$,Œ(c.v4l2_src_change_event_subdev_subscribe”†”asbuh1hhjX,ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜,h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjX,ubj])�”}”(hj`h]”hŒ*”…”�”}”(hj¦,h²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hjX,ubjæ )�”}”(hŒfh”h]”hŒfh”…”�”}”(hj³,h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjX,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhjâ+ubj)�”}”(hŒ#struct v4l2_event_subscription *sub”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 ]”jÛ ah"]”h$]”h&]”uh1jÎ hjÈ,ubh)�”}”(hhh]”jæ )�”}”(hŒv4l2_event_subscription”h]”hŒv4l2_event_subscription”…”�”}”(hjê,h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjç,ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”høŒreftype”j<Œ reftarget”jì,Œmodname”NŒ classname”Nj@jC)�”}”jF]”j$,Œ(c.v4l2_src_change_event_subdev_subscribe”†”asbuh1hhjÈ,ubjÏ )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”jÛ ah"]”h$]”h&]”uh1jÎ hjÈ,ubj])�”}”(hj`h]”hŒ*”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”jiah"]”h$]”h&]”uh1j\hjÈ,ubjæ )�”}”(hŒsub”h]”hŒsub”…”�”}”(hj#-h²hh³Nh´Nubah}”(h]”h ]”jñ ah"]”h$]”h&]”uh1jå hjÈ,ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1jhjâ+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 ]”(j j eh"]”h$]”h&]”j ˆj )j huh1j° h³j»+h´KÆhj¢+h²hubj )�”}”(hhh]”hÞ)�”}”(hŒkVariant of v4l2_event_subscribe(), meant to subscribe only events of the type ``V4L2_EVENT_SOURCE_CHANGE``.”h]”(hŒNVariant of v4l2_event_subscribe(), meant to subscribe only events of the type ”…”�”}”(hjM-h²hh³Nh´Nubhì)�”}”(hŒ``V4L2_EVENT_SOURCE_CHANGE``”h]”hŒV4L2_EVENT_SOURCE_CHANGE”…”�”}”(hjU-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjM-ubhŒ.”…”�”}”(hjM-h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KÆhjJ-h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj¢+h²hh³j»+h´KÆubeh}”(h]”h ]”(høŒfunction”eh"]”h$]”h&]”j2 høj3 jw-j4 jw-j5 ‰j6 ‰j7 ‰uh1j« h²hhj‰ h³Nh´Nubj9 )�”}”(hX#**Parameters** ``struct v4l2_subdev *sd`` pointer to :c:type:`struct v4l2_subdev ` ``struct v4l2_fh *fh`` pointer to :c:type:`struct v4l2_fh ` ``struct v4l2_event_subscription *sub`` pointer to :c:type:`struct v4l2_event_subscription `”h]”(hÞ)�”}”(hŒ**Parameters**”h]”jG )�”}”(hj�-h]”hŒ Parameters”…”�”}”(hjƒ-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jF hj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KÊhj{-ubj‘ )�”}”(hhh]”(j– )�”}”(hŒQ``struct v4l2_subdev *sd`` pointer to :c:type:`struct v4l2_subdev ` ”h]”(jœ )�”}”(hŒ``struct v4l2_subdev *sd``”h]”hì)�”}”(hj -h]”hŒstruct v4l2_subdev *sd”…”�”}”(hj¢-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjž-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KÉhjš-ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ5pointer to :c:type:`struct v4l2_subdev `”h]”(hŒ pointer to ”…”�”}”(hj¹-h²hh³Nh´Nubh)�”}”(hŒ*:c:type:`struct v4l2_subdev `”h]”hì)�”}”(hjÃ-h]”hŒstruct v4l2_subdev”…”�”}”(hjÅ-h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjÁ-ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œ v4l2_subdev”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ŒE``struct v4l2_fh *fh`` pointer to :c:type:`struct v4l2_fh ` ”h]”(jœ )�”}”(hŒ``struct v4l2_fh *fh``”h]”hì)�”}”(hjø-h]”hŒstruct v4l2_fh *fh”…”�”}”(hjú-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjö-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KÊhjò-ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒ-pointer to :c:type:`struct v4l2_fh `”h]”(hŒ pointer to ”…”�”}”(hj.h²hh³Nh´Nubh)�”}”(hŒ":c:type:`struct v4l2_fh `”h]”hì)�”}”(hj.h]”hŒstruct v4l2_fh”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhj.ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œv4l2_fh”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Œu``struct v4l2_event_subscription *sub`` pointer to :c:type:`struct v4l2_event_subscription `”h]”(jœ )�”}”(hŒ'``struct v4l2_event_subscription *sub``”h]”hì)�”}”(hjP.h]”hŒ#struct v4l2_event_subscription *sub”…”�”}”(hjR.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjN.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j› h³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KÌhjJ.ubj¶ )�”}”(hhh]”hÞ)�”}”(hŒMpointer to :c:type:`struct v4l2_event_subscription `”h]”(hŒ pointer to ”…”�”}”(hji.h²hh³Nh´Nubh)�”}”(hŒB:c:type:`struct v4l2_event_subscription `”h]”hì)�”}”(hjs.h]”hŒstruct v4l2_event_subscription”…”�”}”(hju.h²hh³Nh´Nubah}”(h]”h ]”(h÷høŒc-type”eh"]”h$]”h&]”uh1hëhjq.ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”høŒreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j@jj Œv4l2_event_subscription”uh1hh³Œg/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-event:180: ./include/media/v4l2-event.h”h´KËhji.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³j�.h´KËhjf.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jµ hjJ.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j• h³je.h´KÌhj—-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j� hj{-ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1j8 hj‰ h²hh³Nh´Nubeh}”(h]”Œ(v4l2-event-functions-and-data-structures”ah ]”h"]”Œ(v4l2 event functions and data structures”ah$]”h&]”uh1hÈhj² h²hh³hÇh´K²ubeh}”(h]”Œhow-events-work”ah ]”h"]”Œhow events work”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Kœubeh}”(h]”Œ v4l2-events”ah ]”h"]”Œ v4l2 events”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”j~Œ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”jê.Œ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Ðj j j¯ j¬ j½.jº.jµ.j².uŒ nametypes”}”(jÅ.‰jÓ‰j ‰j¯ ‰j½.‰jµ.‰uh}”(jÂ.hÊjÐjãj jÖj¬ j# jº.j² j².j‰ j© j² j™ jž jWj\j·j¼j<jAjÿjj¾jÃj^jcjþjj "j"jg$jl$já%jæ%jP)jU)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.