€•CŒ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/rc-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/zh_TW/driver-api/media/rc-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/it_IT/driver-api/media/rc-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ja_JP/driver-api/media/rc-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/ko_KR/driver-api/media/rc-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/pt_BR/driver-api/media/rc-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ,/translations/sp_SP/driver-api/media/rc-core”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒF/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒRemote Controller devices”h]”hŒRemote Controller devices”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒRemote Controller core”h]”hŒRemote Controller core”…”�”}”(hhàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÝh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒ€The remote controller core implements infrastructure to receive and send remote controller keyboard keystrokes and mouse events.”h]”hŒ€The remote controller core implements infrastructure to receive and send remote controller keyboard keystrokes and mouse events.”…”�”}”(hhðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K hhÝh²hubhï)�”}”(hX�Every time a key is pressed on a remote controller, a scan code is produced. Also, on most hardware, keeping a key pressed for more than a few dozens of milliseconds produce a repeat key event. That's somewhat similar to what a normal keyboard or mouse is handled internally on Linux\ [#f1]_. So, the remote controller core is implemented on the top of the linux input/evdev interface.”h]”(hXEvery time a key is pressed on a remote controller, a scan code is produced. Also, on most hardware, keeping a key pressed for more than a few dozens of milliseconds produce a repeat key event. That’s somewhat similar to what a normal keyboard or mouse is handled internally on Linux ”…”�”}”(hhþh²hh³Nh´NubhŒfootnote_reference”“”)�”}”(hŒ[#f1]_”h]”hŒ1”…”�”}”(hjh²hh³Nh´Nubah}”(h]”Œid1”ah ]”h"]”h$]”h&]”Œauto”KŒrefid”Œf1”Œdocname”Œdriver-api/media/rc-core”uh1jhhþŒresolved”KubhŒ^. So, the remote controller core is implemented on the top of the linux input/evdev interface.”…”�”}”(hhþh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K hhÝh²hubhŒfootnote”“”)�”}”(hX The main difference is that, on keyboard events, the keyboard controller produces one event for a key press and another one for key release. On infrared-based remote controllers, there's no key release event. Instead, an extra code is produced to indicate key repeats. ”h]”(hŒlabel”“”)�”}”(hhh]”hŒ1”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j-hj)h²hh³Nh´Nubhï)�”}”(hX The main difference is that, on keyboard events, the keyboard controller produces one event for a key press and another one for key release. On infrared-based remote controllers, there's no key release event. Instead, an extra code is produced to indicate key repeats.”h]”hXThe main difference is that, on keyboard events, the keyboard controller produces one event for a key press and another one for key release. On infrared-based remote controllers, there’s no key release event. Instead, an extra code is produced to indicate key repeats.”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khj)ubeh}”(h]”jah ]”h"]”Œf1”ah$]”h&]”jajKjjuh1j'h³hÇh´KhhÝh²hubhï)�”}”(hXHowever, most of the remote controllers use infrared (IR) to transmit signals. As there are several protocols used to modulate infrared signals, one important part of the core is dedicated to adjust the driver and the core system to support the infrared protocol used by the emitter.”h]”hXHowever, most of the remote controllers use infrared (IR) to transmit signals. As there are several protocols used to modulate infrared signals, one important part of the core is dedicated to adjust the driver and the core system to support the infrared protocol used by the emitter.”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KhhÝh²hubhï)�”}”(hXThe infrared transmission is done by blinking a infrared emitter using a carrier. The carrier can be switched on or off by the IR transmitter hardware. When the carrier is switched on, it is called *PULSE*. When the carrier is switched off, it is called *SPACE*.”h]”(hŒÆThe infrared transmission is done by blinking a infrared emitter using a carrier. The carrier can be switched on or off by the IR transmitter hardware. When the carrier is switched on, it is called ”…”�”}”(hj_h²hh³Nh´NubhŒemphasis”“”)�”}”(hŒ*PULSE*”h]”hŒPULSE”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj_ubhŒ1. When the carrier is switched off, it is called ”…”�”}”(hj_h²hh³Nh´Nubjh)�”}”(hŒ*SPACE*”h]”hŒSPACE”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj_ubhŒ.”…”�”}”(hj_h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KhhÝh²hubhï)�”}”(hŒ€In other words, a typical IR transmission can be viewed as a sequence of *PULSE* and *SPACE* events, each with a given duration.”h]”(hŒIIn other words, a typical IR transmission can be viewed as a sequence of ”…”�”}”(hj“h²hh³Nh´Nubjh)�”}”(hŒ*PULSE*”h]”hŒPULSE”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj“ubhŒ and ”…”�”}”(hj“h²hh³Nh´Nubjh)�”}”(hŒ*SPACE*”h]”hŒSPACE”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jghj“ubhŒ$ events, each with a given duration.”…”�”}”(hj“h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K$hhÝh²hubhï)�”}”(hXThe carrier parameters (frequency, duty cycle) and the intervals for *PULSE* and *SPACE* events depend on the protocol. For example, the NEC protocol uses a carrier of 38kHz, and transmissions start with a 9ms *PULSE* and a 4.5ms SPACE. It then transmits 16 bits of scan code, being 8 bits for address (usually it is a fixed number for a given remote controller), followed by 8 bits of code. A bit "1" is modulated with 560µs *PULSE* followed by 1690µs *SPACE* and a bit "0" is modulated with 560µs *PULSE* followed by 560µs *SPACE*.”h]”(hŒEThe carrier parameters (frequency, duty cycle) and the intervals for ”…”�”}”(hjÅh²hh³Nh´Nubjh)�”}”(hŒ*PULSE*”h]”hŒPULSE”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjÅubhŒ and ”…”�”}”(hjÅh²hh³Nh´Nubjh)�”}”(hŒ*SPACE*”h]”hŒSPACE”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjÅubhŒz events depend on the protocol. For example, the NEC protocol uses a carrier of 38kHz, and transmissions start with a 9ms ”…”�”}”(hjÅh²hh³Nh´Nubjh)�”}”(hŒ*PULSE*”h]”hŒPULSE”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjÅubhŒÖ and a 4.5ms SPACE. It then transmits 16 bits of scan code, being 8 bits for address (usually it is a fixed number for a given remote controller), followed by 8 bits of code. A bit “1â€� is modulated with 560µs ”…”�”}”(hjÅh²hh³Nh´Nubjh)�”}”(hŒ*PULSE*”h]”hŒPULSE”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjÅubhŒ followed by 1690µs ”…”�”}”(hjÅh²hh³Nh´Nubjh)�”}”(hŒ*SPACE*”h]”hŒSPACE”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjÅubhŒ- and a bit “0â€� is modulated with 560µs ”…”�”}”(hjÅh²hh³Nh´Nubjh)�”}”(hŒ*PULSE*”h]”hŒPULSE”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjÅubhŒ followed by 560µs ”…”�”}”(hjÅh²hh³Nh´Nubjh)�”}”(hŒ*SPACE*”h]”hŒSPACE”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjÅubhŒ.”…”�”}”(hjÅh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K'hhÝh²hubhï)�”}”(hXøAt receiver, a simple low-pass filter can be used to convert the received signal in a sequence of *PULSE/SPACE* events, filtering out the carrier frequency. Due to that, the receiver doesn't care about the carrier's actual frequency parameters: all it has to do is to measure the amount of time it receives *PULSE/SPACE* events. So, a simple IR receiver hardware will just provide a sequence of timings for those events to the Kernel. The drivers for hardware with such kind of receivers are identified by ``RC_DRIVER_IR_RAW``, as defined by :c:type:`rc_driver_type`\ [#f2]_. Other hardware come with a microcontroller that decode the *PULSE/SPACE* sequence and return scan codes to the Kernel. Such kind of receivers are identified by ``RC_DRIVER_SCANCODE``.”h]”(hŒbAt receiver, a simple low-pass filter can be used to convert the received signal in a sequence of ”…”�”}”(hjQh²hh³Nh´Nubjh)�”}”(hŒ *PULSE/SPACE*”h]”hŒ PULSE/SPACE”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjQubhŒÈ events, filtering out the carrier frequency. Due to that, the receiver doesn’t care about the carrier’s actual frequency parameters: all it has to do is to measure the amount of time it receives ”…”�”}”(hjQh²hh³Nh´Nubjh)�”}”(hŒ *PULSE/SPACE*”h]”hŒ PULSE/SPACE”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjQubhŒ» events. So, a simple IR receiver hardware will just provide a sequence of timings for those events to the Kernel. The drivers for hardware with such kind of receivers are identified by ”…”�”}”(hjQh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ``RC_DRIVER_IR_RAW``”h]”hŒRC_DRIVER_IR_RAW”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjQubhŒ, as defined by ”…”�”}”(hjQh²hh³Nh´Nubh)�”}”(hŒ:c:type:`rc_driver_type`”h]”j~)�”}”(hj“h]”hŒrc_driver_type”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œc”Œc-type”eh"]”h$]”h&]”uh1j}hj‘ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰Œ reftarget”Œrc_driver_type”uh1hh³hÇh´K0hjQubhŒ ”…”�”}”(hjQh²hh³Nh´Nubj)�”}”(hŒ[#f2]_”h]”hŒ2”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”Œid2”ah ]”h"]”h$]”h&]”jKjŒf2”jjuh1jhjQjKubhŒ=. Other hardware come with a microcontroller that decode the ”…”�”}”(hjQh²hh³Nh´Nubjh)�”}”(hŒ *PULSE/SPACE*”h]”hŒ PULSE/SPACE”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jghjQubhŒX sequence and return scan codes to the Kernel. Such kind of receivers are identified by ”…”�”}”(hjQh²hh³Nh´Nubj~)�”}”(hŒ``RC_DRIVER_SCANCODE``”h]”hŒRC_DRIVER_SCANCODE”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjQubhŒ.”…”�”}”(hjQh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K0hhÝh²hubj()�”}”(hŒËThe RC core also supports devices that have just IR emitters, without any receivers. Right now, all such devices work only in raw TX mode. Such kind of hardware is identified as ``RC_DRIVER_IR_RAW_TX``. ”h]”(j.)�”}”(hhh]”hŒ2”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j-hjõh²hh³Nh´Nubhï)�”}”(hŒÊThe RC core also supports devices that have just IR emitters, without any receivers. Right now, all such devices work only in raw TX mode. Such kind of hardware is identified as ``RC_DRIVER_IR_RAW_TX``.”h]”(hŒ²The RC core also supports devices that have just IR emitters, without any receivers. Right now, all such devices work only in raw TX mode. Such kind of hardware is identified as ”…”�”}”(hjh²hh³Nh´Nubj~)�”}”(hŒ``RC_DRIVER_IR_RAW_TX``”h]”hŒRC_DRIVER_IR_RAW_TX”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjubhŒ.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K?hjõubeh}”(h]”jÆah ]”h"]”Œf2”ah$]”h&]”jÁajKjjuh1j'h³hÇh´K=hhÝh²hubhï)�”}”(hŒòWhen the RC core receives events produced by ``RC_DRIVER_IR_RAW`` IR receivers, it needs to decode the IR protocol, in order to obtain the corresponding scan code. The protocols supported by the RC core are defined at enum :c:type:`rc_proto`.”h]”(hŒ-When the RC core receives events produced by ”…”�”}”(hj-h²hh³Nh´Nubj~)�”}”(hŒ``RC_DRIVER_IR_RAW``”h]”hŒRC_DRIVER_IR_RAW”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj-ubhŒž IR receivers, it needs to decode the IR protocol, in order to obtain the corresponding scan code. The protocols supported by the RC core are defined at enum ”…”�”}”(hj-h²hh³Nh´Nubh)�”}”(hŒ:c:type:`rc_proto`”h]”j~)�”}”(hjIh]”hŒrc_proto”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”(jŸj Œc-type”eh"]”h$]”h&]”uh1j}hjGubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j±Œrc_proto”uh1hh³hÇh´KDhj-ubhŒ.”…”�”}”(hj-h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KDhhÝh²hubhï)�”}”(hŒÕWhen the RC code receives a scan code (either directly, by a driver of the type ``RC_DRIVER_SCANCODE``, or via its IR decoders), it needs to convert into a Linux input event code. This is done via a mapping table.”h]”(hŒPWhen the RC code receives a scan code (either directly, by a driver of the type ”…”�”}”(hjph²hh³Nh´Nubj~)�”}”(hŒ``RC_DRIVER_SCANCODE``”h]”hŒRC_DRIVER_SCANCODE”…”�”}”(hjxh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjpubhŒo, or via its IR decoders), it needs to convert into a Linux input event code. This is done via a mapping table.”…”�”}”(hjph²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KIhhÝh²hubhï)�”}”(hŒÚThe Kernel has support for mapping tables available on most media devices. It also supports loading a table in runtime, via some sysfs nodes. See the :ref:`RC userspace API ` for more details.”h]”(hŒ–The Kernel has support for mapping tables available on most media devices. It also supports loading a table in runtime, via some sysfs nodes. See the ”…”�”}”(hj�h²hh³Nh´Nubh)�”}”(hŒ2:ref:`RC userspace API `”h]”hŒinline”“”)�”}”(hjšh]”hŒRC userspace API”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”(jŸŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jœhj˜ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j¨Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj±Œremote_controllers_intro”uh1hh³hÇh´KNhj�ubhŒ for more details.”…”�”}”(hj�h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KNhhÝh²hubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ/Remote controller data structures and functions”h]”hŒ/Remote controller data structures and functions”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjÄh²hh³hÇh´KTubhŒindex”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(Œsingle”Œrc_driver_type (C enum)”Œc.rc_driver_type”hNt”auh1jÕhjÄh²hh³Nh´NubhŒdesc”“”)�”}”(hhh]”(hŒdesc_signature”“”)�”}”(hŒrc_driver_type”h]”hŒdesc_signature_line”“”)�”}”(hŒenum rc_driver_type”h]”(hŒdesc_sig_keyword”“”)�”}”(hŒenum”h]”hŒenum”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1j÷hjóh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KubhŒdesc_sig_space”“”)�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j hjóh²hh³jh´KubhŒ desc_name”“”)�”}”(hŒrc_driver_type”h]”hŒ desc_sig_name”“”)�”}”(hjïh]”hŒrc_driver_type”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”Œn”ah"]”h$]”h&]”uh1j hjubah}”(h]”h ]”(Œsig-name”Œdescname”eh"]”h$]”h&]”hÅhÆuh1jhjóh²hh³jh´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒ add_permalink”ˆuh1jñŒsphinx_line_type”Œ declarator”hjíh²hh³jh´Kubah}”(h]”jäah ]”(Œsig”Œ sig-object”eh"]”h$]”h&]”Œ is_multiline”ˆŒ _toc_parts”)Œ _toc_name”huh1jëh³jh´Khjèh²hubhŒ desc_content”“”)�”}”(hhh]”hï)�”}”(hŒtype of the RC driver.”h]”hŒtype of the RC driver.”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KhjNh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjèh²hh³jh´Kubeh}”(h]”h ]”(j Œenum”eh"]”h$]”h&]”Œdomain”j Œobjtype”jiŒdesctype”jiŒnoindex”‰Œ noindexentry”‰Œnocontentsentry”‰uh1jæh²hhjÄh³Nh´NubhŒ container”“”)�”}”(hX(**Constants** ``RC_DRIVER_SCANCODE`` Driver or hardware generates a scancode. ``RC_DRIVER_IR_RAW`` Driver or hardware generates pulse/space sequences. It needs a Infra-Red pulse/space decoder ``RC_DRIVER_IR_RAW_TX`` Device transmitter only, driver requires pulse/space data sequence.”h]”(hï)�”}”(hŒ **Constants**”h]”hŒstrong”“”)�”}”(hj{h]”hŒ Constants”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjyubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KhjuubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hŒ@``RC_DRIVER_SCANCODE`` Driver or hardware generates a scancode. ”h]”(hŒterm”“”)�”}”(hŒ``RC_DRIVER_SCANCODE``”h]”j~)�”}”(hj¢h]”hŒRC_DRIVER_SCANCODE”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KhjšubhŒ definition”“”)�”}”(hhh]”hï)�”}”(hŒ(Driver or hardware generates a scancode.”h]”hŒ(Driver or hardware generates a scancode.”…”�”}”(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Œr``RC_DRIVER_IR_RAW`` Driver or hardware generates pulse/space sequences. It needs a Infra-Red pulse/space decoder ”h]”(jŸ)�”}”(hŒ``RC_DRIVER_IR_RAW``”h]”j~)�”}”(hjÝh]”hŒRC_DRIVER_IR_RAW”…”�”}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Khj×ubj¹)�”}”(hhh]”hï)�”}”(hŒ\Driver or hardware generates pulse/space sequences. It needs a Infra-Red pulse/space decoder”h]”hŒ\Driver or hardware generates pulse/space sequences. It needs a Infra-Red pulse/space decoder”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Khjóubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj×ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jòh´Khj•ubj™)�”}”(hŒ[``RC_DRIVER_IR_RAW_TX`` Device transmitter only, driver requires pulse/space data sequence.”h]”(jŸ)�”}”(hŒ``RC_DRIVER_IR_RAW_TX``”h]”j~)�”}”(hjh]”hŒRC_DRIVER_IR_RAW_TX”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K!hjubj¹)�”}”(hhh]”hï)�”}”(hŒCDevice transmitter only, driver requires pulse/space data sequence.”h]”hŒCDevice transmitter only, driver requires pulse/space data sequence.”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j,h´K!hj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j,h´K!hj•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hjuubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒrc_scancode_filter (C struct)”Œc.rc_scancode_filter”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒrc_scancode_filter”h]”jò)�”}”(hŒstruct rc_scancode_filter”h]”(jø)�”}”(hŒstruct”h]”hŒstruct”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjlh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K'ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjlh²hh³j~h´K'ubj)�”}”(hŒrc_scancode_filter”h]”j!)�”}”(hjjh]”hŒrc_scancode_filter”…”�”}”(hj‘h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj�ubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhjlh²hh³j~h´K'ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj>ˆuh1jñj?j@hjhh²hh³j~h´K'ubah}”(h]”jcah ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³j~h´K'hjeh²hubjM)�”}”(hhh]”hï)�”}”(hŒFilter scan codes.”h]”hŒFilter scan codes.”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K"hj°h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjeh²hh³j~h´K'ubeh}”(h]”h ]”(j Œstruct”eh"]”h$]”h&]”jmj jnjËjojËjp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hŒ¶**Definition**:: struct rc_scancode_filter { u32 data; u32 mask; }; **Members** ``data`` Scancode data to match. ``mask`` Mask of bits of scancode to compare.”h]”(hï)�”}”(hŒ**Definition**::”h]”(j~)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjÓubhŒ:”…”�”}”(hjÓh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K&hjÏubhŒ literal_block”“”)�”}”(hŒ:struct rc_scancode_filter { u32 data; u32 mask; };”h]”hŒ:struct rc_scancode_filter { u32 data; u32 mask; };”…”�”}”hjòsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jðh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K(hjÏubhï)�”}”(hŒ **Members**”h]”j~)�”}”(hjh]”hŒMembers”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K-hjÏubj”)�”}”(hhh]”(j™)�”}”(hŒ!``data`` Scancode data to match. ”h]”(jŸ)�”}”(hŒ``data``”h]”j~)�”}”(hj"h]”hŒdata”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K$hjubj¹)�”}”(hhh]”hï)�”}”(hŒScancode data to match.”h]”hŒScancode data to match.”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j7h´K$hj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j7h´K$hjubj™)�”}”(hŒ-``mask`` Mask of bits of scancode to compare.”h]”(jŸ)�”}”(hŒ``mask``”h]”j~)�”}”(hj[h]”hŒmask”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjYubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K$hjUubj¹)�”}”(hhh]”hï)�”}”(hŒ$Mask of bits of scancode to compare.”h]”hŒ$Mask of bits of scancode to compare.”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K%hjqubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjUubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jph´K$hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hjÏubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒrc_filter_type (C enum)”Œc.rc_filter_type”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒrc_filter_type”h]”jò)�”}”(hŒenum rc_filter_type”h]”(jø)�”}”(hjûh]”hŒenum”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj±h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K+ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj±h²hh³jÂh´K+ubj)�”}”(hŒrc_filter_type”h]”j!)�”}”(hj¯h]”hŒrc_filter_type”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjÑubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhj±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 ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³jÂh´K+hjªh²hubjM)�”}”(hhh]”hï)�”}”(hŒFilter type constants.”h]”hŒFilter type constants.”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K,hjôh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjªh²hh³jÂh´K+ubeh}”(h]”h ]”(j Œenum”eh"]”h$]”h&]”jmj jnjjojjp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hŒ§**Constants** ``RC_FILTER_NORMAL`` Filter for normal operation. ``RC_FILTER_WAKEUP`` Filter for waking from suspend. ``RC_FILTER_MAX`` Number of filter types.”h]”(hï)�”}”(hŒ **Constants**”h]”j~)�”}”(hjh]”hŒ Constants”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K0hjubj”)�”}”(hhh]”(j™)�”}”(hŒ2``RC_FILTER_NORMAL`` Filter for normal operation. ”h]”(jŸ)�”}”(hŒ``RC_FILTER_NORMAL``”h]”j~)�”}”(hj8h]”hŒRC_FILTER_NORMAL”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K3hj2ubj¹)�”}”(hhh]”hï)�”}”(hŒFilter for normal operation.”h]”hŒFilter for normal operation.”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jMh´K3hjNubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jMh´K3hj/ubj™)�”}”(hŒ5``RC_FILTER_WAKEUP`` Filter for waking from suspend. ”h]”(jŸ)�”}”(hŒ``RC_FILTER_WAKEUP``”h]”j~)�”}”(hjqh]”hŒRC_FILTER_WAKEUP”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K6hjkubj¹)�”}”(hhh]”hï)�”}”(hŒFilter for waking from suspend.”h]”hŒFilter for waking from suspend.”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j†h´K6hj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjkubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j†h´K6hj/ubj™)�”}”(hŒ)``RC_FILTER_MAX`` Number of filter types.”h]”(jŸ)�”}”(hŒ``RC_FILTER_MAX``”h]”j~)�”}”(hjªh]”hŒ RC_FILTER_MAX”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K8hj¤ubj¹)�”}”(hhh]”hï)�”}”(hŒNumber of filter types.”h]”hŒNumber of filter types.”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K9hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j¿h´K8hj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒlirc_fh (C struct)”Œ c.lirc_fh”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒlirc_fh”h]”jò)�”}”(hŒstruct lirc_fh”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K>ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjh²hh³jh´K>ubj)�”}”(hŒlirc_fh”h]”j!)�”}”(hjþh]”hŒlirc_fh”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj ubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhjh²hh³jh´K>ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj>ˆuh1jñj?j@hjüh²hh³jh´K>ubah}”(h]”j÷ah ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³jh´K>hjùh²hubjM)�”}”(hhh]”hï)�”}”(hŒrepresents an open lirc file”h]”hŒrepresents an open lirc file”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K9hjCh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjùh²hh³jh´K>ubeh}”(h]”h ]”(j Œstruct”eh"]”h$]”h&]”jmj jnj^joj^jp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hX**Definition**:: struct lirc_fh { struct list_head list; struct rc_dev *rc; unsigned int *rawir; struct lirc_scancode *scancodes; wait_queue_head_t wait_poll; u32 carrier_low; u8 send_mode; u8 rec_mode; }; **Members** ``list`` list of open file handles ``rc`` rcdev for this lirc chardev ``rawir`` queue for incoming raw IR ``scancodes`` queue for incoming decoded scancodes ``wait_poll`` poll struct for lirc device ``carrier_low`` when setting the carrier range, first the low end must be set with an ioctl and then the high end with another ioctl ``send_mode`` lirc mode for sending, either LIRC_MODE_SCANCODE or LIRC_MODE_PULSE ``rec_mode`` lirc mode for receiving, either LIRC_MODE_SCANCODE or LIRC_MODE_MODE2”h]”(hï)�”}”(hŒ**Definition**::”h]”(j~)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjfubhŒ:”…”�”}”(hjfh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K=hjbubjñ)�”}”(hŒÜstruct lirc_fh { struct list_head list; struct rc_dev *rc; unsigned int *rawir; struct lirc_scancode *scancodes; wait_queue_head_t wait_poll; u32 carrier_low; u8 send_mode; u8 rec_mode; };”h]”hŒÜstruct lirc_fh { struct list_head list; struct rc_dev *rc; unsigned int *rawir; struct lirc_scancode *scancodes; wait_queue_head_t wait_poll; u32 carrier_low; u8 send_mode; u8 rec_mode; };”…”�”}”hjƒsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jðh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K?hjbubhï)�”}”(hŒ **Members**”h]”j~)�”}”(hj”h]”hŒMembers”…”�”}”(hj–h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KJhjbubj”)�”}”(hhh]”(j™)�”}”(hŒ#``list`` list of open file handles ”h]”(jŸ)�”}”(hŒ``list``”h]”j~)�”}”(hj³h]”hŒlist”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K;hj­ubj¹)�”}”(hhh]”hï)�”}”(hŒlist of open file handles”h]”hŒlist of open file handles”…”�”}”(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Œ#``rc`` rcdev for this lirc chardev ”h]”(jŸ)�”}”(hŒ``rc``”h]”j~)�”}”(hjìh]”hŒrc”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjêubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j: h´K=hj; ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j: h´K=hjªubj™)�”}”(hŒ3``scancodes`` queue for incoming decoded scancodes ”h]”(jŸ)�”}”(hŒ ``scancodes``”h]”j~)�”}”(hj^ h]”hŒ scancodes”…”�”}”(hj` h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj\ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K>hjX ubj¹)�”}”(hhh]”hï)�”}”(hŒ$queue for incoming decoded scancodes”h]”hŒ$queue for incoming decoded scancodes”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³js h´K>hjt ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjX ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³js h´K>hjªubj™)�”}”(hŒ*``wait_poll`` poll struct for lirc device ”h]”(jŸ)�”}”(hŒ ``wait_poll``”h]”j~)�”}”(hj— h]”hŒ wait_poll”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj• ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K?hj‘ ubj¹)�”}”(hhh]”hï)�”}”(hŒpoll struct for lirc device”h]”hŒpoll struct for lirc device”…”�”}”(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Œ…``carrier_low`` when setting the carrier range, first the low end must be set with an ioctl and then the high end with another ioctl ”h]”(jŸ)�”}”(hŒ``carrier_low``”h]”j~)�”}”(hjÐ h]”hŒ carrier_low”…”�”}”(hjÒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjÎ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KAhjÊ ubj¹)�”}”(hhh]”hï)�”}”(hŒtwhen setting the carrier range, first the low end must be set with an ioctl and then the high end with another ioctl”h]”hŒtwhen setting the carrier range, first the low end must be set with an ioctl and then the high end with another ioctl”…”�”}”(hjé h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K@hjæ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjÊ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jå h´KAhjªubj™)�”}”(hŒR``send_mode`` lirc mode for sending, either LIRC_MODE_SCANCODE or LIRC_MODE_PULSE ”h]”(jŸ)�”}”(hŒ ``send_mode``”h]”j~)�”}”(hj h]”hŒ send_mode”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KChj ubj¹)�”}”(hhh]”hï)�”}”(hŒClirc mode for sending, either LIRC_MODE_SCANCODE or LIRC_MODE_PULSE”h]”hŒClirc mode for sending, either LIRC_MODE_SCANCODE or LIRC_MODE_PULSE”…”�”}”(hj# h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KBhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j h´KChjªubj™)�”}”(hŒR``rec_mode`` lirc mode for receiving, either LIRC_MODE_SCANCODE or LIRC_MODE_MODE2”h]”(jŸ)�”}”(hŒ ``rec_mode``”h]”j~)�”}”(hjD h]”hŒrec_mode”…”�”}”(hjF h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjB ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KDhj> ubj¹)�”}”(hhh]”hï)�”}”(hŒElirc mode for receiving, either LIRC_MODE_SCANCODE or LIRC_MODE_MODE2”h]”hŒElirc mode for receiving, either LIRC_MODE_SCANCODE or LIRC_MODE_MODE2”…”�”}”(hj] h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jY h´KDhjZ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj> ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jY h´KDhjªubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hjbubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒrc_dev (C struct)”Œc.rc_dev”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒrc_dev”h]”jò)�”}”(hŒ struct rc_dev”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj™ h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KKubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj« h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj™ h²hh³jª h´KKubj)�”}”(hŒrc_dev”h]”j!)�”}”(hj— h]”hŒrc_dev”…”�”}”(hj½ h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj¹ ubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhj™ h²hh³jª h´KKubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj>ˆuh1jñj?j@hj• h²hh³jª h´KKubah}”(h]”j� ah ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³jª h´KKhj’ h²hubjM)�”}”(hhh]”hï)�”}”(hŒ"represents a remote control device”h]”hŒ"represents a remote control device”…”�”}”(hjß h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KRhjÜ h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj’ h²hh³jª h´KKubeh}”(h]”h ]”(j Œstruct”eh"]”h$]”h&]”jmj jnj÷ joj÷ jp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hX™**Definition**:: struct rc_dev { struct device dev; bool registered; bool idle; bool encode_wakeup; unsigned int minor; const struct attribute_group *sysfs_groups[5]; const char *device_name; const char *input_phys; struct input_id input_id; const char *driver_name; const char *map_name; struct rc_map rc_map; struct mutex lock; struct ir_raw_event_ctrl *raw; struct input_dev *input_dev; enum rc_driver_type driver_type; u32 users; u64 allowed_protocols; u64 enabled_protocols; u64 allowed_wakeup_protocols; enum rc_proto wakeup_protocol; struct rc_scancode_filter scancode_filter; struct rc_scancode_filter scancode_wakeup_filter; u32 scancode_mask; void *priv; spinlock_t keylock; bool keypressed; u8 last_toggle; u32 last_keycode; enum rc_proto last_protocol; u64 last_scancode; unsigned long keyup_jiffies; struct timer_list timer_keyup; struct timer_list timer_repeat; u32 timeout; u32 min_timeout; u32 max_timeout; u32 rx_resolution; #ifdef CONFIG_LIRC; struct device lirc_dev; struct cdev lirc_cdev; ktime_t gap_start; spinlock_t lirc_fh_lock; struct list_head lirc_fh; #endif; int (*change_protocol)(struct rc_dev *dev, u64 *rc_proto); int (*open)(struct rc_dev *dev); void (*close)(struct rc_dev *dev); int (*s_tx_mask)(struct rc_dev *dev, u32 mask); int (*s_tx_carrier)(struct rc_dev *dev, u32 carrier); int (*s_tx_duty_cycle)(struct rc_dev *dev, u32 duty_cycle); int (*s_rx_carrier_range)(struct rc_dev *dev, u32 min, u32 max); int (*tx_ir)(struct rc_dev *dev, unsigned *txbuf, unsigned n); void (*s_idle)(struct rc_dev *dev, bool enable); int (*s_wideband_receiver)(struct rc_dev *dev, int enable); int (*s_carrier_report) (struct rc_dev *dev, int enable); int (*s_filter)(struct rc_dev *dev, struct rc_scancode_filter *filter); int (*s_wakeup_filter)(struct rc_dev *dev, struct rc_scancode_filter *filter); int (*s_timeout)(struct rc_dev *dev, unsigned int timeout); }; **Members** ``dev`` driver model's view of this device ``registered`` set to true by rc_register_device(), false by rc_unregister_device ``idle`` used to keep track of RX state ``encode_wakeup`` wakeup filtering uses IR encode API, therefore the allowed wakeup protocols is the set of all raw encoders ``minor`` unique minor remote control device number ``sysfs_groups`` sysfs attribute groups ``device_name`` name of the rc child device ``input_phys`` physical path to the input child device ``input_id`` id of the input child device (struct input_id) ``driver_name`` name of the hardware driver which registered this device ``map_name`` name of the default keymap ``rc_map`` current scan/key table ``lock`` used to ensure we've filled in all protocol details before anyone can call show_protocols or store_protocols ``raw`` additional data for raw pulse/space devices ``input_dev`` the input child device used to communicate events to userspace ``driver_type`` specifies if protocol decoding is done in hardware or software ``users`` number of current users of the device ``allowed_protocols`` bitmask with the supported RC_PROTO_BIT_* protocols ``enabled_protocols`` bitmask with the enabled RC_PROTO_BIT_* protocols ``allowed_wakeup_protocols`` bitmask with the supported RC_PROTO_BIT_* wakeup protocols ``wakeup_protocol`` the enabled RC_PROTO_* wakeup protocol or RC_PROTO_UNKNOWN if disabled. ``scancode_filter`` scancode filter ``scancode_wakeup_filter`` scancode wakeup filters ``scancode_mask`` some hardware decoders are not capable of providing the full scancode to the application. As this is a hardware limit, we can't do anything with it. Yet, as the same keycode table can be used with other devices, a mask is provided to allow its usage. Drivers should generally leave this field in blank ``priv`` driver-specific data ``keylock`` protects the remaining members of the struct ``keypressed`` whether a key is currently pressed ``last_toggle`` toggle value of last command ``last_keycode`` keycode of last keypress ``last_protocol`` protocol of last keypress ``last_scancode`` scancode of last keypress ``keyup_jiffies`` time (in jiffies) when the current keypress should be released ``timer_keyup`` timer for releasing a keypress ``timer_repeat`` timer for autorepeat events. This is needed for CEC, which has non-standard repeats. ``timeout`` optional time after which device stops sending data ``min_timeout`` minimum timeout supported by device ``max_timeout`` maximum timeout supported by device ``rx_resolution`` resolution (in us) of input sampler ``lirc_dev`` lirc device ``lirc_cdev`` lirc char cdev ``gap_start`` start time for gap after timeout if non-zero ``lirc_fh_lock`` protects lirc_fh list ``lirc_fh`` list of open files ``change_protocol`` allow changing the protocol used on hardware decoders ``open`` callback to allow drivers to enable polling/irq when IR input device is opened. ``close`` callback to allow drivers to disable polling/irq when IR input device is opened. ``s_tx_mask`` set transmitter mask (for devices with multiple tx outputs) ``s_tx_carrier`` set transmit carrier frequency ``s_tx_duty_cycle`` set transmit duty cycle (0% - 100%) ``s_rx_carrier_range`` inform driver about carrier it is expected to handle ``tx_ir`` transmit IR ``s_idle`` enable/disable hardware idle mode, upon which, device doesn't interrupt host until it sees IR pulses ``s_wideband_receiver`` enable wide band receiver used for learning ``s_carrier_report`` enable carrier reports ``s_filter`` set the scancode filter ``s_wakeup_filter`` set the wakeup scancode filter. If the mask is zero then wakeup should be disabled. wakeup_protocol will be set to a valid protocol if mask is nonzero. ``s_timeout`` set hardware timeout in us”h]”(hï)�”}”(hŒ**Definition**::”h]”(j~)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjÿ ubhŒ:”…”�”}”(hjÿ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KVhjû ubjñ)�”}”(hX• struct rc_dev { struct device dev; bool registered; bool idle; bool encode_wakeup; unsigned int minor; const struct attribute_group *sysfs_groups[5]; const char *device_name; const char *input_phys; struct input_id input_id; const char *driver_name; const char *map_name; struct rc_map rc_map; struct mutex lock; struct ir_raw_event_ctrl *raw; struct input_dev *input_dev; enum rc_driver_type driver_type; u32 users; u64 allowed_protocols; u64 enabled_protocols; u64 allowed_wakeup_protocols; enum rc_proto wakeup_protocol; struct rc_scancode_filter scancode_filter; struct rc_scancode_filter scancode_wakeup_filter; u32 scancode_mask; void *priv; spinlock_t keylock; bool keypressed; u8 last_toggle; u32 last_keycode; enum rc_proto last_protocol; u64 last_scancode; unsigned long keyup_jiffies; struct timer_list timer_keyup; struct timer_list timer_repeat; u32 timeout; u32 min_timeout; u32 max_timeout; u32 rx_resolution; #ifdef CONFIG_LIRC; struct device lirc_dev; struct cdev lirc_cdev; ktime_t gap_start; spinlock_t lirc_fh_lock; struct list_head lirc_fh; #endif; int (*change_protocol)(struct rc_dev *dev, u64 *rc_proto); int (*open)(struct rc_dev *dev); void (*close)(struct rc_dev *dev); int (*s_tx_mask)(struct rc_dev *dev, u32 mask); int (*s_tx_carrier)(struct rc_dev *dev, u32 carrier); int (*s_tx_duty_cycle)(struct rc_dev *dev, u32 duty_cycle); int (*s_rx_carrier_range)(struct rc_dev *dev, u32 min, u32 max); int (*tx_ir)(struct rc_dev *dev, unsigned *txbuf, unsigned n); void (*s_idle)(struct rc_dev *dev, bool enable); int (*s_wideband_receiver)(struct rc_dev *dev, int enable); int (*s_carrier_report) (struct rc_dev *dev, int enable); int (*s_filter)(struct rc_dev *dev, struct rc_scancode_filter *filter); int (*s_wakeup_filter)(struct rc_dev *dev, struct rc_scancode_filter *filter); int (*s_timeout)(struct rc_dev *dev, unsigned int timeout); };”h]”hX• struct rc_dev { struct device dev; bool registered; bool idle; bool encode_wakeup; unsigned int minor; const struct attribute_group *sysfs_groups[5]; const char *device_name; const char *input_phys; struct input_id input_id; const char *driver_name; const char *map_name; struct rc_map rc_map; struct mutex lock; struct ir_raw_event_ctrl *raw; struct input_dev *input_dev; enum rc_driver_type driver_type; u32 users; u64 allowed_protocols; u64 enabled_protocols; u64 allowed_wakeup_protocols; enum rc_proto wakeup_protocol; struct rc_scancode_filter scancode_filter; struct rc_scancode_filter scancode_wakeup_filter; u32 scancode_mask; void *priv; spinlock_t keylock; bool keypressed; u8 last_toggle; u32 last_keycode; enum rc_proto last_protocol; u64 last_scancode; unsigned long keyup_jiffies; struct timer_list timer_keyup; struct timer_list timer_repeat; u32 timeout; u32 min_timeout; u32 max_timeout; u32 rx_resolution; #ifdef CONFIG_LIRC; struct device lirc_dev; struct cdev lirc_cdev; ktime_t gap_start; spinlock_t lirc_fh_lock; struct list_head lirc_fh; #endif; int (*change_protocol)(struct rc_dev *dev, u64 *rc_proto); int (*open)(struct rc_dev *dev); void (*close)(struct rc_dev *dev); int (*s_tx_mask)(struct rc_dev *dev, u32 mask); int (*s_tx_carrier)(struct rc_dev *dev, u32 carrier); int (*s_tx_duty_cycle)(struct rc_dev *dev, u32 duty_cycle); int (*s_rx_carrier_range)(struct rc_dev *dev, u32 min, u32 max); int (*tx_ir)(struct rc_dev *dev, unsigned *txbuf, unsigned n); void (*s_idle)(struct rc_dev *dev, bool enable); int (*s_wideband_receiver)(struct rc_dev *dev, int enable); int (*s_carrier_report) (struct rc_dev *dev, int enable); int (*s_filter)(struct rc_dev *dev, struct rc_scancode_filter *filter); int (*s_wakeup_filter)(struct rc_dev *dev, struct rc_scancode_filter *filter); int (*s_timeout)(struct rc_dev *dev, unsigned int timeout); };”…”�”}”hj sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jðh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KXhjû ubhï)�”}”(hŒ **Members**”h]”j~)�”}”(hj- h]”hŒMembers”…”�”}”(hj/ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj+ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K–hjû ubj”)�”}”(hhh]”(j™)�”}”(hŒ+``dev`` driver model's view of this device ”h]”(jŸ)�”}”(hŒ``dev``”h]”j~)�”}”(hjL h]”hŒdev”…”�”}”(hjN h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjJ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KThjF ubj¹)�”}”(hhh]”hï)�”}”(hŒ"driver model's view of this device”h]”hŒ$driver model’s view of this device”…”�”}”(hje h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³ja h´KThjb ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjF ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³ja h´KThjC ubj™)�”}”(hŒR``registered`` set to true by rc_register_device(), false by rc_unregister_device ”h]”(jŸ)�”}”(hŒ``registered``”h]”j~)�”}”(hj… h]”hŒ registered”…”�”}”(hj‡ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjƒ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KVhj ubj¹)�”}”(hhh]”hï)�”}”(hŒBset to true by rc_register_device(), false by rc_unregister_device”h]”hŒBset to true by rc_register_device(), false by rc_unregister_device”…”�”}”(hjž h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KUhj› ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jš h´KVhjC ubj™)�”}”(hŒ(``idle`` used to keep track of RX state ”h]”(jŸ)�”}”(hŒ``idle``”h]”j~)�”}”(hj¿ h]”hŒidle”…”�”}”(hjÁ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj½ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KWhj¹ ubj¹)�”}”(hhh]”hï)�”}”(hŒused to keep track of RX state”h]”hŒused to keep track of RX state”…”�”}”(hjØ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÔ h´KWhjÕ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj¹ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jÔ h´KWhjC ubj™)�”}”(hŒ}``encode_wakeup`` wakeup filtering uses IR encode API, therefore the allowed wakeup protocols is the set of all raw encoders ”h]”(jŸ)�”}”(hŒ``encode_wakeup``”h]”j~)�”}”(hjø h]”hŒ encode_wakeup”…”�”}”(hjú h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjö ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KYhjò ubj¹)�”}”(hhh]”hï)�”}”(hŒjwakeup filtering uses IR encode API, therefore the allowed wakeup protocols is the set of all raw encoders”h]”hŒjwakeup filtering uses IR encode API, therefore the allowed wakeup protocols is the set of all raw encoders”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KXhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjò ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j h´KYhjC ubj™)�”}”(hŒ4``minor`` unique minor remote control device number ”h]”(jŸ)�”}”(hŒ ``minor``”h]”j~)�”}”(hj2 h]”hŒminor”…”�”}”(hj4 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj0 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KZhj, ubj¹)�”}”(hhh]”hï)�”}”(hŒ)unique minor remote control device number”h]”hŒ)unique minor remote control device number”…”�”}”(hjK h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jG h´KZhjH ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj, ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jG h´KZhjC ubj™)�”}”(hŒ(``sysfs_groups`` sysfs attribute groups ”h]”(jŸ)�”}”(hŒ``sysfs_groups``”h]”j~)�”}”(hjk h]”hŒ sysfs_groups”…”�”}”(hjm h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hji ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K[hje ubj¹)�”}”(hhh]”hï)�”}”(hŒsysfs attribute groups”h]”hŒsysfs attribute groups”…”�”}”(hj„ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j€ h´K[hj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hje ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j€ h´K[hjC ubj™)�”}”(hŒ,``device_name`` name of the rc child device ”h]”(jŸ)�”}”(hŒ``device_name``”h]”j~)�”}”(hj¤ h]”hŒ device_name”…”�”}”(hj¦ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj¢ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K\hjž ubj¹)�”}”(hhh]”hï)�”}”(hŒname of the rc child device”h]”hŒname of the rc child device”…”�”}”(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\hjC ubj™)�”}”(hŒ7``input_phys`` physical path to the input child device ”h]”(jŸ)�”}”(hŒ``input_phys``”h]”j~)�”}”(hjÝ h]”hŒ input_phys”…”�”}”(hjß h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjÛ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K]hj× ubj¹)�”}”(hhh]”hï)�”}”(hŒ'physical path to the input child device”h]”hŒ'physical path to the input child device”…”�”}”(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]hjC ubj™)�”}”(hŒ<``input_id`` id of the input child device (struct input_id) ”h]”(jŸ)�”}”(hŒ ``input_id``”h]”j~)�”}”(hj h]”hŒinput_id”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K^hj ubj¹)�”}”(hhh]”hï)�”}”(hŒ.id of the input child device (struct input_id)”h]”hŒ.id of the input child device (struct input_id)”…”�”}”(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^hjC ubj™)�”}”(hŒI``driver_name`` name of the hardware driver which registered this device ”h]”(jŸ)�”}”(hŒ``driver_name``”h]”j~)�”}”(hjO h]”hŒ driver_name”…”�”}”(hjQ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjM ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K_hjI ubj¹)�”}”(hhh]”hï)�”}”(hŒ8name of the hardware driver which registered this device”h]”hŒ8name of the hardware driver which registered this device”…”�”}”(hjh h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jd h´K_hje ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjI ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jd h´K_hjC ubj™)�”}”(hŒ(``map_name`` name of the default keymap ”h]”(jŸ)�”}”(hŒ ``map_name``”h]”j~)�”}”(hjˆ h]”hŒmap_name”…”�”}”(hjŠ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj† ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K`hj‚ ubj¹)�”}”(hhh]”hï)�”}”(hŒname of the default keymap”h]”hŒname of the default keymap”…”�”}”(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`hjC ubj™)�”}”(hŒ"``rc_map`` current scan/key table ”h]”(jŸ)�”}”(hŒ ``rc_map``”h]”j~)�”}”(hjÁ h]”hŒrc_map”…”�”}”(hjà h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj¿ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kahj» ubj¹)�”}”(hhh]”hï)�”}”(hŒcurrent scan/key table”h]”hŒcurrent scan/key table”…”�”}”(hjÚ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÖ h´Kahj× ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj» ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jÖ h´KahjC ubj™)�”}”(hŒv``lock`` used to ensure we've filled in all protocol details before anyone can call show_protocols or store_protocols ”h]”(jŸ)�”}”(hŒ``lock``”h]”j~)�”}”(hjú h]”hŒlock”…”�”}”(hjü h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjø ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kchjô ubj¹)�”}”(hhh]”hï)�”}”(hŒlused to ensure we've filled in all protocol details before anyone can call show_protocols or store_protocols”h]”hŒnused to ensure we’ve filled in all protocol details before anyone can call show_protocols or store_protocols”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kbhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjô ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jh´KchjC ubj™)�”}”(hŒ4``raw`` additional data for raw pulse/space devices ”h]”(jŸ)�”}”(hŒ``raw``”h]”j~)�”}”(hj4h]”hŒraw”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kdhj.ubj¹)�”}”(hhh]”hï)�”}”(hŒ+additional data for raw pulse/space devices”h]”hŒ+additional data for raw pulse/space devices”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jIh´KdhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jIh´KdhjC ubj™)�”}”(hŒM``input_dev`` the input child device used to communicate events to userspace ”h]”(jŸ)�”}”(hŒ ``input_dev``”h]”j~)�”}”(hjmh]”hŒ input_dev”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjkubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kehjgubj¹)�”}”(hhh]”hï)�”}”(hŒ>the input child device used to communicate events to userspace”h]”hŒ>the input child device used to communicate events to userspace”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j‚h´Kehjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjgubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j‚h´KehjC ubj™)�”}”(hŒO``driver_type`` specifies if protocol decoding is done in hardware or software ”h]”(jŸ)�”}”(hŒ``driver_type``”h]”j~)�”}”(hj¦h]”hŒ driver_type”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kfhj ubj¹)�”}”(hhh]”hï)�”}”(hŒ>specifies if protocol decoding is done in hardware or software”h]”hŒ>specifies if protocol decoding is done in hardware or software”…”�”}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j»h´Kfhj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j»h´KfhjC ubj™)�”}”(hŒ0``users`` number of current users of the device ”h]”(jŸ)�”}”(hŒ ``users``”h]”j~)�”}”(hjßh]”hŒusers”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KghjÙubj¹)�”}”(hhh]”hï)�”}”(hŒ%number of current users of the device”h]”hŒ%number of current users of the device”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jôh´Kghjõubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjÙubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jôh´KghjC ubj™)�”}”(hŒJ``allowed_protocols`` bitmask with the supported RC_PROTO_BIT_* protocols ”h]”(jŸ)�”}”(hŒ``allowed_protocols``”h]”j~)�”}”(hjh]”hŒallowed_protocols”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Khhjubj¹)�”}”(hhh]”hï)�”}”(hŒ3bitmask with the supported RC_PROTO_BIT_* protocols”h]”hŒ3bitmask with the supported RC_PROTO_BIT_* protocols”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j-h´Khhj.ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j-h´KhhjC ubj™)�”}”(hŒH``enabled_protocols`` bitmask with the enabled RC_PROTO_BIT_* protocols ”h]”(jŸ)�”}”(hŒ``enabled_protocols``”h]”j~)�”}”(hjQh]”hŒenabled_protocols”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KihjKubj¹)�”}”(hhh]”hï)�”}”(hŒ1bitmask with the enabled RC_PROTO_BIT_* protocols”h]”hŒ1bitmask with the enabled RC_PROTO_BIT_* protocols”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jfh´Kihjgubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjKubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jfh´KihjC ubj™)�”}”(hŒX``allowed_wakeup_protocols`` bitmask with the supported RC_PROTO_BIT_* wakeup protocols ”h]”(jŸ)�”}”(hŒ``allowed_wakeup_protocols``”h]”j~)�”}”(hjŠh]”hŒallowed_wakeup_protocols”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kkhj„ubj¹)�”}”(hhh]”hï)�”}”(hŒ:bitmask with the supported RC_PROTO_BIT_* wakeup protocols”h]”hŒ:bitmask with the supported RC_PROTO_BIT_* wakeup protocols”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”•h´Kjhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jŸh´KkhjC ubj™)�”}”(hŒ\``wakeup_protocol`` the enabled RC_PROTO_* wakeup protocol or RC_PROTO_UNKNOWN if disabled. ”h]”(jŸ)�”}”(hŒ``wakeup_protocol``”h]”j~)�”}”(hjÄh]”hŒwakeup_protocol”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kmhj¾ubj¹)�”}”(hhh]”hï)�”}”(hŒGthe enabled RC_PROTO_* wakeup protocol or RC_PROTO_UNKNOWN if disabled.”h]”hŒGthe enabled RC_PROTO_* wakeup protocol or RC_PROTO_UNKNOWN if disabled.”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KlhjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj¾ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jÙh´KmhjC ubj™)�”}”(hŒ$``scancode_filter`` scancode filter ”h]”(jŸ)�”}”(hŒ``scancode_filter``”h]”j~)�”}”(hjþh]”hŒscancode_filter”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Knhjøubj¹)�”}”(hhh]”hï)�”}”(hŒscancode filter”h]”hŒscancode filter”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jh´Knhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjøubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jh´KnhjC ubj™)�”}”(hŒ3``scancode_wakeup_filter`` scancode wakeup filters ”h]”(jŸ)�”}”(hŒ``scancode_wakeup_filter``”h]”j~)�”}”(hj7h]”hŒscancode_wakeup_filter”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kohj1ubj¹)�”}”(hhh]”hï)�”}”(hŒscancode wakeup filters”h]”hŒscancode wakeup filters”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jLh´KohjMubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jLh´KohjC ubj™)�”}”(hX@``scancode_mask`` some hardware decoders are not capable of providing the full scancode to the application. As this is a hardware limit, we can't do anything with it. Yet, as the same keycode table can be used with other devices, a mask is provided to allow its usage. Drivers should generally leave this field in blank ”h]”(jŸ)�”}”(hŒ``scancode_mask``”h]”j~)�”}”(hjph]”hŒ scancode_mask”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjnubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kthjjubj¹)�”}”(hhh]”hï)�”}”(hX-some hardware decoders are not capable of providing the full scancode to the application. As this is a hardware limit, we can't do anything with it. Yet, as the same keycode table can be used with other devices, a mask is provided to allow its usage. Drivers should generally leave this field in blank”h]”hX/some hardware decoders are not capable of providing the full scancode to the application. As this is a hardware limit, we can’t do anything with it. Yet, as the same keycode table can be used with other devices, a mask is provided to allow its usage. Drivers should generally leave this field in blank”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kphj†ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j…h´KthjC ubj™)�”}”(hŒ``priv`` driver-specific data ”h]”(jŸ)�”}”(hŒ``priv``”h]”j~)�”}”(hjªh]”hŒpriv”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kuhj¤ubj¹)�”}”(hhh]”hï)�”}”(hŒdriver-specific data”h]”hŒdriver-specific data”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j¿h´KuhjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j¿h´KuhjC ubj™)�”}”(hŒ9``keylock`` protects the remaining members of the struct ”h]”(jŸ)�”}”(hŒ ``keylock``”h]”j~)�”}”(hjãh]”hŒkeylock”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjáubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KvhjÝubj¹)�”}”(hhh]”hï)�”}”(hŒ,protects the remaining members of the struct”h]”hŒ,protects the remaining members of the struct”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jøh´Kvhjùubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjÝubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jøh´KvhjC ubj™)�”}”(hŒ2``keypressed`` whether a key is currently pressed ”h]”(jŸ)�”}”(hŒ``keypressed``”h]”j~)�”}”(hjh]”hŒ keypressed”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kwhjubj¹)�”}”(hhh]”hï)�”}”(hŒ"whether a key is currently pressed”h]”hŒ"whether a key is currently pressed”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j1h´Kwhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j1h´KwhjC ubj™)�”}”(hŒ-``last_toggle`` toggle value of last command ”h]”(jŸ)�”}”(hŒ``last_toggle``”h]”j~)�”}”(hjUh]”hŒ last_toggle”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjSubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KxhjOubj¹)�”}”(hhh]”hï)�”}”(hŒtoggle value of last command”h]”hŒtoggle value of last command”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jjh´Kxhjkubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjOubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jjh´KxhjC ubj™)�”}”(hŒ*``last_keycode`` keycode of last keypress ”h]”(jŸ)�”}”(hŒ``last_keycode``”h]”j~)�”}”(hjŽh]”hŒ last_keycode”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kyhjˆubj¹)�”}”(hhh]”hï)�”}”(hŒkeycode of last keypress”h]”hŒkeycode of last keypress”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j£h´Kyhj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjˆubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j£h´KyhjC ubj™)�”}”(hŒ,``last_protocol`` protocol of last keypress ”h]”(jŸ)�”}”(hŒ``last_protocol``”h]”j~)�”}”(hjÇh]”hŒ last_protocol”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjÅubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KzhjÁubj¹)�”}”(hhh]”hï)�”}”(hŒprotocol of last keypress”h]”hŒprotocol of last keypress”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÜh´KzhjÝubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjÁubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jÜh´KzhjC ubj™)�”}”(hŒ,``last_scancode`` scancode of last keypress ”h]”(jŸ)�”}”(hŒ``last_scancode``”h]”j~)�”}”(hjh]”hŒ last_scancode”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjþubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K{hjúubj¹)�”}”(hhh]”hï)�”}”(hŒscancode of last keypress”h]”hŒscancode of last keypress”…”�”}”(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{hjC ubj™)�”}”(hŒQ``keyup_jiffies`` time (in jiffies) when the current keypress should be released ”h]”(jŸ)�”}”(hŒ``keyup_jiffies``”h]”j~)�”}”(hj9h]”hŒ keyup_jiffies”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj7ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K|hj3ubj¹)�”}”(hhh]”hï)�”}”(hŒ>time (in jiffies) when the current keypress should be released”h]”hŒ>time (in jiffies) when the current keypress should be released”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jNh´K|hjOubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jNh´K|hjC ubj™)�”}”(hŒ/``timer_keyup`` timer for releasing a keypress ”h]”(jŸ)�”}”(hŒ``timer_keyup``”h]”j~)�”}”(hjrh]”hŒ timer_keyup”…”�”}”(hjth²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjpubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K}hjlubj¹)�”}”(hhh]”hï)�”}”(hŒtimer for releasing a keypress”h]”hŒtimer for releasing a keypress”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j‡h´K}hjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjlubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j‡h´K}hjC ubj™)�”}”(hŒf``timer_repeat`` timer for autorepeat events. This is needed for CEC, which has non-standard repeats. ”h]”(jŸ)�”}”(hŒ``timer_repeat``”h]”j~)�”}”(hj«h]”hŒ timer_repeat”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj©ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Khj¥ubj¹)�”}”(hhh]”hï)�”}”(hŒTtimer for autorepeat events. This is needed for CEC, which has non-standard repeats.”h]”hŒTtimer for autorepeat events. This is needed for CEC, which has non-standard repeats.”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K~hjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jÀh´KhjC ubj™)�”}”(hŒ@``timeout`` optional time after which device stops sending data ”h]”(jŸ)�”}”(hŒ ``timeout``”h]”j~)�”}”(hjåh]”hŒtimeout”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjãubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K€hjßubj¹)�”}”(hhh]”hï)�”}”(hŒ3optional time after which device stops sending data”h]”hŒ3optional time after which device stops sending data”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³júh´K€hjûubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjßubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³júh´K€hjC ubj™)�”}”(hŒ4``min_timeout`` minimum timeout supported by device ”h]”(jŸ)�”}”(hŒ``min_timeout``”h]”j~)�”}”(hjh]”hŒ min_timeout”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K�hjubj¹)�”}”(hhh]”hï)�”}”(hŒ#minimum timeout supported by device”h]”hŒ#minimum timeout supported by device”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j3h´K�hj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j3h´K�hjC ubj™)�”}”(hŒ4``max_timeout`` maximum timeout supported by device ”h]”(jŸ)�”}”(hŒ``max_timeout``”h]”j~)�”}”(hjWh]”hŒ max_timeout”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjUubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K‚hjQubj¹)�”}”(hhh]”hï)�”}”(hŒ#maximum timeout supported by device”h]”hŒ#maximum timeout supported by device”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jlh´K‚hjmubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjQubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jlh´K‚hjC ubj™)�”}”(hŒ6``rx_resolution`` resolution (in us) of input sampler ”h]”(jŸ)�”}”(hŒ``rx_resolution``”h]”j~)�”}”(hj�h]”hŒ rx_resolution”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjŽubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KƒhjŠubj¹)�”}”(hhh]”hï)�”}”(hŒ#resolution (in us) of input sampler”h]”hŒ#resolution (in us) of input sampler”…”�”}”(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ƒhjC ubj™)�”}”(hŒ``lirc_dev`` lirc device ”h]”(jŸ)�”}”(hŒ ``lirc_dev``”h]”j~)�”}”(hjÉh]”hŒlirc_dev”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K„hjÃubj¹)�”}”(hhh]”hï)�”}”(hŒ lirc device”h]”hŒ lirc device”…”�”}”(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„hjC ubj™)�”}”(hŒ``lirc_cdev`` lirc char cdev ”h]”(jŸ)�”}”(hŒ ``lirc_cdev``”h]”j~)�”}”(hjh]”hŒ lirc_cdev”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K…hjüubj¹)�”}”(hhh]”hï)�”}”(hŒlirc char cdev”h]”hŒlirc char cdev”…”�”}”(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…hjC ubj™)�”}”(hŒ;``gap_start`` start time for gap after timeout if non-zero ”h]”(jŸ)�”}”(hŒ ``gap_start``”h]”j~)�”}”(hj;h]”hŒ gap_start”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K†hj5ubj¹)�”}”(hhh]”hï)�”}”(hŒ,start time for gap after timeout if non-zero”h]”hŒ,start time for gap after timeout if non-zero”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jPh´K†hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jPh´K†hjC ubj™)�”}”(hŒ'``lirc_fh_lock`` protects lirc_fh list ”h]”(jŸ)�”}”(hŒ``lirc_fh_lock``”h]”j~)�”}”(hjth]”hŒ lirc_fh_lock”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjrubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K‡hjnubj¹)�”}”(hhh]”hï)�”}”(hŒprotects lirc_fh list”h]”hŒprotects lirc_fh list”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j‰h´K‡hjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjnubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j‰h´K‡hjC ubj™)�”}”(hŒ``lirc_fh`` list of open files ”h]”(jŸ)�”}”(hŒ ``lirc_fh``”h]”j~)�”}”(hj­h]”hŒlirc_fh”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kˆhj§ubj¹)�”}”(hhh]”hï)�”}”(hŒlist of open files”h]”hŒlist of open files”…”�”}”(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ˆhjC ubj™)�”}”(hŒJ``change_protocol`` allow changing the protocol used on hardware decoders ”h]”(jŸ)�”}”(hŒ``change_protocol``”h]”j~)�”}”(hjæh]”hŒchange_protocol”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjäubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K‰hjàubj¹)�”}”(hhh]”hï)�”}”(hŒ5allow changing the protocol used on hardware decoders”h]”hŒ5allow changing the protocol used on hardware decoders”…”�”}”(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‰hjC ubj™)�”}”(hŒY``open`` callback to allow drivers to enable polling/irq when IR input device is opened. ”h]”(jŸ)�”}”(hŒ``open``”h]”j~)�”}”(hjh]”hŒopen”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K‹hjubj¹)�”}”(hhh]”hï)�”}”(hŒOcallback to allow drivers to enable polling/irq when IR input device is opened.”h]”hŒOcallback to allow drivers to enable polling/irq when IR input device is opened.”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KŠhj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j4h´K‹hjC ubj™)�”}”(hŒ[``close`` callback to allow drivers to disable polling/irq when IR input device is opened. ”h]”(jŸ)�”}”(hŒ ``close``”h]”j~)�”}”(hjYh]”hŒclose”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K�hjSubj¹)�”}”(hhh]”hï)�”}”(hŒPcallback to allow drivers to disable polling/irq when IR input device is opened.”h]”hŒPcallback to allow drivers to disable polling/irq when IR input device is opened.”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KŒhjoubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjSubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jnh´K�hjC ubj™)�”}”(hŒJ``s_tx_mask`` set transmitter mask (for devices with multiple tx outputs) ”h]”(jŸ)�”}”(hŒ ``s_tx_mask``”h]”j~)�”}”(hj“h]”hŒ s_tx_mask”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KŽhj�ubj¹)�”}”(hhh]”hï)�”}”(hŒ;set transmitter mask (for devices with multiple tx outputs)”h]”hŒ;set transmitter mask (for devices with multiple tx outputs)”…”�”}”(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ŽhjC ubj™)�”}”(hŒ0``s_tx_carrier`` set transmit carrier frequency ”h]”(jŸ)�”}”(hŒ``s_tx_carrier``”h]”j~)�”}”(hjÌh]”hŒ s_tx_carrier”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K�hjÆubj¹)�”}”(hhh]”hï)�”}”(hŒset transmit carrier frequency”h]”hŒset transmit carrier frequency”…”�”}”(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�hjC ubj™)�”}”(hŒ8``s_tx_duty_cycle`` set transmit duty cycle (0% - 100%) ”h]”(jŸ)�”}”(hŒ``s_tx_duty_cycle``”h]”j~)�”}”(hjh]”hŒs_tx_duty_cycle”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K�hjÿubj¹)�”}”(hhh]”hï)�”}”(hŒ#set transmit duty cycle (0% - 100%)”h]”hŒ#set transmit duty cycle (0% - 100%)”…”�”}”(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�hjC ubj™)�”}”(hŒL``s_rx_carrier_range`` inform driver about carrier it is expected to handle ”h]”(jŸ)�”}”(hŒ``s_rx_carrier_range``”h]”j~)�”}”(hj>h]”hŒs_rx_carrier_range”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K‘hj8ubj¹)�”}”(hhh]”hï)�”}”(hŒ4inform driver about carrier it is expected to handle”h]”hŒ4inform driver about carrier it is expected to handle”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jSh´K‘hjTubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj8ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jSh´K‘hjC ubj™)�”}”(hŒ``tx_ir`` transmit IR ”h]”(jŸ)�”}”(hŒ ``tx_ir``”h]”j~)�”}”(hjwh]”hŒtx_ir”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjuubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K’hjqubj¹)�”}”(hhh]”hï)�”}”(hŒ transmit IR”h]”hŒ transmit IR”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jŒh´K’hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjqubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jŒh´K’hjC ubj™)�”}”(hŒp``s_idle`` enable/disable hardware idle mode, upon which, device doesn't interrupt host until it sees IR pulses ”h]”(jŸ)�”}”(hŒ ``s_idle``”h]”j~)�”}”(hj°h]”hŒs_idle”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K”hjªubj¹)�”}”(hhh]”hï)�”}”(hŒdenable/disable hardware idle mode, upon which, device doesn't interrupt host until it sees IR pulses”h]”hŒfenable/disable hardware idle mode, upon which, device doesn’t interrupt host until it sees IR pulses”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K“hjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjªubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jÅh´K”hjC ubj™)�”}”(hŒD``s_wideband_receiver`` enable wide band receiver used for learning ”h]”(jŸ)�”}”(hŒ``s_wideband_receiver``”h]”j~)�”}”(hjêh]”hŒs_wideband_receiver”…”�”}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjèubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K•hjäubj¹)�”}”(hhh]”hï)�”}”(hŒ+enable wide band receiver used for learning”h]”hŒ+enable wide band receiver used for learning”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jÿh´K•hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjäubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jÿh´K•hjC ubj™)�”}”(hŒ,``s_carrier_report`` enable carrier reports ”h]”(jŸ)�”}”(hŒ``s_carrier_report``”h]”j~)�”}”(hj#h]”hŒs_carrier_report”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K–hjubj¹)�”}”(hhh]”hï)�”}”(hŒenable carrier reports”h]”hŒenable carrier reports”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j8h´K–hj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j8h´K–hjC ubj™)�”}”(hŒ%``s_filter`` set the scancode filter ”h]”(jŸ)�”}”(hŒ ``s_filter``”h]”j~)�”}”(hj\h]”hŒs_filter”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjZubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K—hjVubj¹)�”}”(hhh]”hï)�”}”(hŒset the scancode filter”h]”hŒset the scancode filter”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jqh´K—hjrubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjVubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jqh´K—hjC ubj™)�”}”(hŒ¬``s_wakeup_filter`` set the wakeup scancode filter. If the mask is zero then wakeup should be disabled. wakeup_protocol will be set to a valid protocol if mask is nonzero. ”h]”(jŸ)�”}”(hŒ``s_wakeup_filter``”h]”j~)�”}”(hj•h]”hŒs_wakeup_filter”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj“ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kšhj�ubj¹)�”}”(hhh]”hï)�”}”(hŒ—set the wakeup scancode filter. If the mask is zero then wakeup should be disabled. wakeup_protocol will be set to a valid protocol if mask is nonzero.”h]”hŒ—set the wakeup scancode filter. If the mask is zero then wakeup should be disabled. wakeup_protocol will be set to a valid protocol if mask is nonzero.”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K˜hj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jªh´KšhjC ubj™)�”}”(hŒ(``s_timeout`` set hardware timeout in us”h]”(jŸ)�”}”(hŒ ``s_timeout``”h]”j~)�”}”(hjÏh]”hŒ s_timeout”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KšhjÉubj¹)�”}”(hhh]”hï)�”}”(hŒset hardware timeout in us”h]”hŒset hardware timeout in us”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´K›hjåubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjÉubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jäh´KšhjC ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hjû ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒrc_allocate_device (C function)”Œc.rc_allocate_device”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒ8struct rc_dev * rc_allocate_device (enum rc_driver_type)”h]”jò)�”}”(hŒ6struct rc_dev *rc_allocate_device(enum rc_driver_type)”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj%h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kçubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj%h²hh³j6h´Kçubh)�”}”(hhh]”j!)�”}”(hŒrc_dev”h]”hŒrc_dev”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjEubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”Œ identifier”Œ reftarget”jJŒmodname”NŒ classname”NŒ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”jcŒ ASTIdentifier”“”)�”}”j^Œrc_allocate_device”sbŒc.rc_allocate_device”†”asbuh1hhj%h²hh³j6h´Kçubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj%h²hh³j6h´KçubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jhj%h²hh³j6h´Kçubj)�”}”(hŒrc_allocate_device”h]”j!)�”}”(hjnh]”hŒrc_allocate_device”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj�ubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhj%h²hh³j6h´KçubhŒdesc_parameterlist”“”)�”}”(hŒ(enum rc_driver_type)”h]”hŒdesc_parameter”“”)�”}”(hŒenum rc_driver_type”h]”(jø)�”}”(hjûh]”hŒenum”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj¯ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¯ubh)�”}”(hhh]”j!)�”}”(hŒrc_driver_type”h]”hŒrc_driver_type”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjÎubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j^Œ reftarget”jÓŒmodname”NŒ classname”Njbje)�”}”jh]”jlŒc.rc_allocate_device”†”asbuh1hhj¯ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j­hj©ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j§hj%h²hh³j6h´Kçubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj>ˆuh1jñj?j@hj!h²hh³j6h´Kçubah}”(h]”jah ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³j6h´Kçhjh²hubjM)�”}”(hhh]”hï)�”}”(hŒAllocates a RC device”h]”hŒAllocates a RC device”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kçhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjh²hh³j6h´Kçubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”jmj jnj#joj#jp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hŒƒ**Parameters** ``enum rc_driver_type`` specifies the type of the RC output to be allocated returns a pointer to struct rc_dev.”h]”(hï)�”}”(hŒ**Parameters**”h]”j~)�”}”(hj-h]”hŒ Parameters”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Këhj'ubj”)�”}”(hhh]”j™)�”}”(hŒo``enum rc_driver_type`` specifies the type of the RC output to be allocated returns a pointer to struct rc_dev.”h]”(jŸ)�”}”(hŒ``enum rc_driver_type``”h]”j~)�”}”(hjLh]”hŒenum rc_driver_type”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KéhjFubj¹)�”}”(hhh]”hï)�”}”(hŒWspecifies the type of the RC output to be allocated returns a pointer to struct rc_dev.”h]”hŒWspecifies the type of the RC output to be allocated returns a pointer to struct rc_dev.”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jah´Kéhjbubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjFubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jah´KéhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hj'ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒ$devm_rc_allocate_device (C function)”Œc.devm_rc_allocate_device”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒQstruct rc_dev * devm_rc_allocate_device (struct device *dev, enum rc_driver_type)”h]”jò)�”}”(hŒOstruct rc_dev *devm_rc_allocate_device(struct device *dev, enum rc_driver_type)”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj¡h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kïubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj³h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¡h²hh³j²h´Kïubh)�”}”(hhh]”j!)�”}”(hŒrc_dev”h]”hŒrc_dev”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjÁubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j^Œ reftarget”jÆŒmodname”NŒ classname”Njbje)�”}”jh]”jk)�”}”j^Œdevm_rc_allocate_device”sbŒc.devm_rc_allocate_device”†”asbuh1hhj¡h²hh³j²h´Kïubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¡h²hh³j²h´Kïubj€)�”}”(hjƒh]”hŒ*”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”jŒah"]”h$]”h&]”uh1jhj¡h²hh³j²h´Kïubj)�”}”(hŒdevm_rc_allocate_device”h]”j!)�”}”(hjâh]”hŒdevm_rc_allocate_device”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhj¡h²hh³j²h´Kïubj¨)�”}”(hŒ)(struct device *dev, enum rc_driver_type)”h]”(j®)�”}”(hŒstruct device *dev”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjubh)�”}”(hhh]”j!)�”}”(hŒdevice”h]”hŒdevice”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj:ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j^Œ reftarget”j?Œmodname”NŒ classname”Njbje)�”}”jh]”jàŒc.devm_rc_allocate_device”†”asbuh1hhjubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjubj€)�”}”(hjƒh]”hŒ*”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”jŒah"]”h$]”h&]”uh1jhjubj!)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j­hjubj®)�”}”(hŒenum rc_driver_type”h]”(jø)�”}”(hjûh]”hŒenum”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj‹ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjœh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj‹ubh)�”}”(hhh]”j!)�”}”(hŒrc_driver_type”h]”hŒrc_driver_type”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjªubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j^Œ reftarget”j¯Œmodname”NŒ classname”Njbje)�”}”jh]”jàŒc.devm_rc_allocate_device”†”asbuh1hhj‹ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j­hjubeh}”(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 ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³j²h´Kïhjšh²hubjM)�”}”(hhh]”hï)�”}”(hŒManaged RC device allocation”h]”hŒManaged RC device allocation”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kïhjäh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjšh²hh³j²h´Kïubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”jmj jnjÿjojÿjp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hŒ¶**Parameters** ``struct device *dev`` pointer to struct device ``enum rc_driver_type`` specifies the type of the RC output to be allocated returns a pointer to struct rc_dev.”h]”(hï)�”}”(hŒ**Parameters**”h]”j~)�”}”(hj h]”hŒ Parameters”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kóhjubj”)�”}”(hhh]”(j™)�”}”(hŒ0``struct device *dev`` pointer to struct device ”h]”(jŸ)�”}”(hŒ``struct device *dev``”h]”j~)�”}”(hj(h]”hŒstruct device *dev”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kñhj"ubj¹)�”}”(hhh]”hï)�”}”(hŒpointer to struct device”h]”hŒpointer to struct device”…”�”}”(hjAh²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Œo``enum rc_driver_type`` specifies the type of the RC output to be allocated returns a pointer to struct rc_dev.”h]”(jŸ)�”}”(hŒ``enum rc_driver_type``”h]”j~)�”}”(hjah]”hŒenum rc_driver_type”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kòhj[ubj¹)�”}”(hhh]”hï)�”}”(hŒWspecifies the type of the RC output to be allocated returns a pointer to struct rc_dev.”h]”hŒWspecifies the type of the RC output to be allocated returns a pointer to struct rc_dev.”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jvh´Kòhjwubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jvh´Kòhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒrc_free_device (C function)”Œc.rc_free_device”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒ(void rc_free_device (struct rc_dev *dev)”h]”jò)�”}”(hŒ'void rc_free_device(struct rc_dev *dev)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1jºhj¶h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Køubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¶h²hh³jËh´Køubj)�”}”(hŒrc_free_device”h]”j!)�”}”(hŒrc_free_device”h]”hŒrc_free_device”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjÚubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhj¶h²hh³jËh´Køubj¨)�”}”(hŒ(struct rc_dev *dev)”h]”j®)�”}”(hŒstruct rc_dev *dev”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjöubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjöubh)�”}”(hhh]”j!)�”}”(hŒrc_dev”h]”hŒrc_dev”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j^Œ reftarget”jŒmodname”NŒ classname”Njbje)�”}”jh]”jk)�”}”j^jàsbŒc.rc_free_device”†”asbuh1hhjöubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjöubj€)�”}”(hjƒh]”hŒ*”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”jŒah"]”h$]”h&]”uh1jhjöubj!)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjöubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j­hjòubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j§hj¶h²hh³jËh´Køubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj>ˆuh1jñj?j@hj²h²hh³jËh´Køubah}”(h]”j­ah ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³jËh´Køhj¯h²hubjM)�”}”(hhh]”hï)�”}”(hŒFrees a RC device”h]”hŒFrees a RC device”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Køhjzh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj¯h²hh³jËh´Køubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”jmj jnj•joj•jp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hŒB**Parameters** ``struct rc_dev *dev`` pointer to struct rc_dev.”h]”(hï)�”}”(hŒ**Parameters**”h]”j~)�”}”(hjŸh]”hŒ Parameters”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kühj™ubj”)�”}”(hhh]”j™)�”}”(hŒ0``struct rc_dev *dev`` pointer to struct rc_dev.”h]”(jŸ)�”}”(hŒ``struct rc_dev *dev``”h]”j~)�”}”(hj¾h]”hŒstruct rc_dev *dev”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kþhj¸ubj¹)�”}”(hhh]”hï)�”}”(hŒpointer to struct rc_dev.”h]”hŒpointer to struct rc_dev.”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”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™ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒrc_register_device (C function)”Œc.rc_register_device”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒ+int rc_register_device (struct rc_dev *dev)”h]”jò)�”}”(hŒ*int rc_register_device(struct rc_dev *dev)”h]”(j»)�”}”(hŒint”h]”hŒint”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Kÿubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjh²hh³j&h´Kÿubj)�”}”(hŒrc_register_device”h]”j!)�”}”(hŒrc_register_device”h]”hŒrc_register_device”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj5ubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhjh²hh³j&h´Kÿubj¨)�”}”(hŒ(struct rc_dev *dev)”h]”j®)�”}”(hŒstruct rc_dev *dev”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjQubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjQubh)�”}”(hhh]”j!)�”}”(hŒrc_dev”h]”hŒrc_dev”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjpubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j^Œ reftarget”juŒmodname”NŒ classname”Njbje)�”}”jh]”jk)�”}”j^j;sbŒc.rc_register_device”†”asbuh1hhjQubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjQubj€)�”}”(hjƒh]”hŒ*”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”jŒah"]”h$]”h&]”uh1jhjQubj!)�”}”(hŒdev”h]”hŒdev”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjQubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j­hjMubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j§hjh²hh³j&h´Kÿubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj>ˆuh1jñj?j@hjh²hh³j&h´Kÿubah}”(h]”j ah ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³j&h´Kÿhj h²hubjM)�”}”(hhh]”hï)�”}”(hŒRegisters a RC device”h]”hŒRegisters a RC device”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´KÿhjÕh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj h²hh³j&h´Kÿubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”jmj jnjðjojðjp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hŒB**Parameters** ``struct rc_dev *dev`` pointer to struct rc_dev.”h]”(hï)�”}”(hŒ**Parameters**”h]”j~)�”}”(hjúh]”hŒ Parameters”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjøubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Mhjôubj”)�”}”(hhh]”j™)�”}”(hŒ0``struct rc_dev *dev`` pointer to struct rc_dev.”h]”(jŸ)�”}”(hŒ``struct rc_dev *dev``”h]”j~)�”}”(hjh]”hŒstruct rc_dev *dev”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Mhjubj¹)�”}”(hhh]”hï)�”}”(hŒpointer to struct rc_dev.”h]”hŒpointer to struct rc_dev.”…”�”}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Mhj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j.h´Mhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjôubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒ$devm_rc_register_device (C function)”Œc.devm_rc_register_device”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒGint devm_rc_register_device (struct device *parent, struct rc_dev *dev)”h]”jò)�”}”(hŒFint devm_rc_register_device(struct device *parent, struct rc_dev *dev)”h]”(j»)�”}”(hŒint”h]”hŒint”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjoh²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Mubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjoh²hh³j�h´Mubj)�”}”(hŒdevm_rc_register_device”h]”j!)�”}”(hŒdevm_rc_register_device”h]”hŒdevm_rc_register_device”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj�ubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhjoh²hh³j�h´Mubj¨)�”}”(hŒ+(struct device *parent, struct rc_dev *dev)”h]”(j®)�”}”(hŒstruct device *parent”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj¬ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¬ubh)�”}”(hhh]”j!)�”}”(hŒdevice”h]”hŒdevice”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjËubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j^Œ reftarget”jÐŒmodname”NŒ classname”Njbje)�”}”jh]”jk)�”}”j^j–sbŒc.devm_rc_register_device”†”asbuh1hhj¬ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¬ubj€)�”}”(hjƒh]”hŒ*”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”jŒah"]”h$]”h&]”uh1jhj¬ubj!)�”}”(hŒparent”h]”hŒparent”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj¬ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j­hj¨ubj®)�”}”(hŒstruct rc_dev *dev”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjubh)�”}”(hhh]”j!)�”}”(hŒrc_dev”h]”hŒrc_dev”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj=ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j^Œ reftarget”jBŒmodname”NŒ classname”Njbje)�”}”jh]”jêŒc.devm_rc_register_device”†”asbuh1hhjubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj^h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjubj€)�”}”(hjƒh]”hŒ*”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”jŒah"]”h$]”h&]”uh1jhjubj!)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j­hj¨ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j§hjoh²hh³j�h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj>ˆuh1jñj?j@hjkh²hh³j�h´Mubah}”(h]”jfah ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³j�h´Mhjhh²hubjM)�”}”(hhh]”hï)�”}”(hŒ$Manageded registering of a RC device”h]”hŒ$Manageded registering of a RC device”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Mhj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjhh²hh³j�h´Mubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”jmj jnj»joj»jp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hŒy**Parameters** ``struct device *parent`` pointer to struct device. ``struct rc_dev *dev`` pointer to struct rc_dev.”h]”(hï)�”}”(hŒ**Parameters**”h]”j~)�”}”(hjÅh]”hŒ Parameters”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´M hj¿ubj”)�”}”(hhh]”(j™)�”}”(hŒ4``struct device *parent`` pointer to struct device. ”h]”(jŸ)�”}”(hŒ``struct device *parent``”h]”j~)�”}”(hjäh]”hŒstruct device *parent”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´MhjÞubj¹)�”}”(hhh]”hï)�”}”(hŒpointer to struct device.”h]”hŒpointer to struct device.”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jùh´Mhjúubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjÞubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jùh´MhjÛubj™)�”}”(hŒ0``struct rc_dev *dev`` pointer to struct rc_dev.”h]”(jŸ)�”}”(hŒ``struct rc_dev *dev``”h]”j~)�”}”(hj h]”hŒstruct rc_dev *dev”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´M hj ubj¹)�”}”(hhh]”hï)�”}”(hŒpointer to struct rc_dev.”h]”hŒpointer to struct rc_dev.”…”�”}”(hj6 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´M hj3 ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j2 h´M hjÛubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hj¿ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒ!rc_unregister_device (C function)”Œc.rc_unregister_device”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒ.void rc_unregister_device (struct rc_dev *dev)”h]”jò)�”}”(hŒ-void rc_unregister_device(struct rc_dev *dev)”h]”(j»)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjs h²hh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Mubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj† h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjs h²hh³j… h´Mubj)�”}”(hŒrc_unregister_device”h]”j!)�”}”(hŒrc_unregister_device”h]”hŒrc_unregister_device”…”�”}”(hj˜ h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj” ubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhjs h²hh³j… h´Mubj¨)�”}”(hŒ(struct rc_dev *dev)”h]”j®)�”}”(hŒstruct rc_dev *dev”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hj´ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj° ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÁ h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj° ubh)�”}”(hhh]”j!)�”}”(hŒrc_dev”h]”hŒrc_dev”…”�”}”(hjÒ h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjÏ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j^Œ reftarget”jÔ Œmodname”NŒ classname”Njbje)�”}”jh]”jk)�”}”j^jš sbŒc.rc_unregister_device”†”asbuh1hhj° ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjò h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj° ubj€)�”}”(hjƒh]”hŒ*”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”jŒah"]”h$]”h&]”uh1jhj° ubj!)�”}”(hŒdev”h]”hŒdev”…”�”}”(hj !h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj° ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j­hj¬ ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j§hjs h²hh³j… h´Mubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj>ˆuh1jñj?j@hjo h²hh³j… h´Mubah}”(h]”jj ah ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³j… h´Mhjl h²hubjM)�”}”(hhh]”hï)�”}”(hŒUnregisters a RC device”h]”hŒUnregisters a RC device”…”�”}”(hj7!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Mhj4!h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjl h²hh³j… h´Mubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”jmj jnjO!jojO!jp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hŒB**Parameters** ``struct rc_dev *dev`` pointer to struct rc_dev.”h]”(hï)�”}”(hŒ**Parameters**”h]”j~)�”}”(hjY!h]”hŒ Parameters”…”�”}”(hj[!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjW!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´MhjS!ubj”)�”}”(hhh]”j™)�”}”(hŒ0``struct rc_dev *dev`` pointer to struct rc_dev.”h]”(jŸ)�”}”(hŒ``struct rc_dev *dev``”h]”j~)�”}”(hjx!h]”hŒstruct rc_dev *dev”…”�”}”(hjz!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjv!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´Mhjr!ubj¹)�”}”(hhh]”hï)�”}”(hŒpointer to struct rc_dev.”h]”hŒpointer to struct rc_dev.”…”�”}”(hj‘!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ`/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:86: ./include/media/rc-core.h”h´MhjŽ!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjr!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j�!h´Mhjo!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hjS!ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒrc_map_table (C struct)”Œc.rc_map_table”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒ rc_map_table”h]”jò)�”}”(hŒstruct rc_map_table”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hjÒ!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjÎ!h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´Kubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjà!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÎ!h²hh³jß!h´Kubj)�”}”(hŒ rc_map_table”h]”j!)�”}”(hjÌ!h]”hŒ rc_map_table”…”�”}”(hjò!h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjî!ubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhjÎ!h²hh³jß!h´Kubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj>ˆuh1jñj?j@hjÊ!h²hh³jß!h´Kubah}”(h]”jÅ!ah ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³jß!h´KhjÇ!h²hubjM)�”}”(hhh]”hï)�”}”(hŒ"represents a scancode/keycode pair”h]”hŒ"represents a scancode/keycode pair”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K‡hj"h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjÇ!h²hh³jß!h´Kubeh}”(h]”h ]”(j Œstruct”eh"]”h$]”h&]”jmj jnj,"joj,"jp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hŒ¥**Definition**:: struct rc_map_table { u64 scancode; u32 keycode; }; **Members** ``scancode`` scan code (u64) ``keycode`` Linux input keycode”h]”(hï)�”}”(hŒ**Definition**::”h]”(j~)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj8"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj4"ubhŒ:”…”�”}”(hj4"h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K‹hj0"ubjñ)�”}”(hŒ;struct rc_map_table { u64 scancode; u32 keycode; };”h]”hŒ;struct rc_map_table { u64 scancode; u32 keycode; };”…”�”}”hjQ"sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jðh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K�hj0"ubhï)�”}”(hŒ **Members**”h]”j~)�”}”(hjb"h]”hŒMembers”…”�”}”(hjd"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj`"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K’hj0"ubj”)�”}”(hhh]”(j™)�”}”(hŒ``scancode`` scan code (u64) ”h]”(jŸ)�”}”(hŒ ``scancode``”h]”j~)�”}”(hj�"h]”hŒscancode”…”�”}”(hjƒ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´KŠhj{"ubj¹)�”}”(hhh]”hï)�”}”(hŒscan code (u64)”h]”hŒscan code (u64)”…”�”}”(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Šhjx"ubj™)�”}”(hŒ``keycode`` Linux input keycode”h]”(jŸ)�”}”(hŒ ``keycode``”h]”j~)�”}”(hjº"h]”hŒkeycode”…”�”}”(hj¼"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj¸"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´KŠhj´"ubj¹)�”}”(hhh]”hï)�”}”(hŒLinux input keycode”h]”hŒLinux input keycode”…”�”}”(hjÓ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K‹hjÐ"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj´"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jÏ"h´KŠhjx"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hj0"ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒrc_map (C struct)”Œc.rc_map”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒrc_map”h]”jò)�”}”(hŒ struct rc_map”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj#h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K‘ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj"#h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj#h²hh³j!#h´K‘ubj)�”}”(hŒrc_map”h]”j!)�”}”(hj#h]”hŒrc_map”…”�”}”(hj4#h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj0#ubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhj#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 ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³j!#h´K‘hj #h²hubjM)�”}”(hhh]”hï)�”}”(hŒrepresents a keycode map table”h]”hŒrepresents a keycode map table”…”�”}”(hjV#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K’hjS#h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj #h²hh³j!#h´K‘ubeh}”(h]”h ]”(j Œstruct”eh"]”h$]”h&]”jmj jnjn#jojn#jp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hX�**Definition**:: struct rc_map { struct rc_map_table *scan; unsigned int size; unsigned int len; unsigned int alloc; enum rc_proto rc_proto; const char *name; spinlock_t lock; }; **Members** ``scan`` pointer to struct :c:type:`rc_map_table` ``size`` Max number of entries ``len`` Number of entries that are in use ``alloc`` size of \*scan, in bytes ``rc_proto`` type of the remote controller protocol, as defined at enum :c:type:`rc_proto` ``name`` name of the key map table ``lock`` lock to protect access to this structure”h]”(hï)�”}”(hŒ**Definition**::”h]”(j~)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjz#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjv#ubhŒ:”…”�”}”(hjv#h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K–hjr#ubjñ)�”}”(hŒùstruct rc_map { struct rc_map_table *scan; unsigned int size; unsigned int len; unsigned int alloc; enum rc_proto rc_proto; const char *name; spinlock_t lock; };”h]”hŒùstruct rc_map { struct rc_map_table *scan; unsigned int size; unsigned int len; unsigned int alloc; enum rc_proto rc_proto; const char *name; spinlock_t lock; };”…”�”}”hj“#sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jðh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K˜hjr#ubhï)�”}”(hŒ **Members**”h]”j~)�”}”(hj¤#h]”hŒMembers”…”�”}”(hj¦#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj¢#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K¢hjr#ubj”)�”}”(hhh]”(j™)�”}”(hŒ2``scan`` pointer to struct :c:type:`rc_map_table` ”h]”(jŸ)�”}”(hŒ``scan``”h]”j~)�”}”(hjÃ#h]”hŒscan”…”�”}”(hjÅ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjÁ#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K•hj½#ubj¹)�”}”(hhh]”hï)�”}”(hŒ(pointer to struct :c:type:`rc_map_table`”h]”(hŒpointer to struct ”…”�”}”(hjÜ#h²hh³Nh´Nubh)�”}”(hŒ:c:type:`rc_map_table`”h]”j~)�”}”(hjæ#h]”hŒ rc_map_table”…”�”}”(hjè#h²hh³Nh´Nubah}”(h]”h ]”(jŸj Œc-type”eh"]”h$]”h&]”uh1j}hjä#ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jbje)�”}”jh]”sbj±Œ rc_map_table”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Œ``size`` Max number of entries ”h]”(jŸ)�”}”(hŒ``size``”h]”j~)�”}”(hj$h]”hŒsize”…”�”}”(hj $h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K–hj$ubj¹)�”}”(hhh]”hï)�”}”(hŒMax number of entries”h]”hŒMax number of entries”…”�”}”(hj7$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j3$h´K–hj4$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j3$h´K–hjº#ubj™)�”}”(hŒ*``len`` Number of entries that are in use ”h]”(jŸ)�”}”(hŒ``len``”h]”j~)�”}”(hjW$h]”hŒlen”…”�”}”(hjY$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjU$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K—hjQ$ubj¹)�”}”(hhh]”hï)�”}”(hŒ!Number of entries that are in use”h]”hŒ!Number of entries that are in use”…”�”}”(hjp$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³jl$h´K—hjm$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjQ$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jl$h´K—hjº#ubj™)�”}”(hŒ#``alloc`` size of \*scan, in bytes ”h]”(jŸ)�”}”(hŒ ``alloc``”h]”j~)�”}”(hj�$h]”hŒalloc”…”�”}”(hj’$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjŽ$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K˜hjŠ$ubj¹)�”}”(hhh]”hï)�”}”(hŒsize of \*scan, in bytes”h]”hŒsize of *scan, in bytes”…”�”}”(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Œ[``rc_proto`` type of the remote controller protocol, as defined at enum :c:type:`rc_proto` ”h]”(jŸ)�”}”(hŒ ``rc_proto``”h]”j~)�”}”(hjÉ$h]”hŒrc_proto”…”�”}”(hjË$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjÇ$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´KšhjÃ$ubj¹)�”}”(hhh]”hï)�”}”(hŒMtype of the remote controller protocol, as defined at enum :c:type:`rc_proto`”h]”(hŒ;type of the remote controller protocol, as defined at enum ”…”�”}”(hjâ$h²hh³Nh´Nubh)�”}”(hŒ:c:type:`rc_proto`”h]”j~)�”}”(hjì$h]”hŒrc_proto”…”�”}”(hjî$h²hh³Nh´Nubah}”(h]”h ]”(jŸj Œc-type”eh"]”h$]”h&]”uh1j}hjê$ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jbj$j±Œrc_proto”uh1hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.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º#ubj™)�”}”(hŒ#``name`` name of the key map table ”h]”(jŸ)�”}”(hŒ``name``”h]”j~)�”}”(hj"%h]”hŒname”…”�”}”(hj$%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj %ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K›hj%ubj¹)�”}”(hhh]”hï)�”}”(hŒname of the key map table”h]”hŒname of the key map table”…”�”}”(hj;%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³j7%h´K›hj8%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³j7%h´K›hjº#ubj™)�”}”(hŒ1``lock`` lock to protect access to this structure”h]”(jŸ)�”}”(hŒ``lock``”h]”j~)�”}”(hj[%h]”hŒlock”…”�”}”(hj]%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjY%uba•FOh}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K›hjU%ubj¹)�”}”(hhh]”hï)�”}”(hŒ(lock to protect access to this structure”h]”hŒ(lock to protect access to this structure”…”�”}”(hjt%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´Kœhjq%ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hjU%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jp%h´K›hjº#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“hjr#ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒrc_map_list (C struct)”Œ c.rc_map_list”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒ rc_map_list”h]”jò)�”}”(hŒstruct rc_map_list”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hjµ%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj±%h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K¢ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÃ%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj±%h²hh³jÂ%h´K¢ubj)�”}”(hŒ rc_map_list”h]”j!)�”}”(hj¯%h]”hŒ rc_map_list”…”�”}”(hjÕ%h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjÑ%ubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhj±%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 ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³jÂ%h´K¢hjª%h²hubjM)�”}”(hhh]”hï)�”}”(hŒ,list of the registered :c:type:`rc_map` maps”h]”(hŒlist of the registered ”…”�”}”(hj÷%h²hh³Nh´Nubh)�”}”(hŒ:c:type:`rc_map`”h]”j~)�”}”(hj&h]”hŒrc_map”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”(jŸj Œc-type”eh"]”h$]”h&]”uh1j}hjÿ%ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jbje)�”}”jh]”jk)�”}”j^j¯%sbŒ c.rc_map_list”†”asbj±Œrc_map”uh1hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´Khj÷%ubhŒ maps”…”�”}”(hj÷%h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K¨hjô%h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjª%h²hh³jÂ%h´K¢ubeh}”(h]”h ]”(j Œstruct”eh"]”h$]”h&]”jmj jnj:&joj:&jp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hŒØ**Definition**:: struct rc_map_list { struct list_head list; struct rc_map map; }; **Members** ``list`` pointer to struct :c:type:`list_head` ``map`` pointer to struct :c:type:`rc_map`”h]”(hï)�”}”(hŒ**Definition**::”h]”(j~)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hjF&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjB&ubhŒ:”…”�”}”(hjB&h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K¬hj>&ubjñ)�”}”(hŒQstruct rc_map_list { struct list_head list; struct rc_map map; };”h]”hŒQstruct rc_map_list { struct list_head list; struct rc_map map; };”…”�”}”hj_&sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jðh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K®hj>&ubhï)�”}”(hŒ **Members**”h]”j~)�”}”(hjp&h]”hŒMembers”…”�”}”(hjr&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjn&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K³hj>&ubj”)�”}”(hhh]”(j™)�”}”(hŒ/``list`` pointer to struct :c:type:`list_head` ”h]”(jŸ)�”}”(hŒ``list``”h]”j~)�”}”(hj�&h]”hŒlist”…”�”}”(hj‘&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj�&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K«hj‰&ubj¹)�”}”(hhh]”hï)�”}”(hŒ%pointer to struct :c:type:`list_head`”h]”(hŒpointer to struct ”…”�”}”(hj¨&h²hh³Nh´Nubh)�”}”(hŒ:c:type:`list_head`”h]”j~)�”}”(hj²&h]”hŒ list_head”…”�”}”(hj´&h²hh³Nh´Nubah}”(h]”h ]”(jŸj Œc-type”eh"]”h$]”h&]”uh1j}hj°&ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jbj$j±Œ list_head”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Œ*``map`` pointer to struct :c:type:`rc_map`”h]”(jŸ)�”}”(hŒ``map``”h]”j~)�”}”(hjç&h]”hŒmap”…”�”}”(hjé&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjå&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K«hjá&ubj¹)�”}”(hhh]”hï)�”}”(hŒ"pointer to struct :c:type:`rc_map`”h]”(hŒpointer to struct ”…”�”}”(hj'h²hh³Nh´Nubh)�”}”(hŒ:c:type:`rc_map`”h]”j~)�”}”(hj 'h]”hŒrc_map”…”�”}”(hj 'h²hh³Nh´Nubah}”(h]”h ]”(jŸj Œc-type”eh"]”h$]”h&]”uh1j}hj'ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jbj$j±Œrc_map”uh1hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.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&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒrc_map_register (C function)”Œc.rc_map_register”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒ-int rc_map_register (struct rc_map_list *map)”h]”jò)�”}”(hŒ,int rc_map_register(struct rc_map_list *map)”h]”(j»)�”}”(hŒint”h]”hŒint”…”�”}”(hj`'h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhj\'h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K¼ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjo'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj\'h²hh³jn'h´K¼ubj)�”}”(hŒrc_map_register”h]”j!)�”}”(hŒrc_map_register”h]”hŒrc_map_register”…”�”}”(hj�'h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj}'ubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhj\'h²hh³jn'h´K¼ubj¨)�”}”(hŒ(struct rc_map_list *map)”h]”j®)�”}”(hŒstruct rc_map_list *map”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hj�'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj™'ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjª'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj™'ubh)�”}”(hhh]”j!)�”}”(hŒ rc_map_list”h]”hŒ rc_map_list”…”�”}”(hj»'h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj¸'ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j^Œ reftarget”j½'Œmodname”NŒ classname”Njbje)�”}”jh]”jk)�”}”j^jƒ'sbŒc.rc_map_register”†”asbuh1hhj™'ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÛ'h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj™'ubj€)�”}”(hjƒh]”hŒ*”…”�”}”(hjé'h²hh³Nh´Nubah}”(h]”h ]”jŒah"]”h$]”h&]”uh1jhj™'ubj!)�”}”(hŒmap”h]”hŒmap”…”�”}”(hjö'h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj™'ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j­hj•'ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j§hj\'h²hh³jn'h´K¼ubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj>ˆuh1jñj?j@hjX'h²hh³jn'h´K¼ubah}”(h]”jS'ah ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³jn'h´K¼hjU'h²hubjM)�”}”(hhh]”hï)�”}”(hŒ*Registers a Remote Controller scancode map”h]”hŒ*Registers a Remote Controller scancode map”…”�”}”(hj (h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K¼hj(h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhjU'h²hh³jn'h´K¼ubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”jmj jnj8(joj8(jp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hŒK**Parameters** ``struct rc_map_list *map`` pointer to struct rc_map_list”h]”(hï)�”}”(hŒ**Parameters**”h]”j~)�”}”(hjB(h]”hŒ Parameters”…”�”}”(hjD(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj@(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´KÀhj<(ubj”)�”}”(hhh]”j™)�”}”(hŒ9``struct rc_map_list *map`` pointer to struct rc_map_list”h]”(jŸ)�”}”(hŒ``struct rc_map_list *map``”h]”j~)�”}”(hja(h]”hŒstruct rc_map_list *map”…”�”}”(hjc(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj_(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´KÂhj[(ubj¹)�”}”(hhh]”hï)�”}”(hŒpointer to struct rc_map_list”h]”hŒpointer to struct rc_map_list”…”�”}”(hjz(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´K¾hjw(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj[(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jv(h´KÂhjX(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hj<(ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒrc_map_unregister (C function)”Œc.rc_map_unregister”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒ0void rc_map_unregister (struct rc_map_list *map)”h]”jò)�”}”(hŒ/void rc_map_unregister(struct rc_map_list *map)”h]”(j»)�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj»(h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhj·(h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´KÃubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÊ(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj·(h²hh³jÉ(h´KÃubj)�”}”(hŒrc_map_unregister”h]”j!)�”}”(hŒrc_map_unregister”h]”hŒrc_map_unregister”…”�”}”(hjÜ(h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjØ(ubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhj·(h²hh³jÉ(h´KÃubj¨)�”}”(hŒ(struct rc_map_list *map)”h]”j®)�”}”(hŒstruct rc_map_list *map”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hjø(h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjô(ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjô(ubh)�”}”(hhh]”j!)�”}”(hŒ rc_map_list”h]”hŒ rc_map_list”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j^Œ reftarget”j)Œmodname”NŒ classname”Njbje)�”}”jh]”jk)�”}”j^jÞ(sbŒc.rc_map_unregister”†”asbuh1hhjô(ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj6)h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjô(ubj€)�”}”(hjƒh]”hŒ*”…”�”}”(hjD)h²hh³Nh´Nubah}”(h]”h ]”jŒah"]”h$]”h&]”uh1jhjô(ubj!)�”}”(hŒmap”h]”hŒmap”…”�”}”(hjQ)h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjô(ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j­hjð(ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j§hj·(h²hh³jÉ(h´KÃubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj>ˆuh1jñj?j@hj³(h²hh³jÉ(h´KÃubah}”(h]”j®(ah ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³jÉ(h´KÃhj°(h²hubjM)�”}”(hhh]”hï)�”}”(hŒ,Unregisters a Remote Controller scancode map”h]”hŒ,Unregisters a Remote Controller scancode map”…”�”}”(hj{)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´KÃhjx)h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj°(h²hh³jÉ(h´KÃubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”jmj jnj“)joj“)jp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hŒK**Parameters** ``struct rc_map_list *map`` pointer to struct rc_map_list”h]”(hï)�”}”(hŒ**Parameters**”h]”j~)�”}”(hj�)h]”hŒ Parameters”…”�”}”(hjŸ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj›)ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´KÇhj—)ubj”)�”}”(hhh]”j™)�”}”(hŒ9``struct rc_map_list *map`` pointer to struct rc_map_list”h]”(jŸ)�”}”(hŒ``struct rc_map_list *map``”h]”j~)�”}”(hj¼)h]”hŒstruct rc_map_list *map”…”�”}”(hj¾)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hjº)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´KÉhj¶)ubj¹)�”}”(hhh]”hï)�”}”(hŒpointer to struct rc_map_list”h]”hŒpointer to struct rc_map_list”…”�”}”(hjÕ)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”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—)ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´NubjÖ)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(jâŒrc_map_get (C function)”Œ c.rc_map_get”hNt”auh1jÕhjÄh²hh³Nh´Nubjç)�”}”(hhh]”(jì)�”}”(hŒ-struct rc_map * rc_map_get (const char *name)”h]”jò)�”}”(hŒ+struct rc_map *rc_map_get(const char *name)”h]”(jø)�”}”(hjrh]”hŒstruct”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hj*h²hh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´KÊubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj$*h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj*h²hh³j#*h´KÊubh)�”}”(hhh]”j!)�”}”(hŒrc_map”h]”hŒrc_map”…”�”}”(hj5*h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hj2*ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j Œreftype”j^Œ reftarget”j7*Œmodname”NŒ classname”Njbje)�”}”jh]”jk)�”}”j^Œ rc_map_get”sbŒ c.rc_map_get”†”asbuh1hhj*h²hh³j#*h´KÊubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjV*h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj*h²hh³j#*h´KÊubj€)�”}”(hjƒh]”hŒ*”…”�”}”(hjd*h²hh³Nh´Nubah}”(h]”h ]”jŒah"]”h$]”h&]”uh1jhj*h²hh³j#*h´KÊubj)�”}”(hŒ rc_map_get”h]”j!)�”}”(hjS*h]”hŒ rc_map_get”…”�”}”(hju*h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjq*ubah}”(h]”h ]”(j3j4eh"]”h$]”h&]”hÅhÆuh1jhj*h²hh³j#*h´KÊubj¨)�”}”(hŒ(const char *name)”h]”j®)�”}”(hŒconst char *name”h]”(jø)�”}”(hŒconst”h]”hŒconst”…”�”}”(hj�*h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j÷hjŒ*ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjž*h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjŒ*ubj»)�”}”(hŒchar”h]”hŒchar”…”�”}”(hj¬*h²hh³Nh´Nubah}”(h]”h ]”jÇah"]”h$]”h&]”uh1jºhjŒ*ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjº*h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjŒ*ubj€)�”}”(hjƒh]”hŒ*”…”�”}”(hjÈ*h²hh³Nh´Nubah}”(h]”h ]”jŒah"]”h$]”h&]”uh1jhjŒ*ubj!)�”}”(hŒname”h]”hŒname”…”�”}”(hjÕ*h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1j hjŒ*ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆhÅhÆuh1j­hjˆ*ubah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j§hj*h²hh³j#*h´KÊubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆj>ˆuh1jñj?j@hj*h²hh³j#*h´KÊubah}”(h]”j *ah ]”(jDjEeh"]”h$]”h&]”jIˆjJ)jKhuh1jëh³j#*h´KÊhj *h²hubjM)�”}”(hhh]”hï)�”}”(hŒgets an RC map from its name”h]”hŒgets an RC map from its name”…”�”}”(hjÿ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´KÊhjü*h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jLhj *h²hh³j#*h´KÊubeh}”(h]”h ]”(j Œfunction”eh"]”h$]”h&]”jmj jnj+joj+jp‰jq‰jr‰uh1jæh²hhjÄh³Nh´Nubjt)�”}”(hŒB**Parameters** ``const char *name`` name of the RC scancode map”h]”(hï)�”}”(hŒ**Parameters**”h]”j~)�”}”(hj!+h]”hŒ Parameters”…”�”}”(hj#+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´KÎhj+ubj”)�”}”(hhh]”j™)�”}”(hŒ0``const char *name`` name of the RC scancode map”h]”(jŸ)�”}”(hŒ``const char *name``”h]”j~)�”}”(hj@+h]”hŒconst char *name”…”�”}”(hjB+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j}hj>+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jžh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´KÐhj:+ubj¹)�”}”(hhh]”hï)�”}”(hŒname of the RC scancode map”h]”hŒname of the RC scancode map”…”�”}”(hjY+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³Œ_/var/lib/git/docbuild/linux/Documentation/driver-api/media/rc-core:88: ./include/media/rc-map.h”h´KËhjV+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¸hj:+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j˜h³jU+h´KÐhj7+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j“hj+ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jshjÄh²hh³Nh´Nubeh}”(h]”Œ/remote-controller-data-structures-and-functions”ah ]”h"]”Œ/remote controller data structures and functions”ah$]”h&]”uh1hÈhhÝh²hh³hÇh´KTubeh}”(h]”Œremote-controller-core”ah ]”h"]”Œremote controller core”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Kubeh}”(h]”Œremote-controller-devices”ah ]”h"]”Œremote controller devices”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”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”}”(Œf1”]”jaŒf2”]”j·auŒrefids”}”(j]”jajÆ]”j·auŒnameids”}”(j–+j“+jŽ+j‹+jNjj*jÆj†+jƒ+uŒ nametypes”}”(j–+‰jŽ+‰jNˆj*ˆj†+‰uh}”(j“+hÊj‹+hÝjjjj)jÁj·jÆjõjƒ+jÄjäjíjcjhj¨j­j÷jüj� j• jj!j˜j�j­j²j jjfjkjj jo jÅ!jÊ!j#j #j¨%j­%jS'jX'j®(j³(j *j*uŒ footnote_refs”}”(jü+]”jajþ+]”j·auŒ citation_refs”}”Œ autofootnotes”]”(j)jõeŒautofootnote_refs”]”(jj·eŒsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”jÊ+Ks…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.