Merge tag 'apparmor-pr-2019-03-12' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / Documentation / media / uapi / rc / lirc-get-features.rst
1 .. Permission is granted to copy, distribute and/or modify this
2 .. document under the terms of the GNU Free Documentation License,
3 .. Version 1.1 or any later version published by the Free Software
4 .. Foundation, with no Invariant Sections, no Front-Cover Texts
5 .. and no Back-Cover Texts. A copy of the license is included at
6 .. Documentation/media/uapi/fdl-appendix.rst.
7 ..
8 .. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
9
10 .. _lirc_get_features:
11
12 ***********************
13 ioctl LIRC_GET_FEATURES
14 ***********************
15
16 Name
17 ====
18
19 LIRC_GET_FEATURES - Get the underlying hardware device's features
20
21 Synopsis
22 ========
23
24 .. c:function:: int ioctl( int fd, LIRC_GET_FEATURES, __u32 *features)
25     :name: LIRC_GET_FEATURES
26
27 Arguments
28 =========
29
30 ``fd``
31     File descriptor returned by open().
32
33 ``features``
34     Bitmask with the LIRC features.
35
36
37 Description
38 ===========
39
40
41 Get the underlying hardware device's features. If a driver does not
42 announce support of certain features, calling of the corresponding ioctls
43 is undefined.
44
45 LIRC features
46 =============
47
48 .. _LIRC-CAN-REC-RAW:
49
50 ``LIRC_CAN_REC_RAW``
51
52     Unused. Kept just to avoid breaking uAPI.
53
54 .. _LIRC-CAN-REC-PULSE:
55
56 ``LIRC_CAN_REC_PULSE``
57
58     Unused. Kept just to avoid breaking uAPI.
59     :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>` can only be used for transmitting.
60
61 .. _LIRC-CAN-REC-MODE2:
62
63 ``LIRC_CAN_REC_MODE2``
64
65     This is raw IR driver for receiving. This means that
66     :ref:`LIRC_MODE_MODE2 <lirc-mode-MODE2>` is used. This also implies
67     that :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is also supported,
68     as long as the kernel is recent enough. Use the
69     :ref:`lirc_set_rec_mode` to switch modes.
70
71 .. _LIRC-CAN-REC-LIRCCODE:
72
73 ``LIRC_CAN_REC_LIRCCODE``
74
75     Unused. Kept just to avoid breaking uAPI.
76
77 .. _LIRC-CAN-REC-SCANCODE:
78
79 ``LIRC_CAN_REC_SCANCODE``
80
81     This is a scancode driver for receiving. This means that
82     :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is used.
83
84 .. _LIRC-CAN-SET-SEND-CARRIER:
85
86 ``LIRC_CAN_SET_SEND_CARRIER``
87
88     The driver supports changing the modulation frequency via
89     :ref:`ioctl LIRC_SET_SEND_CARRIER <LIRC_SET_SEND_CARRIER>`.
90
91 .. _LIRC-CAN-SET-SEND-DUTY-CYCLE:
92
93 ``LIRC_CAN_SET_SEND_DUTY_CYCLE``
94
95     The driver supports changing the duty cycle using
96     :ref:`ioctl LIRC_SET_SEND_DUTY_CYCLE <LIRC_SET_SEND_DUTY_CYCLE>`.
97
98 .. _LIRC-CAN-SET-TRANSMITTER-MASK:
99
100 ``LIRC_CAN_SET_TRANSMITTER_MASK``
101
102     The driver supports changing the active transmitter(s) using
103     :ref:`ioctl LIRC_SET_TRANSMITTER_MASK <LIRC_SET_TRANSMITTER_MASK>`.
104
105 .. _LIRC-CAN-SET-REC-CARRIER:
106
107 ``LIRC_CAN_SET_REC_CARRIER``
108
109     The driver supports setting the receive carrier frequency using
110     :ref:`ioctl LIRC_SET_REC_CARRIER <LIRC_SET_REC_CARRIER>`.
111
112 .. _LIRC-CAN-SET-REC-DUTY-CYCLE-RANGE:
113
114 ``LIRC_CAN_SET_REC_DUTY_CYCLE_RANGE``
115
116     Unused. Kept just to avoid breaking uAPI.
117
118 .. _LIRC-CAN-SET-REC-CARRIER-RANGE:
119
120 ``LIRC_CAN_SET_REC_CARRIER_RANGE``
121
122     The driver supports
123     :ref:`ioctl LIRC_SET_REC_CARRIER_RANGE <LIRC_SET_REC_CARRIER_RANGE>`.
124
125 .. _LIRC-CAN-GET-REC-RESOLUTION:
126
127 ``LIRC_CAN_GET_REC_RESOLUTION``
128
129     The driver supports
130     :ref:`ioctl LIRC_GET_REC_RESOLUTION <LIRC_GET_REC_RESOLUTION>`.
131
132 .. _LIRC-CAN-SET-REC-TIMEOUT:
133
134 ``LIRC_CAN_SET_REC_TIMEOUT``
135
136     The driver supports
137     :ref:`ioctl LIRC_SET_REC_TIMEOUT <LIRC_SET_REC_TIMEOUT>`.
138
139 .. _LIRC-CAN-SET-REC-FILTER:
140
141 ``LIRC_CAN_SET_REC_FILTER``
142
143     Unused. Kept just to avoid breaking uAPI.
144
145 .. _LIRC-CAN-MEASURE-CARRIER:
146
147 ``LIRC_CAN_MEASURE_CARRIER``
148
149     The driver supports measuring of the modulation frequency using
150     :ref:`ioctl LIRC_SET_MEASURE_CARRIER_MODE <LIRC_SET_MEASURE_CARRIER_MODE>`.
151
152 .. _LIRC-CAN-USE-WIDEBAND-RECEIVER:
153
154 ``LIRC_CAN_USE_WIDEBAND_RECEIVER``
155
156     The driver supports learning mode using
157     :ref:`ioctl LIRC_SET_WIDEBAND_RECEIVER <LIRC_SET_WIDEBAND_RECEIVER>`.
158
159 .. _LIRC-CAN-NOTIFY-DECODE:
160
161 ``LIRC_CAN_NOTIFY_DECODE``
162
163     Unused. Kept just to avoid breaking uAPI.
164
165 .. _LIRC-CAN-SEND-RAW:
166
167 ``LIRC_CAN_SEND_RAW``
168
169     Unused. Kept just to avoid breaking uAPI.
170
171 .. _LIRC-CAN-SEND-PULSE:
172
173 ``LIRC_CAN_SEND_PULSE``
174
175     The driver supports sending (also called as IR blasting or IR TX) using
176     :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>`. This implies that
177     :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is also supported for
178     transmit, as long as the kernel is recent enough. Use the
179     :ref:`lirc_set_send_mode` to switch modes.
180
181 .. _LIRC-CAN-SEND-MODE2:
182
183 ``LIRC_CAN_SEND_MODE2``
184
185     Unused. Kept just to avoid breaking uAPI.
186     :ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>` can only be used for receiving.
187
188 .. _LIRC-CAN-SEND-LIRCCODE:
189
190 ``LIRC_CAN_SEND_LIRCCODE``
191
192     Unused. Kept just to avoid breaking uAPI.
193
194
195 Return Value
196 ============
197
198 On success 0 is returned, on error -1 and the ``errno`` variable is set
199 appropriately. The generic error codes are described at the
200 :ref:`Generic Error Codes <gen-errors>` chapter.