diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-10-31 18:42:54 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-10-31 18:42:54 -0400 |
commit | 1eb63378354ac37b7e27d256bbf84684751bac32 (patch) | |
tree | 0775591a2dced778d1ba0bd8a946831e424d02d7 /Documentation | |
parent | 1a4ceab195e66bce9c1638fdded6d92988100ba4 (diff) | |
parent | bac2dacd5fb9ddad093d7a2dc5ab44e764874821 (diff) |
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (348 commits)
[media] pctv452e: Remove bogus code
[media] adv7175: Make use of media bus pixel codes
[media] media: vb2: fix incorrect return value
[media] em28xx: implement VIDIOC_ENUM_FRAMESIZES
[media] cx23885: Stop the risc video fifo before reconfiguring it
[media] cx23885: Avoid incorrect error handling and reporting
[media] cx23885: Avoid stopping the risc engine during buffer timeout
[media] cx23885: Removed a spurious function cx23885_set_scale()
[media] cx23885: v4l2 api compliance, set the audioset field correctly
[media] cx23885: hook the audio selection functions into the main driver
[media] cx23885: add generic functions for dealing with audio input selection
[media] cx23885: fixes related to maximum number of inputs and range checking
[media] cx23885: Initial support for the MPX-885 mini-card
[media] cx25840: Ensure AUDIO6 and AUDIO7 trigger line-in baseband use
[media] cx23885: Enable audio line in support from the back panel
[media] cx23885: Allow the audio mux config to be specified on a per input basis
[media] cx25840: Enable support for non-tuner LR1/LR2 audio inputs
[media] cx23885: Name an internal i2c part and declare a bitfield by name
[media] cx23885: Ensure VBI buffers timeout quickly - bugfix for vbi hangs during streaming
[media] cx23885: remove channel dump diagnostics when a vbi buffer times out
...
Fix up trivial conflicts in drivers/misc/altera-stapl/altera.c (header
file rename vs add)
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/DocBook/media/dvb/dvbproperty.xml | 24 | ||||
-rw-r--r-- | Documentation/DocBook/media/dvb/intro.xml | 2 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/compat.xml | 8 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/dev-subdev.xml | 2 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/v4l2.xml | 9 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/vidioc-dqevent.xml | 129 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/vidioc-queryctrl.xml | 9 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/vidioc-subscribe-event.xml | 123 | ||||
-rwxr-xr-x | Documentation/dvb/get_dvb_firmware | 51 | ||||
-rw-r--r-- | Documentation/dvb/it9137.txt | 9 | ||||
-rw-r--r-- | Documentation/feature-removal-schedule.txt | 23 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.tm6000 | 16 | ||||
-rw-r--r-- | Documentation/video4linux/gspca.txt | 4 | ||||
-rw-r--r-- | Documentation/video4linux/omap3isp.txt | 9 | ||||
-rw-r--r-- | Documentation/video4linux/v4l2-controls.txt | 43 |
15 files changed, 271 insertions, 190 deletions
diff --git a/Documentation/DocBook/media/dvb/dvbproperty.xml b/Documentation/DocBook/media/dvb/dvbproperty.xml index 207e1a5bf8f0..3bc8a61efe30 100644 --- a/Documentation/DocBook/media/dvb/dvbproperty.xml +++ b/Documentation/DocBook/media/dvb/dvbproperty.xml | |||
@@ -352,6 +352,7 @@ typedef enum fe_delivery_system { | |||
352 | SYS_CMMB, | 352 | SYS_CMMB, |
353 | SYS_DAB, | 353 | SYS_DAB, |
354 | SYS_DVBT2, | 354 | SYS_DVBT2, |
355 | SYS_TURBO, | ||
355 | } fe_delivery_system_t; | 356 | } fe_delivery_system_t; |
356 | </programlisting> | 357 | </programlisting> |
357 | </section> | 358 | </section> |
@@ -809,6 +810,8 @@ typedef enum fe_hierarchy { | |||
809 | <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> | 810 | <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> |
810 | <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem> | 811 | <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem> |
811 | <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem> | 812 | <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem> |
813 | <listitem><para><link linkend="DTV-VOLTAGE"><constant>DTV_VOLTAGE</constant></link></para></listitem> | ||
814 | <listitem><para><link linkend="DTV-TONE"><constant>DTV_TONE</constant></link></para></listitem> | ||
812 | </itemizedlist> | 815 | </itemizedlist> |
813 | <para>Future implementations might add those two missing parameters:</para> | 816 | <para>Future implementations might add those two missing parameters:</para> |
814 | <itemizedlist mark='opencircle'> | 817 | <itemizedlist mark='opencircle'> |
@@ -818,25 +821,18 @@ typedef enum fe_hierarchy { | |||
818 | </section> | 821 | </section> |
819 | <section id="dvbs2-params"> | 822 | <section id="dvbs2-params"> |
820 | <title>DVB-S2 delivery system</title> | 823 | <title>DVB-S2 delivery system</title> |
821 | <para>The following parameters are valid for DVB-S2:</para> | 824 | <para>In addition to all parameters valid for DVB-S, DVB-S2 supports the following parameters:</para> |
822 | <itemizedlist mark='opencircle'> | 825 | <itemizedlist mark='opencircle'> |
823 | <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem> | 826 | <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> |
824 | <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem> | ||
825 | <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem> | ||
826 | <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem> | ||
827 | <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem> | ||
828 | <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> | ||
829 | <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem> | ||
830 | <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem> | ||
831 | <listitem><para><link linkend="DTV-VOLTAGE"><constant>DTV_VOLTAGE</constant></link></para></listitem> | ||
832 | <listitem><para><link linkend="DTV-TONE"><constant>DTV_TONE</constant></link></para></listitem> | ||
833 | <listitem><para><link linkend="DTV-PILOT"><constant>DTV_PILOT</constant></link></para></listitem> | 827 | <listitem><para><link linkend="DTV-PILOT"><constant>DTV_PILOT</constant></link></para></listitem> |
834 | <listitem><para><link linkend="DTV-ROLLOFF"><constant>DTV_ROLLOFF</constant></link></para></listitem> | 828 | <listitem><para><link linkend="DTV-ROLLOFF"><constant>DTV_ROLLOFF</constant></link></para></listitem> |
835 | </itemizedlist> | 829 | </itemizedlist> |
836 | <para>Future implementations might add those two missing parameters:</para> | 830 | </section> |
831 | <section id="turbo-params"> | ||
832 | <title>Turbo code delivery system</title> | ||
833 | <para>In addition to all parameters valid for DVB-S, turbo code supports the following parameters:</para> | ||
837 | <itemizedlist mark='opencircle'> | 834 | <itemizedlist mark='opencircle'> |
838 | <listitem><para><link linkend="DTV-DISEQC-MASTER"><constant>DTV_DISEQC_MASTER</constant></link></para></listitem> | 835 | <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> |
839 | <listitem><para><link linkend="DTV-DISEQC-SLAVE-REPLY"><constant>DTV_DISEQC_SLAVE_REPLY</constant></link></para></listitem> | ||
840 | </itemizedlist> | 836 | </itemizedlist> |
841 | </section> | 837 | </section> |
842 | <section id="isdbs-params"> | 838 | <section id="isdbs-params"> |
diff --git a/Documentation/DocBook/media/dvb/intro.xml b/Documentation/DocBook/media/dvb/intro.xml index c75dc7cc3e9b..170064a3dc8f 100644 --- a/Documentation/DocBook/media/dvb/intro.xml +++ b/Documentation/DocBook/media/dvb/intro.xml | |||
@@ -205,7 +205,7 @@ a partial path like:</para> | |||
205 | additional include file <emphasis | 205 | additional include file <emphasis |
206 | role="tt">linux/dvb/version.h</emphasis> exists, which defines the | 206 | role="tt">linux/dvb/version.h</emphasis> exists, which defines the |
207 | constant <emphasis role="tt">DVB_API_VERSION</emphasis>. This document | 207 | constant <emphasis role="tt">DVB_API_VERSION</emphasis>. This document |
208 | describes <emphasis role="tt">DVB_API_VERSION 3</emphasis>. | 208 | describes <emphasis role="tt">DVB_API_VERSION 5.4</emphasis>. |
209 | </para> | 209 | </para> |
210 | 210 | ||
211 | </section> | 211 | </section> |
diff --git a/Documentation/DocBook/media/v4l/compat.xml b/Documentation/DocBook/media/v4l/compat.xml index ce1004a7da52..91410b6e7e08 100644 --- a/Documentation/DocBook/media/v4l/compat.xml +++ b/Documentation/DocBook/media/v4l/compat.xml | |||
@@ -2370,6 +2370,14 @@ that used it. It was originally scheduled for removal in 2.6.35. | |||
2370 | </listitem> | 2370 | </listitem> |
2371 | </orderedlist> | 2371 | </orderedlist> |
2372 | </section> | 2372 | </section> |
2373 | <section> | ||
2374 | <title>V4L2 in Linux 3.2</title> | ||
2375 | <orderedlist> | ||
2376 | <listitem> | ||
2377 | <para>V4L2_CTRL_FLAG_VOLATILE was added to signal volatile controls to userspace.</para> | ||
2378 | </listitem> | ||
2379 | </orderedlist> | ||
2380 | </section> | ||
2373 | 2381 | ||
2374 | <section id="other"> | 2382 | <section id="other"> |
2375 | <title>Relation of V4L2 to other Linux multimedia APIs</title> | 2383 | <title>Relation of V4L2 to other Linux multimedia APIs</title> |
diff --git a/Documentation/DocBook/media/v4l/dev-subdev.xml b/Documentation/DocBook/media/v4l/dev-subdev.xml index 05c8fefcbcbe..0916a7343a16 100644 --- a/Documentation/DocBook/media/v4l/dev-subdev.xml +++ b/Documentation/DocBook/media/v4l/dev-subdev.xml | |||
@@ -266,7 +266,7 @@ | |||
266 | 266 | ||
267 | <para>When satisfied with the try results, applications can set the active | 267 | <para>When satisfied with the try results, applications can set the active |
268 | formats by setting the <structfield>which</structfield> argument to | 268 | formats by setting the <structfield>which</structfield> argument to |
269 | <constant>V4L2_SUBDEV_FORMAT_TRY</constant>. Active formats are changed | 269 | <constant>V4L2_SUBDEV_FORMAT_ACTIVE</constant>. Active formats are changed |
270 | exactly as try formats by drivers. To avoid modifying the hardware state | 270 | exactly as try formats by drivers. To avoid modifying the hardware state |
271 | during format negotiation, applications should negotiate try formats first | 271 | during format negotiation, applications should negotiate try formats first |
272 | and then modify the active settings using the try formats returned during | 272 | and then modify the active settings using the try formats returned during |
diff --git a/Documentation/DocBook/media/v4l/v4l2.xml b/Documentation/DocBook/media/v4l/v4l2.xml index 0d05e8747c12..40132c277647 100644 --- a/Documentation/DocBook/media/v4l/v4l2.xml +++ b/Documentation/DocBook/media/v4l/v4l2.xml | |||
@@ -128,6 +128,13 @@ structs, ioctls) must be noted in more detail in the history chapter | |||
128 | applications. --> | 128 | applications. --> |
129 | 129 | ||
130 | <revision> | 130 | <revision> |
131 | <revnumber>3.2</revnumber> | ||
132 | <date>2011-08-26</date> | ||
133 | <authorinitials>hv</authorinitials> | ||
134 | <revremark>Added V4L2_CTRL_FLAG_VOLATILE.</revremark> | ||
135 | </revision> | ||
136 | |||
137 | <revision> | ||
131 | <revnumber>3.1</revnumber> | 138 | <revnumber>3.1</revnumber> |
132 | <date>2011-06-27</date> | 139 | <date>2011-06-27</date> |
133 | <authorinitials>mcc, po, hv</authorinitials> | 140 | <authorinitials>mcc, po, hv</authorinitials> |
@@ -410,7 +417,7 @@ and discussions on the V4L mailing list.</revremark> | |||
410 | </partinfo> | 417 | </partinfo> |
411 | 418 | ||
412 | <title>Video for Linux Two API Specification</title> | 419 | <title>Video for Linux Two API Specification</title> |
413 | <subtitle>Revision 3.1</subtitle> | 420 | <subtitle>Revision 3.2</subtitle> |
414 | 421 | ||
415 | <chapter id="common"> | 422 | <chapter id="common"> |
416 | &sub-common; | 423 | &sub-common; |
diff --git a/Documentation/DocBook/media/v4l/vidioc-dqevent.xml b/Documentation/DocBook/media/v4l/vidioc-dqevent.xml index 7769642ee431..e8714aa16433 100644 --- a/Documentation/DocBook/media/v4l/vidioc-dqevent.xml +++ b/Documentation/DocBook/media/v4l/vidioc-dqevent.xml | |||
@@ -88,6 +88,12 @@ | |||
88 | </row> | 88 | </row> |
89 | <row> | 89 | <row> |
90 | <entry></entry> | 90 | <entry></entry> |
91 | <entry>&v4l2-event-frame-sync;</entry> | ||
92 | <entry><structfield>frame</structfield></entry> | ||
93 | <entry>Event data for event V4L2_EVENT_FRAME_SYNC.</entry> | ||
94 | </row> | ||
95 | <row> | ||
96 | <entry></entry> | ||
91 | <entry>__u8</entry> | 97 | <entry>__u8</entry> |
92 | <entry><structfield>data</structfield>[64]</entry> | 98 | <entry><structfield>data</structfield>[64]</entry> |
93 | <entry>Event data. Defined by the event type. The union | 99 | <entry>Event data. Defined by the event type. The union |
@@ -135,6 +141,129 @@ | |||
135 | </tgroup> | 141 | </tgroup> |
136 | </table> | 142 | </table> |
137 | 143 | ||
144 | <table frame="none" pgwide="1" id="v4l2-event-vsync"> | ||
145 | <title>struct <structname>v4l2_event_vsync</structname></title> | ||
146 | <tgroup cols="3"> | ||
147 | &cs-str; | ||
148 | <tbody valign="top"> | ||
149 | <row> | ||
150 | <entry>__u8</entry> | ||
151 | <entry><structfield>field</structfield></entry> | ||
152 | <entry>The upcoming field. See &v4l2-field;.</entry> | ||
153 | </row> | ||
154 | </tbody> | ||
155 | </tgroup> | ||
156 | </table> | ||
157 | |||
158 | <table frame="none" pgwide="1" id="v4l2-event-ctrl"> | ||
159 | <title>struct <structname>v4l2_event_ctrl</structname></title> | ||
160 | <tgroup cols="4"> | ||
161 | &cs-str; | ||
162 | <tbody valign="top"> | ||
163 | <row> | ||
164 | <entry>__u32</entry> | ||
165 | <entry><structfield>changes</structfield></entry> | ||
166 | <entry></entry> | ||
167 | <entry>A bitmask that tells what has changed. See <xref linkend="changes-flags" />.</entry> | ||
168 | </row> | ||
169 | <row> | ||
170 | <entry>__u32</entry> | ||
171 | <entry><structfield>type</structfield></entry> | ||
172 | <entry></entry> | ||
173 | <entry>The type of the control. See &v4l2-ctrl-type;.</entry> | ||
174 | </row> | ||
175 | <row> | ||
176 | <entry>union (anonymous)</entry> | ||
177 | <entry></entry> | ||
178 | <entry></entry> | ||
179 | <entry></entry> | ||
180 | </row> | ||
181 | <row> | ||
182 | <entry></entry> | ||
183 | <entry>__s32</entry> | ||
184 | <entry><structfield>value</structfield></entry> | ||
185 | <entry>The 32-bit value of the control for 32-bit control types. | ||
186 | This is 0 for string controls since the value of a string | ||
187 | cannot be passed using &VIDIOC-DQEVENT;.</entry> | ||
188 | </row> | ||
189 | <row> | ||
190 | <entry></entry> | ||
191 | <entry>__s64</entry> | ||
192 | <entry><structfield>value64</structfield></entry> | ||
193 | <entry>The 64-bit value of the control for 64-bit control types.</entry> | ||
194 | </row> | ||
195 | <row> | ||
196 | <entry>__u32</entry> | ||
197 | <entry><structfield>flags</structfield></entry> | ||
198 | <entry></entry> | ||
199 | <entry>The control flags. See <xref linkend="control-flags" />.</entry> | ||
200 | </row> | ||
201 | <row> | ||
202 | <entry>__s32</entry> | ||
203 | <entry><structfield>minimum</structfield></entry> | ||
204 | <entry></entry> | ||
205 | <entry>The minimum value of the control. See &v4l2-queryctrl;.</entry> | ||
206 | </row> | ||
207 | <row> | ||
208 | <entry>__s32</entry> | ||
209 | <entry><structfield>maximum</structfield></entry> | ||
210 | <entry></entry> | ||
211 | <entry>The maximum value of the control. See &v4l2-queryctrl;.</entry> | ||
212 | </row> | ||
213 | <row> | ||
214 | <entry>__s32</entry> | ||
215 | <entry><structfield>step</structfield></entry> | ||
216 | <entry></entry> | ||
217 | <entry>The step value of the control. See &v4l2-queryctrl;.</entry> | ||
218 | </row> | ||
219 | <row> | ||
220 | <entry>__s32</entry> | ||
221 | <entry><structfield>default_value</structfield></entry> | ||
222 | <entry></entry> | ||
223 | <entry>The default value value of the control. See &v4l2-queryctrl;.</entry> | ||
224 | </row> | ||
225 | </tbody> | ||
226 | </tgroup> | ||
227 | </table> | ||
228 | |||
229 | <table frame="none" pgwide="1" id="v4l2-event-frame-sync"> | ||
230 | <title>struct <structname>v4l2_event_frame_sync</structname></title> | ||
231 | <tgroup cols="3"> | ||
232 | &cs-str; | ||
233 | <tbody valign="top"> | ||
234 | <row> | ||
235 | <entry>__u32</entry> | ||
236 | <entry><structfield>frame_sequence</structfield></entry> | ||
237 | <entry> | ||
238 | The sequence number of the frame being received. | ||
239 | </entry> | ||
240 | </row> | ||
241 | </tbody> | ||
242 | </tgroup> | ||
243 | </table> | ||
244 | |||
245 | <table pgwide="1" frame="none" id="changes-flags"> | ||
246 | <title>Changes</title> | ||
247 | <tgroup cols="3"> | ||
248 | &cs-def; | ||
249 | <tbody valign="top"> | ||
250 | <row> | ||
251 | <entry><constant>V4L2_EVENT_CTRL_CH_VALUE</constant></entry> | ||
252 | <entry>0x0001</entry> | ||
253 | <entry>This control event was triggered because the value of the control | ||
254 | changed. Special case: if a button control is pressed, then this | ||
255 | event is sent as well, even though there is not explicit value | ||
256 | associated with a button control.</entry> | ||
257 | </row> | ||
258 | <row> | ||
259 | <entry><constant>V4L2_EVENT_CTRL_CH_FLAGS</constant></entry> | ||
260 | <entry>0x0002</entry> | ||
261 | <entry>This control event was triggered because the control flags | ||
262 | changed.</entry> | ||
263 | </row> | ||
264 | </tbody> | ||
265 | </tgroup> | ||
266 | </table> | ||
138 | </refsect1> | 267 | </refsect1> |
139 | <refsect1> | 268 | <refsect1> |
140 | &return-value; | 269 | &return-value; |
diff --git a/Documentation/DocBook/media/v4l/vidioc-queryctrl.xml b/Documentation/DocBook/media/v4l/vidioc-queryctrl.xml index 677ea646c29f..0ac0057a51c4 100644 --- a/Documentation/DocBook/media/v4l/vidioc-queryctrl.xml +++ b/Documentation/DocBook/media/v4l/vidioc-queryctrl.xml | |||
@@ -406,6 +406,15 @@ flag is typically present for relative controls or action controls where | |||
406 | writing a value will cause the device to carry out a given action | 406 | writing a value will cause the device to carry out a given action |
407 | (⪚ motor control) but no meaningful value can be returned.</entry> | 407 | (⪚ motor control) but no meaningful value can be returned.</entry> |
408 | </row> | 408 | </row> |
409 | <row> | ||
410 | <entry><constant>V4L2_CTRL_FLAG_VOLATILE</constant></entry> | ||
411 | <entry>0x0080</entry> | ||
412 | <entry>This control is volatile, which means that the value of the control | ||
413 | changes continuously. A typical example would be the current gain value if the device | ||
414 | is in auto-gain mode. In such a case the hardware calculates the gain value based on | ||
415 | the lighting conditions which can change over time. Note that setting a new value for | ||
416 | a volatile control will have no effect. The new value will just be ignored.</entry> | ||
417 | </row> | ||
409 | </tbody> | 418 | </tbody> |
410 | </tgroup> | 419 | </tgroup> |
411 | </table> | 420 | </table> |
diff --git a/Documentation/DocBook/media/v4l/vidioc-subscribe-event.xml b/Documentation/DocBook/media/v4l/vidioc-subscribe-event.xml index 69c0d8a2a3d2..5c70b616d818 100644 --- a/Documentation/DocBook/media/v4l/vidioc-subscribe-event.xml +++ b/Documentation/DocBook/media/v4l/vidioc-subscribe-event.xml | |||
@@ -139,6 +139,22 @@ | |||
139 | </entry> | 139 | </entry> |
140 | </row> | 140 | </row> |
141 | <row> | 141 | <row> |
142 | <entry><constant>V4L2_EVENT_FRAME_SYNC</constant></entry> | ||
143 | <entry>4</entry> | ||
144 | <entry> | ||
145 | <para>Triggered immediately when the reception of a | ||
146 | frame has begun. This event has a | ||
147 | &v4l2-event-frame-sync; associated with it.</para> | ||
148 | |||
149 | <para>If the hardware needs to be stopped in the case of a | ||
150 | buffer underrun it might not be able to generate this event. | ||
151 | In such cases the <structfield>frame_sequence</structfield> | ||
152 | field in &v4l2-event-frame-sync; will not be incremented. This | ||
153 | causes two consecutive frame sequence numbers to have n times | ||
154 | frame interval in between them.</para> | ||
155 | </entry> | ||
156 | </row> | ||
157 | <row> | ||
142 | <entry><constant>V4L2_EVENT_PRIVATE_START</constant></entry> | 158 | <entry><constant>V4L2_EVENT_PRIVATE_START</constant></entry> |
143 | <entry>0x08000000</entry> | 159 | <entry>0x08000000</entry> |
144 | <entry>Base event number for driver-private events.</entry> | 160 | <entry>Base event number for driver-private events.</entry> |
@@ -183,113 +199,6 @@ | |||
183 | </tgroup> | 199 | </tgroup> |
184 | </table> | 200 | </table> |
185 | 201 | ||
186 | <table frame="none" pgwide="1" id="v4l2-event-vsync"> | ||
187 | <title>struct <structname>v4l2_event_vsync</structname></title> | ||
188 | <tgroup cols="3"> | ||
189 | &cs-str; | ||
190 | <tbody valign="top"> | ||
191 | <row> | ||
192 | <entry>__u8</entry> | ||
193 | <entry><structfield>field</structfield></entry> | ||
194 | <entry>The upcoming field. See &v4l2-field;.</entry> | ||
195 | </row> | ||
196 | </tbody> | ||
197 | </tgroup> | ||
198 | </table> | ||
199 | |||
200 | <table frame="none" pgwide="1" id="v4l2-event-ctrl"> | ||
201 | <title>struct <structname>v4l2_event_ctrl</structname></title> | ||
202 | <tgroup cols="4"> | ||
203 | &cs-str; | ||
204 | <tbody valign="top"> | ||
205 | <row> | ||
206 | <entry>__u32</entry> | ||
207 | <entry><structfield>changes</structfield></entry> | ||
208 | <entry></entry> | ||
209 | <entry>A bitmask that tells what has changed. See <xref linkend="changes-flags" />.</entry> | ||
210 | </row> | ||
211 | <row> | ||
212 | <entry>__u32</entry> | ||
213 | <entry><structfield>type</structfield></entry> | ||
214 | <entry></entry> | ||
215 | <entry>The type of the control. See &v4l2-ctrl-type;.</entry> | ||
216 | </row> | ||
217 | <row> | ||
218 | <entry>union (anonymous)</entry> | ||
219 | <entry></entry> | ||
220 | <entry></entry> | ||
221 | <entry></entry> | ||
222 | </row> | ||
223 | <row> | ||
224 | <entry></entry> | ||
225 | <entry>__s32</entry> | ||
226 | <entry><structfield>value</structfield></entry> | ||
227 | <entry>The 32-bit value of the control for 32-bit control types. | ||
228 | This is 0 for string controls since the value of a string | ||
229 | cannot be passed using &VIDIOC-DQEVENT;.</entry> | ||
230 | </row> | ||
231 | <row> | ||
232 | <entry></entry> | ||
233 | <entry>__s64</entry> | ||
234 | <entry><structfield>value64</structfield></entry> | ||
235 | <entry>The 64-bit value of the control for 64-bit control types.</entry> | ||
236 | </row> | ||
237 | <row> | ||
238 | <entry>__u32</entry> | ||
239 | <entry><structfield>flags</structfield></entry> | ||
240 | <entry></entry> | ||
241 | <entry>The control flags. See <xref linkend="control-flags" />.</entry> | ||
242 | </row> | ||
243 | <row> | ||
244 | <entry>__s32</entry> | ||
245 | <entry><structfield>minimum</structfield></entry> | ||
246 | <entry></entry> | ||
247 | <entry>The minimum value of the control. See &v4l2-queryctrl;.</entry> | ||
248 | </row> | ||
249 | <row> | ||
250 | <entry>__s32</entry> | ||
251 | <entry><structfield>maximum</structfield></entry> | ||
252 | <entry></entry> | ||
253 | <entry>The maximum value of the control. See &v4l2-queryctrl;.</entry> | ||
254 | </row> | ||
255 | <row> | ||
256 | <entry>__s32</entry> | ||
257 | <entry><structfield>step</structfield></entry> | ||
258 | <entry></entry> | ||
259 | <entry>The step value of the control. See &v4l2-queryctrl;.</entry> | ||
260 | </row> | ||
261 | <row> | ||
262 | <entry>__s32</entry> | ||
263 | <entry><structfield>default_value</structfield></entry> | ||
264 | <entry></entry> | ||
265 | <entry>The default value value of the control. See &v4l2-queryctrl;.</entry> | ||
266 | </row> | ||
267 | </tbody> | ||
268 | </tgroup> | ||
269 | </table> | ||
270 | |||
271 | <table pgwide="1" frame="none" id="changes-flags"> | ||
272 | <title>Changes</title> | ||
273 | <tgroup cols="3"> | ||
274 | &cs-def; | ||
275 | <tbody valign="top"> | ||
276 | <row> | ||
277 | <entry><constant>V4L2_EVENT_CTRL_CH_VALUE</constant></entry> | ||
278 | <entry>0x0001</entry> | ||
279 | <entry>This control event was triggered because the value of the control | ||
280 | changed. Special case: if a button control is pressed, then this | ||
281 | event is sent as well, even though there is not explicit value | ||
282 | associated with a button control.</entry> | ||
283 | </row> | ||
284 | <row> | ||
285 | <entry><constant>V4L2_EVENT_CTRL_CH_FLAGS</constant></entry> | ||
286 | <entry>0x0002</entry> | ||
287 | <entry>This control event was triggered because the control flags | ||
288 | changed.</entry> | ||
289 | </row> | ||
290 | </tbody> | ||
291 | </tgroup> | ||
292 | </table> | ||
293 | </refsect1> | 202 | </refsect1> |
294 | <refsect1> | 203 | <refsect1> |
295 | &return-value; | 204 | &return-value; |
diff --git a/Documentation/dvb/get_dvb_firmware b/Documentation/dvb/get_dvb_firmware index c466f5831f15..e67be7afc78b 100755 --- a/Documentation/dvb/get_dvb_firmware +++ b/Documentation/dvb/get_dvb_firmware | |||
@@ -27,7 +27,8 @@ use IO::Handle; | |||
27 | "or51211", "or51132_qam", "or51132_vsb", "bluebird", | 27 | "or51211", "or51132_qam", "or51132_vsb", "bluebird", |
28 | "opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718", | 28 | "opera1", "cx231xx", "cx18", "cx23885", "pvrusb2", "mpc718", |
29 | "af9015", "ngene", "az6027", "lme2510_lg", "lme2510c_s7395", | 29 | "af9015", "ngene", "az6027", "lme2510_lg", "lme2510c_s7395", |
30 | "lme2510c_s7395_old", "drxk", "drxk_terratec_h5"); | 30 | "lme2510c_s7395_old", "drxk", "drxk_terratec_h5", "tda10071", |
31 | "it9135" ); | ||
31 | 32 | ||
32 | # Check args | 33 | # Check args |
33 | syntax() if (scalar(@ARGV) != 1); | 34 | syntax() if (scalar(@ARGV) != 1); |
@@ -575,19 +576,10 @@ sub ngene { | |||
575 | } | 576 | } |
576 | 577 | ||
577 | sub az6027{ | 578 | sub az6027{ |
578 | my $file = "AZ6027_Linux_Driver.tar.gz"; | ||
579 | my $url = "http://linux.terratec.de/files/$file"; | ||
580 | my $firmware = "dvb-usb-az6027-03.fw"; | 579 | my $firmware = "dvb-usb-az6027-03.fw"; |
580 | my $url = "http://linux.terratec.de/files/TERRATEC_S7/$firmware"; | ||
581 | 581 | ||
582 | wgetfile($file, $url); | 582 | wgetfile($firmware, $url); |
583 | |||
584 | #untar | ||
585 | if( system("tar xzvf $file $firmware")){ | ||
586 | die "failed to untar firmware"; | ||
587 | } | ||
588 | if( system("rm $file")){ | ||
589 | die ("unable to remove unnecessary files"); | ||
590 | } | ||
591 | 583 | ||
592 | $firmware; | 584 | $firmware; |
593 | } | 585 | } |
@@ -665,6 +657,41 @@ sub drxk_terratec_h5 { | |||
665 | "$fwfile" | 657 | "$fwfile" |
666 | } | 658 | } |
667 | 659 | ||
660 | sub it9135 { | ||
661 | my $url = "http://kworld.server261.com/kworld/CD/ITE_TiVme/V1.00/"; | ||
662 | my $zipfile = "Driver_V10.323.1.0412.100412.zip"; | ||
663 | my $hash = "79b597dc648698ed6820845c0c9d0d37"; | ||
664 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 0); | ||
665 | my $drvfile = "Driver_V10.323.1.0412.100412/Data/x86/IT9135BDA.sys"; | ||
666 | my $fwfile = "dvb-usb-it9137-01.fw"; | ||
667 | |||
668 | checkstandard(); | ||
669 | |||
670 | wgetfile($zipfile, $url . $zipfile); | ||
671 | verify($zipfile, $hash); | ||
672 | unzip($zipfile, $tmpdir); | ||
673 | extract("$tmpdir/$drvfile", 69632, 5731, "$fwfile"); | ||
674 | |||
675 | "$fwfile" | ||
676 | } | ||
677 | |||
678 | sub tda10071 { | ||
679 | my $sourcefile = "PCTV_460e_reference.zip"; | ||
680 | my $url = "ftp://ftp.pctvsystems.com/TV/driver/PCTV%2070e%2080e%20100e%20320e%20330e%20800e/"; | ||
681 | my $hash = "4403de903bf2593464c8d74bbc200a57"; | ||
682 | my $fwfile = "dvb-fe-tda10071.fw"; | ||
683 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); | ||
684 | |||
685 | checkstandard(); | ||
686 | |||
687 | wgetfile($sourcefile, $url . $sourcefile); | ||
688 | verify($sourcefile, $hash); | ||
689 | unzip($sourcefile, $tmpdir); | ||
690 | extract("$tmpdir/PCTV\ 70e\ 80e\ 100e\ 320e\ 330e\ 800e/32\ bit/emOEM.sys", 0x67d38, 40504, $fwfile); | ||
691 | |||
692 | "$fwfile"; | ||
693 | } | ||
694 | |||
668 | # --------------------------------------------------------------- | 695 | # --------------------------------------------------------------- |
669 | # Utilities | 696 | # Utilities |
670 | 697 | ||
diff --git a/Documentation/dvb/it9137.txt b/Documentation/dvb/it9137.txt new file mode 100644 index 000000000000..9e6726eead90 --- /dev/null +++ b/Documentation/dvb/it9137.txt | |||
@@ -0,0 +1,9 @@ | |||
1 | To extract firmware for Kworld UB499-2T (id 1b80:e409) you need to copy the | ||
2 | following file(s) to this directory. | ||
3 | |||
4 | IT9135BDA.sys Dated Mon 22 Mar 2010 02:20:08 GMT | ||
5 | |||
6 | extract using dd | ||
7 | dd if=IT9135BDA.sys ibs=1 skip=69632 count=5731 of=dvb-usb-it9137-01.fw | ||
8 | |||
9 | copy to default firmware location. | ||
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index d5ac362daef5..7c799fc5b88e 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -495,29 +495,6 @@ Who: Jean Delvare <khali@linux-fr.org> | |||
495 | 495 | ||
496 | ---------------------------- | 496 | ---------------------------- |
497 | 497 | ||
498 | What: Support for UVCIOC_CTRL_ADD in the uvcvideo driver | ||
499 | When: 3.2 | ||
500 | Why: The information passed to the driver by this ioctl is now queried | ||
501 | dynamically from the device. | ||
502 | Who: Laurent Pinchart <laurent.pinchart@ideasonboard.com> | ||
503 | |||
504 | ---------------------------- | ||
505 | |||
506 | What: Support for UVCIOC_CTRL_MAP_OLD in the uvcvideo driver | ||
507 | When: 3.2 | ||
508 | Why: Used only by applications compiled against older driver versions. | ||
509 | Superseded by UVCIOC_CTRL_MAP which supports V4L2 menu controls. | ||
510 | Who: Laurent Pinchart <laurent.pinchart@ideasonboard.com> | ||
511 | |||
512 | ---------------------------- | ||
513 | |||
514 | What: Support for UVCIOC_CTRL_GET and UVCIOC_CTRL_SET in the uvcvideo driver | ||
515 | When: 3.2 | ||
516 | Why: Superseded by the UVCIOC_CTRL_QUERY ioctl. | ||
517 | Who: Laurent Pinchart <laurent.pinchart@ideasonboard.com> | ||
518 | |||
519 | ---------------------------- | ||
520 | |||
521 | What: Support for driver specific ioctls in the pwc driver (everything | 498 | What: Support for driver specific ioctls in the pwc driver (everything |
522 | defined in media/pwc-ioctl.h) | 499 | defined in media/pwc-ioctl.h) |
523 | When: 3.3 | 500 | When: 3.3 |
diff --git a/Documentation/video4linux/CARDLIST.tm6000 b/Documentation/video4linux/CARDLIST.tm6000 new file mode 100644 index 000000000000..b5edce487997 --- /dev/null +++ b/Documentation/video4linux/CARDLIST.tm6000 | |||
@@ -0,0 +1,16 @@ | |||
1 | 1 -> Generic tm5600 board (tm5600) [6000:0001] | ||
2 | 2 -> Generic tm6000 board (tm6000) [6000:0001] | ||
3 | 3 -> Generic tm6010 board (tm6010) [6000:0002] | ||
4 | 4 -> 10Moons UT821 (tm5600) [6000:0001] | ||
5 | 5 -> 10Moons UT330 (tm5600) | ||
6 | 6 -> ADSTech Dual TV (tm6000) [06e1:f332] | ||
7 | 7 -> FreeCom and similar (tm6000) [14aa:0620] | ||
8 | 8 -> ADSTech Mini Dual TV (tm6000) [06e1:b339] | ||
9 | 9 -> Hauppauge WinTV HVR-900H/USB2 Stick (tm6010) [2040:6600,2040:6601,2040:6610,2040:6611] | ||
10 | 10 -> Beholder Wander (tm6010) [6000:dec0] | ||
11 | 11 -> Beholder Voyager (tm6010) [6000:dec1] | ||
12 | 12 -> TerraTec Cinergy Hybrid XE/Cinergy Hybrid Stick (tm6010) [0ccd:0086,0ccd:00a5] | ||
13 | 13 -> TwinHan TU501 (tm6010) [13d3:3240,13d3:3241,13d3:3243,13d3:3264] | ||
14 | 14 -> Beholder Wander Lite (tm6010) [6000:dec2] | ||
15 | 15 -> Beholder Voyager Lite (tm6010) [6000:dec3] | ||
16 | |||
diff --git a/Documentation/video4linux/gspca.txt b/Documentation/video4linux/gspca.txt index 5bfa9a777d26..b15e29f31121 100644 --- a/Documentation/video4linux/gspca.txt +++ b/Documentation/video4linux/gspca.txt | |||
@@ -8,6 +8,7 @@ xxxx vend:prod | |||
8 | ---- | 8 | ---- |
9 | spca501 0000:0000 MystFromOri Unknown Camera | 9 | spca501 0000:0000 MystFromOri Unknown Camera |
10 | spca508 0130:0130 Clone Digital Webcam 11043 | 10 | spca508 0130:0130 Clone Digital Webcam 11043 |
11 | zc3xx 03f0:1b07 HP Premium Starter Cam | ||
11 | m5602 0402:5602 ALi Video Camera Controller | 12 | m5602 0402:5602 ALi Video Camera Controller |
12 | spca501 040a:0002 Kodak DVC-325 | 13 | spca501 040a:0002 Kodak DVC-325 |
13 | spca500 040a:0300 Kodak EZ200 | 14 | spca500 040a:0300 Kodak EZ200 |
@@ -190,6 +191,7 @@ ov519 05a9:0519 OV519 Microphone | |||
190 | ov519 05a9:0530 OmniVision | 191 | ov519 05a9:0530 OmniVision |
191 | ov519 05a9:2800 OmniVision SuperCAM | 192 | ov519 05a9:2800 OmniVision SuperCAM |
192 | ov519 05a9:4519 Webcam Classic | 193 | ov519 05a9:4519 Webcam Classic |
194 | ov534_9 05a9:8065 OmniVision test kit ov538+ov9712 | ||
193 | ov519 05a9:8519 OmniVision | 195 | ov519 05a9:8519 OmniVision |
194 | ov519 05a9:a511 D-Link USB Digital Video Camera | 196 | ov519 05a9:a511 D-Link USB Digital Video Camera |
195 | ov519 05a9:a518 D-Link DSB-C310 Webcam | 197 | ov519 05a9:a518 D-Link DSB-C310 Webcam |
@@ -199,6 +201,8 @@ gl860 05e3:0503 Genesys Logic PC Camera | |||
199 | gl860 05e3:f191 Genesys Logic PC Camera | 201 | gl860 05e3:f191 Genesys Logic PC Camera |
200 | spca561 060b:a001 Maxell Compact Pc PM3 | 202 | spca561 060b:a001 Maxell Compact Pc PM3 |
201 | zc3xx 0698:2003 CTX M730V built in | 203 | zc3xx 0698:2003 CTX M730V built in |
204 | topro 06a2:0003 TP6800 PC Camera, CmoX CX0342 webcam | ||
205 | topro 06a2:6810 Creative Qmax | ||
202 | nw80x 06a5:0000 Typhoon Webcam 100 USB | 206 | nw80x 06a5:0000 Typhoon Webcam 100 USB |
203 | nw80x 06a5:d001 Divio based webcams | 207 | nw80x 06a5:d001 Divio based webcams |
204 | nw80x 06a5:d800 Divio Chicony TwinkleCam, Trust SpaceCam | 208 | nw80x 06a5:d800 Divio Chicony TwinkleCam, Trust SpaceCam |
diff --git a/Documentation/video4linux/omap3isp.txt b/Documentation/video4linux/omap3isp.txt index 69be2c782b98..5dd1439b61fd 100644 --- a/Documentation/video4linux/omap3isp.txt +++ b/Documentation/video4linux/omap3isp.txt | |||
@@ -70,10 +70,11 @@ Events | |||
70 | The OMAP 3 ISP driver does support the V4L2 event interface on CCDC and | 70 | The OMAP 3 ISP driver does support the V4L2 event interface on CCDC and |
71 | statistics (AEWB, AF and histogram) subdevs. | 71 | statistics (AEWB, AF and histogram) subdevs. |
72 | 72 | ||
73 | The CCDC subdev produces V4L2_EVENT_OMAP3ISP_HS_VS type event on HS_VS | 73 | The CCDC subdev produces V4L2_EVENT_FRAME_SYNC type event on HS_VS |
74 | interrupt which is used to signal frame start. The event is triggered exactly | 74 | interrupt which is used to signal frame start. Earlier version of this |
75 | when the reception of the first line of the frame starts in the CCDC module. | 75 | driver used V4L2_EVENT_OMAP3ISP_HS_VS for this purpose. The event is |
76 | The event can be subscribed on the CCDC subdev. | 76 | triggered exactly when the reception of the first line of the frame starts |
77 | in the CCDC module. The event can be subscribed on the CCDC subdev. | ||
77 | 78 | ||
78 | (When using parallel interface one must pay account to correct configuration | 79 | (When using parallel interface one must pay account to correct configuration |
79 | of the VS signal polarity. This is automatically correct when using the serial | 80 | of the VS signal polarity. This is automatically correct when using the serial |
diff --git a/Documentation/video4linux/v4l2-controls.txt b/Documentation/video4linux/v4l2-controls.txt index 9346fc8cbf2b..26aa0573933e 100644 --- a/Documentation/video4linux/v4l2-controls.txt +++ b/Documentation/video4linux/v4l2-controls.txt | |||
@@ -285,11 +285,11 @@ implement g_volatile_ctrl like this: | |||
285 | Note that you use the 'new value' union as well in g_volatile_ctrl. In general | 285 | Note that you use the 'new value' union as well in g_volatile_ctrl. In general |
286 | controls that need to implement g_volatile_ctrl are read-only controls. | 286 | controls that need to implement g_volatile_ctrl are read-only controls. |
287 | 287 | ||
288 | To mark a control as volatile you have to set the is_volatile flag: | 288 | To mark a control as volatile you have to set V4L2_CTRL_FLAG_VOLATILE: |
289 | 289 | ||
290 | ctrl = v4l2_ctrl_new_std(&sd->ctrl_handler, ...); | 290 | ctrl = v4l2_ctrl_new_std(&sd->ctrl_handler, ...); |
291 | if (ctrl) | 291 | if (ctrl) |
292 | ctrl->is_volatile = 1; | 292 | ctrl->flags |= V4L2_CTRL_FLAG_VOLATILE; |
293 | 293 | ||
294 | For try/s_ctrl the new values (i.e. as passed by the user) are filled in and | 294 | For try/s_ctrl the new values (i.e. as passed by the user) are filled in and |
295 | you can modify them in try_ctrl or set them in s_ctrl. The 'cur' union | 295 | you can modify them in try_ctrl or set them in s_ctrl. The 'cur' union |
@@ -367,8 +367,7 @@ Driver specific controls can be created using v4l2_ctrl_new_custom(): | |||
367 | The last argument is the priv pointer which can be set to driver-specific | 367 | The last argument is the priv pointer which can be set to driver-specific |
368 | private data. | 368 | private data. |
369 | 369 | ||
370 | The v4l2_ctrl_config struct also has fields to set the is_private and is_volatile | 370 | The v4l2_ctrl_config struct also has a field to set the is_private flag. |
371 | flags. | ||
372 | 371 | ||
373 | If the name field is not set, then the framework will assume this is a standard | 372 | If the name field is not set, then the framework will assume this is a standard |
374 | control and will fill in the name, type and flags fields accordingly. | 373 | control and will fill in the name, type and flags fields accordingly. |
@@ -496,18 +495,20 @@ Handling autogain/gain-type Controls with Auto Clusters | |||
496 | 495 | ||
497 | A common type of control cluster is one that handles 'auto-foo/foo'-type | 496 | A common type of control cluster is one that handles 'auto-foo/foo'-type |
498 | controls. Typical examples are autogain/gain, autoexposure/exposure, | 497 | controls. Typical examples are autogain/gain, autoexposure/exposure, |
499 | autowhitebalance/red balance/blue balance. In all cases you have one controls | 498 | autowhitebalance/red balance/blue balance. In all cases you have one control |
500 | that determines whether another control is handled automatically by the hardware, | 499 | that determines whether another control is handled automatically by the hardware, |
501 | or whether it is under manual control from the user. | 500 | or whether it is under manual control from the user. |
502 | 501 | ||
503 | If the cluster is in automatic mode, then the manual controls should be | 502 | If the cluster is in automatic mode, then the manual controls should be |
504 | marked inactive. When the volatile controls are read the g_volatile_ctrl | 503 | marked inactive and volatile. When the volatile controls are read the |
505 | operation should return the value that the hardware's automatic mode set up | 504 | g_volatile_ctrl operation should return the value that the hardware's automatic |
506 | automatically. | 505 | mode set up automatically. |
507 | 506 | ||
508 | If the cluster is put in manual mode, then the manual controls should become | 507 | If the cluster is put in manual mode, then the manual controls should become |
509 | active again and the is_volatile flag should be ignored (so g_volatile_ctrl is | 508 | active again and the volatile flag is cleared (so g_volatile_ctrl is no longer |
510 | no longer called while in manual mode). | 509 | called while in manual mode). In addition just before switching to manual mode |
510 | the current values as determined by the auto mode are copied as the new manual | ||
511 | values. | ||
511 | 512 | ||
512 | Finally the V4L2_CTRL_FLAG_UPDATE should be set for the auto control since | 513 | Finally the V4L2_CTRL_FLAG_UPDATE should be set for the auto control since |
513 | changing that control affects the control flags of the manual controls. | 514 | changing that control affects the control flags of the manual controls. |
@@ -520,7 +521,11 @@ void v4l2_ctrl_auto_cluster(unsigned ncontrols, struct v4l2_ctrl **controls, | |||
520 | 521 | ||
521 | The first two arguments are identical to v4l2_ctrl_cluster. The third argument | 522 | The first two arguments are identical to v4l2_ctrl_cluster. The third argument |
522 | tells the framework which value switches the cluster into manual mode. The | 523 | tells the framework which value switches the cluster into manual mode. The |
523 | last argument will optionally set the is_volatile flag for the non-auto controls. | 524 | last argument will optionally set V4L2_CTRL_FLAG_VOLATILE for the non-auto controls. |
525 | If it is false, then the manual controls are never volatile. You would typically | ||
526 | use that if the hardware does not give you the option to read back to values as | ||
527 | determined by the auto mode (e.g. if autogain is on, the hardware doesn't allow | ||
528 | you to obtain the current gain value). | ||
524 | 529 | ||
525 | The first control of the cluster is assumed to be the 'auto' control. | 530 | The first control of the cluster is assumed to be the 'auto' control. |
526 | 531 | ||
@@ -681,16 +686,6 @@ if there are no controls at all. | |||
681 | count if nothing was done yet. If it is less than count then only the controls | 686 | count if nothing was done yet. If it is less than count then only the controls |
682 | up to error_idx-1 were successfully applied. | 687 | up to error_idx-1 were successfully applied. |
683 | 688 | ||
684 | 3) When attempting to read a button control the framework will return -EACCES | ||
685 | instead of -EINVAL as stated in the spec. It seems to make more sense since | ||
686 | button controls are write-only controls. | ||
687 | |||
688 | 4) Attempting to write to a read-only control will return -EACCES instead of | ||
689 | -EINVAL as the spec says. | ||
690 | |||
691 | 5) The spec does not mention what should happen when you try to set/get a | ||
692 | control class controls. The framework will return -EACCES. | ||
693 | |||
694 | 689 | ||
695 | Proposals for Extensions | 690 | Proposals for Extensions |
696 | ======================== | 691 | ======================== |
@@ -703,9 +698,3 @@ decimal. Useful for e.g. video_mute_yuv. | |||
703 | 2) It is possible to mark in the controls array which controls have been | 698 | 2) It is possible to mark in the controls array which controls have been |
704 | successfully written and which failed by for example adding a bit to the | 699 | successfully written and which failed by for example adding a bit to the |
705 | control ID. Not sure if it is worth the effort, though. | 700 | control ID. Not sure if it is worth the effort, though. |
706 | |||
707 | 3) Trying to set volatile inactive controls should result in -EACCESS. | ||
708 | |||
709 | 4) Add a new flag to mark volatile controls. Any application that wants | ||
710 | to store the state of the controls can then skip volatile inactive controls. | ||
711 | Currently it is not possible to detect such controls. | ||