aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/DocBook/media
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2012-10-11 05:55:04 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-10-11 05:55:04 -0400
commita0f0dd57f4a85310d9936f1770a0424b49fef876 (patch)
tree2f85b8b67dda13d19b02ca39e0fbef921cb1cf8b /Documentation/DocBook/media
parent2a552d5e63d7fa602c9a9a0717008737f55625a6 (diff)
parent846a136881b8f73c1f74250bf6acfaa309cab1f2 (diff)
Merge branch 'fixes' into for-linus
Conflicts: arch/arm/kernel/smp.c
Diffstat (limited to 'Documentation/DocBook/media')
-rw-r--r--Documentation/DocBook/media/Makefile2
-rw-r--r--Documentation/DocBook/media/dvb/audio.xml113
-rw-r--r--Documentation/DocBook/media/dvb/ca.xml353
-rw-r--r--Documentation/DocBook/media/dvb/demux.xml230
-rw-r--r--Documentation/DocBook/media/dvb/dvbapi.xml4
-rw-r--r--Documentation/DocBook/media/dvb/dvbproperty.xml113
-rw-r--r--Documentation/DocBook/media/dvb/frontend.xml71
-rw-r--r--Documentation/DocBook/media/dvb/intro.xml2
-rw-r--r--Documentation/DocBook/media/dvb/kdapi.xml2
-rw-r--r--Documentation/DocBook/media/dvb/net.xml127
-rw-r--r--Documentation/DocBook/media/dvb/video.xml333
-rw-r--r--Documentation/DocBook/media/v4l/biblio.xml52
-rw-r--r--Documentation/DocBook/media/v4l/common.xml30
-rw-r--r--Documentation/DocBook/media/v4l/compat.xml41
-rw-r--r--Documentation/DocBook/media/v4l/controls.xml614
-rw-r--r--Documentation/DocBook/media/v4l/dev-osd.xml7
-rw-r--r--Documentation/DocBook/media/v4l/dev-rds.xml2
-rw-r--r--Documentation/DocBook/media/v4l/dev-subdev.xml20
-rw-r--r--Documentation/DocBook/media/v4l/gen-errors.xml19
-rw-r--r--Documentation/DocBook/media/v4l/io.xml21
-rw-r--r--Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml3
-rw-r--r--Documentation/DocBook/media/v4l/pixfmt-yvu420m.xml154
-rw-r--r--Documentation/DocBook/media/v4l/pixfmt.xml1
-rw-r--r--Documentation/DocBook/media/v4l/selection-api.xml22
-rw-r--r--Documentation/DocBook/media/v4l/v4l2.xml15
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-cropcap.xml12
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml7
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml7
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml6
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml6
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-enum-fmt.xml9
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-enum-framesizes.xml7
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-enuminput.xml2
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-enumoutput.xml2
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-enumstd.xml6
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-crop.xml6
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-dv-preset.xml9
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml13
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-enc-index.xml7
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-fmt.xml13
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-parm.xml4
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-selection.xml9
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-std.xml10
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-tuner.xml6
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-qbuf.xml2
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-query-dv-preset.xml9
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml6
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-querycap.xml10
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-querystd.xml8
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-reqbufs.xml5
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml10
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-streamon.xml7
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-subdev-g-edid.xml152
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-subdev-g-selection.xml8
54 files changed, 2222 insertions, 487 deletions
diff --git a/Documentation/DocBook/media/Makefile b/Documentation/DocBook/media/Makefile
index 362520992ced..9b7e4c557928 100644
--- a/Documentation/DocBook/media/Makefile
+++ b/Documentation/DocBook/media/Makefile
@@ -300,7 +300,7 @@ $(MEDIA_OBJ_DIR)/media-entities.tmpl: $(MEDIA_OBJ_DIR)/v4l2.xml
300 @( \ 300 @( \
301 for ident in $(IOCTLS) ; do \ 301 for ident in $(IOCTLS) ; do \
302 entity=`echo $$ident | tr _ -` ; \ 302 entity=`echo $$ident | tr _ -` ; \
303 id=`grep "<refname>$$ident" $(MEDIA_OBJ_DIR)/vidioc-*.xml | sed -r s,"^.*/(.*).xml.*","\1",` ; \ 303 id=`grep "<refname>$$ident" $(MEDIA_OBJ_DIR)/vidioc-*.xml $(MEDIA_OBJ_DIR)/media-ioc-*.xml | sed -r s,"^.*/(.*).xml.*","\1",` ; \
304 echo "<!ENTITY $$entity \"<link" \ 304 echo "<!ENTITY $$entity \"<link" \
305 "linkend='$$id'><constant>$$ident</constant></link>\">" \ 305 "linkend='$$id'><constant>$$ident</constant></link>\">" \
306 >>$@ ; \ 306 >>$@ ; \
diff --git a/Documentation/DocBook/media/dvb/audio.xml b/Documentation/DocBook/media/dvb/audio.xml
index d64386237207..a7ea56c71a27 100644
--- a/Documentation/DocBook/media/dvb/audio.xml
+++ b/Documentation/DocBook/media/dvb/audio.xml
@@ -1,12 +1,16 @@
1<title>DVB Audio Device</title> 1<title>DVB Audio Device</title>
2<para>The DVB audio device controls the MPEG2 audio decoder of the DVB hardware. It 2<para>The DVB audio device controls the MPEG2 audio decoder of the DVB hardware. It
3can be accessed through <emphasis role="tt">/dev/dvb/adapter0/audio0</emphasis>. Data types and and 3can be accessed through <emphasis role="tt">/dev/dvb/adapter0/audio0</emphasis>. Data types and and
4ioctl definitions can be accessed by including <emphasis role="tt">linux/dvb/video.h</emphasis> in your 4ioctl definitions can be accessed by including <emphasis role="tt">linux/dvb/audio.h</emphasis> in your
5application. 5application.
6</para> 6</para>
7<para>Please note that some DVB cards don&#8217;t have their own MPEG decoder, which results in 7<para>Please note that some DVB cards don&#8217;t have their own MPEG decoder, which results in
8the omission of the audio and video device. 8the omission of the audio and video device.
9</para> 9</para>
10<para>
11These ioctls were also used by V4L2 to control MPEG decoders implemented in V4L2. The use
12of these ioctls for that purpose has been made obsolete and proper V4L2 ioctls or controls
13have been created to replace that functionality.</para>
10 14
11<section id="audio_data_types"> 15<section id="audio_data_types">
12<title>Audio Data Types</title> 16<title>Audio Data Types</title>
@@ -558,6 +562,8 @@ role="subsection"><title>AUDIO_SELECT_SOURCE</title>
558role="subsection"><title>AUDIO_SET_MUTE</title> 562role="subsection"><title>AUDIO_SET_MUTE</title>
559<para>DESCRIPTION 563<para>DESCRIPTION
560</para> 564</para>
565<para>This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2
566&VIDIOC-DECODER-CMD; with the <constant>V4L2_DEC_CMD_START_MUTE_AUDIO</constant> flag instead.</para>
561<informaltable><tgroup cols="1"><tbody><row><entry 567<informaltable><tgroup cols="1"><tbody><row><entry
562 align="char"> 568 align="char">
563<para>This ioctl call asks the audio device to mute the stream that is currently being 569<para>This ioctl call asks the audio device to mute the stream that is currently being
@@ -730,6 +736,8 @@ role="subsection"><title>AUDIO_SET_BYPASS_MODE</title>
730role="subsection"><title>AUDIO_CHANNEL_SELECT</title> 736role="subsection"><title>AUDIO_CHANNEL_SELECT</title>
731<para>DESCRIPTION 737<para>DESCRIPTION
732</para> 738</para>
739<para>This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2
740<constant>V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK</constant> control instead.</para>
733<informaltable><tgroup cols="1"><tbody><row><entry 741<informaltable><tgroup cols="1"><tbody><row><entry
734 align="char"> 742 align="char">
735<para>This ioctl call asks the Audio Device to select the requested channel if possible.</para> 743<para>This ioctl call asks the Audio Device to select the requested channel if possible.</para>
@@ -772,6 +780,109 @@ role="subsection"><title>AUDIO_CHANNEL_SELECT</title>
772 </row></tbody></tgroup></informaltable> 780 </row></tbody></tgroup></informaltable>
773&return-value-dvb; 781&return-value-dvb;
774 782
783</section><section id="AUDIO_BILINGUAL_CHANNEL_SELECT"
784role="subsection"><title>AUDIO_BILINGUAL_CHANNEL_SELECT</title>
785<para>DESCRIPTION
786</para>
787<para>This ioctl is obsolete. Do not use in new drivers. It has been replaced by
788the V4L2 <constant>V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK</constant> control
789for MPEG decoders controlled through V4L2.</para>
790<informaltable><tgroup cols="1"><tbody><row><entry
791 align="char">
792<para>This ioctl call asks the Audio Device to select the requested channel for bilingual streams if possible.</para>
793</entry>
794 </row></tbody></tgroup></informaltable>
795<para>SYNOPSIS
796</para>
797<informaltable><tgroup cols="1"><tbody><row><entry
798 align="char">
799<para>int ioctl(int fd, int request =
800 AUDIO_BILINGUAL_CHANNEL_SELECT, audio_channel_select_t);</para>
801</entry>
802 </row></tbody></tgroup></informaltable>
803<para>PARAMETERS
804</para>
805<informaltable><tgroup cols="2"><tbody><row><entry
806 align="char">
807<para>int fd</para>
808</entry><entry
809 align="char">
810<para>File descriptor returned by a previous call to open().</para>
811</entry>
812 </row><row><entry
813 align="char">
814<para>int request</para>
815</entry><entry
816 align="char">
817<para>Equals AUDIO_BILINGUAL_CHANNEL_SELECT for this
818 command.</para>
819</entry>
820 </row><row><entry
821 align="char">
822<para>audio_channel_select_t
823ch</para>
824</entry><entry
825 align="char">
826<para>Select the output format of the audio (mono left/right,
827 stereo).</para>
828</entry>
829 </row>
830</tbody></tgroup></informaltable>
831&return-value-dvb;
832
833</section><section id="AUDIO_GET_PTS"
834role="subsection"><title>AUDIO_GET_PTS</title>
835<para>DESCRIPTION
836</para>
837<para>This ioctl is obsolete. Do not use in new drivers. If you need this functionality,
838then please contact the linux-media mailing list (&v4l-ml;).</para>
839<informaltable><tgroup cols="1"><tbody><row><entry
840 align="char">
841<para>This ioctl call asks the Audio Device to return the current PTS timestamp.</para>
842</entry>
843 </row></tbody></tgroup></informaltable>
844<para>SYNOPSIS
845</para>
846<informaltable><tgroup cols="1"><tbody><row><entry
847 align="char">
848<para>int ioctl(int fd, int request =
849 AUDIO_GET_PTS, __u64 *pts);</para>
850</entry>
851 </row></tbody></tgroup></informaltable>
852<para>PARAMETERS
853</para>
854<informaltable><tgroup cols="2"><tbody><row><entry
855 align="char">
856<para>int fd</para>
857</entry><entry
858 align="char">
859<para>File descriptor returned by a previous call to open().</para>
860</entry>
861 </row><row><entry
862 align="char">
863<para>int request</para>
864</entry><entry
865 align="char">
866<para>Equals AUDIO_GET_PTS for this
867 command.</para>
868</entry>
869 </row><row><entry
870 align="char">
871<para>__u64 *pts
872</para>
873</entry><entry
874 align="char">
875<para>Returns the 33-bit timestamp as defined in ITU T-REC-H.222.0 / ISO/IEC 13818-1.
876</para>
877<para>
878The PTS should belong to the currently played
879frame if possible, but may also be a value close to it
880like the PTS of the last decoded frame or the last PTS
881extracted by the PES parser.</para>
882</entry>
883 </row></tbody></tgroup></informaltable>
884&return-value-dvb;
885
775</section><section id="AUDIO_GET_STATUS" 886</section><section id="AUDIO_GET_STATUS"
776role="subsection"><title>AUDIO_GET_STATUS</title> 887role="subsection"><title>AUDIO_GET_STATUS</title>
777<para>DESCRIPTION 888<para>DESCRIPTION
diff --git a/Documentation/DocBook/media/dvb/ca.xml b/Documentation/DocBook/media/dvb/ca.xml
index 5c4adb44b1c1..85eaf4fe2931 100644
--- a/Documentation/DocBook/media/dvb/ca.xml
+++ b/Documentation/DocBook/media/dvb/ca.xml
@@ -226,4 +226,357 @@ typedef struct ca_pid {
226</entry> 226</entry>
227 </row></tbody></tgroup></informaltable> 227 </row></tbody></tgroup></informaltable>
228 </section> 228 </section>
229
230<section id="CA_RESET"
231role="subsection"><title>CA_RESET</title>
232<para>DESCRIPTION
233</para>
234<informaltable><tgroup cols="1"><tbody><row><entry
235 align="char">
236<para>This ioctl is undocumented. Documentation is welcome.</para>
237</entry>
238 </row></tbody></tgroup></informaltable>
239<para>SYNOPSIS
240</para>
241<informaltable><tgroup cols="1"><tbody><row><entry
242 align="char">
243<para>int ioctl(fd, int request = CA_RESET);
244</para>
245</entry>
246 </row></tbody></tgroup></informaltable>
247<para>PARAMETERS
248</para>
249<informaltable><tgroup cols="2"><tbody><row><entry
250 align="char">
251<para>int fd</para>
252</entry><entry
253 align="char">
254<para>File descriptor returned by a previous call to open().</para>
255</entry>
256 </row><row><entry
257 align="char">
258<para>int request</para>
259</entry><entry
260 align="char">
261<para>Equals CA_RESET for this command.</para>
262</entry>
263 </row></tbody></tgroup></informaltable>
264&return-value-dvb;
265</section>
266
267<section id="CA_GET_CAP"
268role="subsection"><title>CA_GET_CAP</title>
269<para>DESCRIPTION
270</para>
271<informaltable><tgroup cols="1"><tbody><row><entry
272 align="char">
273<para>This ioctl is undocumented. Documentation is welcome.</para>
274</entry>
275 </row></tbody></tgroup></informaltable>
276<para>SYNOPSIS
277</para>
278<informaltable><tgroup cols="1"><tbody><row><entry
279 align="char">
280<para>int ioctl(fd, int request = CA_GET_CAP,
281 ca_caps_t *);</para>
282</entry>
283 </row></tbody></tgroup></informaltable>
284<para>PARAMETERS
285</para>
286<informaltable><tgroup cols="2"><tbody><row><entry
287 align="char">
288<para>int fd</para>
289</entry><entry
290 align="char">
291<para>File descriptor returned by a previous call to open().</para>
292</entry>
293 </row><row><entry
294 align="char">
295<para>int request</para>
296</entry><entry
297 align="char">
298<para>Equals CA_GET_CAP for this command.</para>
299</entry>
300 </row><row><entry
301 align="char">
302<para>ca_caps_t *
303</para>
304</entry><entry
305 align="char">
306<para>Undocumented.</para>
307</entry>
308 </row></tbody></tgroup></informaltable>
309&return-value-dvb;
310</section>
311
312<section id="CA_GET_SLOT_INFO"
313role="subsection"><title>CA_GET_SLOT_INFO</title>
314<para>DESCRIPTION
315</para>
316<informaltable><tgroup cols="1"><tbody><row><entry
317 align="char">
318<para>This ioctl is undocumented. Documentation is welcome.</para>
319</entry>
320 </row></tbody></tgroup></informaltable>
321<para>SYNOPSIS
322</para>
323<informaltable><tgroup cols="1"><tbody><row><entry
324 align="char">
325<para>int ioctl(fd, int request = CA_GET_SLOT_INFO,
326 ca_slot_info_t *);</para>
327</entry>
328 </row></tbody></tgroup></informaltable>
329<para>PARAMETERS
330</para>
331<informaltable><tgroup cols="2"><tbody><row><entry
332 align="char">
333<para>int fd</para>
334</entry><entry
335 align="char">
336<para>File descriptor returned by a previous call to open().</para>
337</entry>
338 </row><row><entry
339 align="char">
340<para>int request</para>
341</entry><entry
342 align="char">
343<para>Equals CA_GET_SLOT_INFO for this command.</para>
344</entry>
345 </row><row><entry
346 align="char">
347<para>ca_slot_info_t *
348</para>
349</entry><entry
350 align="char">
351<para>Undocumented.</para>
352</entry>
353 </row></tbody></tgroup></informaltable>
354&return-value-dvb;
355</section>
356
357<section id="CA_GET_DESCR_INFO"
358role="subsection"><title>CA_GET_DESCR_INFO</title>
359<para>DESCRIPTION
360</para>
361<informaltable><tgroup cols="1"><tbody><row><entry
362 align="char">
363<para>This ioctl is undocumented. Documentation is welcome.</para>
364</entry>
365 </row></tbody></tgroup></informaltable>
366<para>SYNOPSIS
367</para>
368<informaltable><tgroup cols="1"><tbody><row><entry
369 align="char">
370<para>int ioctl(fd, int request = CA_GET_DESCR_INFO,
371 ca_descr_info_t *);</para>
372</entry>
373 </row></tbody></tgroup></informaltable>
374<para>PARAMETERS
375</para>
376<informaltable><tgroup cols="2"><tbody><row><entry
377 align="char">
378<para>int fd</para>
379</entry><entry
380 align="char">
381<para>File descriptor returned by a previous call to open().</para>
382</entry>
383 </row><row><entry
384 align="char">
385<para>int request</para>
386</entry><entry
387 align="char">
388<para>Equals CA_GET_DESCR_INFO for this command.</para>
389</entry>
390 </row><row><entry
391 align="char">
392<para>ca_descr_info_t *
393</para>
394</entry><entry
395 align="char">
396<para>Undocumented.</para>
397</entry>
398 </row></tbody></tgroup></informaltable>
399&return-value-dvb;
400</section>
401
402<section id="CA_GET_MSG"
403role="subsection"><title>CA_GET_MSG</title>
404<para>DESCRIPTION
405</para>
406<informaltable><tgroup cols="1"><tbody><row><entry
407 align="char">
408<para>This ioctl is undocumented. Documentation is welcome.</para>
409</entry>
410 </row></tbody></tgroup></informaltable>
411<para>SYNOPSIS
412</para>
413<informaltable><tgroup cols="1"><tbody><row><entry
414 align="char">
415<para>int ioctl(fd, int request = CA_GET_MSG,
416 ca_msg_t *);</para>
417</entry>
418 </row></tbody></tgroup></informaltable>
419<para>PARAMETERS
420</para>
421<informaltable><tgroup cols="2"><tbody><row><entry
422 align="char">
423<para>int fd</para>
424</entry><entry
425 align="char">
426<para>File descriptor returned by a previous call to open().</para>
427</entry>
428 </row><row><entry
429 align="char">
430<para>int request</para>
431</entry><entry
432 align="char">
433<para>Equals CA_GET_MSG for this command.</para>
434</entry>
435 </row><row><entry
436 align="char">
437<para>ca_msg_t *
438</para>
439</entry><entry
440 align="char">
441<para>Undocumented.</para>
442</entry>
443 </row></tbody></tgroup></informaltable>
444&return-value-dvb;
445</section>
446
447<section id="CA_SEND_MSG"
448role="subsection"><title>CA_SEND_MSG</title>
449<para>DESCRIPTION
450</para>
451<informaltable><tgroup cols="1"><tbody><row><entry
452 align="char">
453<para>This ioctl is undocumented. Documentation is welcome.</para>
454</entry>
455 </row></tbody></tgroup></informaltable>
456<para>SYNOPSIS
457</para>
458<informaltable><tgroup cols="1"><tbody><row><entry
459 align="char">
460<para>int ioctl(fd, int request = CA_SEND_MSG,
461 ca_msg_t *);</para>
462</entry>
463 </row></tbody></tgroup></informaltable>
464<para>PARAMETERS
465</para>
466<informaltable><tgroup cols="2"><tbody><row><entry
467 align="char">
468<para>int fd</para>
469</entry><entry
470 align="char">
471<para>File descriptor returned by a previous call to open().</para>
472</entry>
473 </row><row><entry
474 align="char">
475<para>int request</para>
476</entry><entry
477 align="char">
478<para>Equals CA_SEND_MSG for this command.</para>
479</entry>
480 </row><row><entry
481 align="char">
482<para>ca_msg_t *
483</para>
484</entry><entry
485 align="char">
486<para>Undocumented.</para>
487</entry>
488 </row></tbody></tgroup></informaltable>
489&return-value-dvb;
490</section>
491
492<section id="CA_SET_DESCR"
493role="subsection"><title>CA_SET_DESCR</title>
494<para>DESCRIPTION
495</para>
496<informaltable><tgroup cols="1"><tbody><row><entry
497 align="char">
498<para>This ioctl is undocumented. Documentation is welcome.</para>
499</entry>
500 </row></tbody></tgroup></informaltable>
501<para>SYNOPSIS
502</para>
503<informaltable><tgroup cols="1"><tbody><row><entry
504 align="char">
505<para>int ioctl(fd, int request = CA_SET_DESCR,
506 ca_descr_t *);</para>
507</entry>
508 </row></tbody></tgroup></informaltable>
509<para>PARAMETERS
510</para>
511<informaltable><tgroup cols="2"><tbody><row><entry
512 align="char">
513<para>int fd</para>
514</entry><entry
515 align="char">
516<para>File descriptor returned by a previous call to open().</para>
517</entry>
518 </row><row><entry
519 align="char">
520<para>int request</para>
521</entry><entry
522 align="char">
523<para>Equals CA_SET_DESCR for this command.</para>
524</entry>
525 </row><row><entry
526 align="char">
527<para>ca_descr_t *
528</para>
529</entry><entry
530 align="char">
531<para>Undocumented.</para>
532</entry>
533 </row></tbody></tgroup></informaltable>
534&return-value-dvb;
535</section>
536
537<section id="CA_SET_PID"
538role="subsection"><title>CA_SET_PID</title>
539<para>DESCRIPTION
540</para>
541<informaltable><tgroup cols="1"><tbody><row><entry
542 align="char">
543<para>This ioctl is undocumented. Documentation is welcome.</para>
544</entry>
545 </row></tbody></tgroup></informaltable>
546<para>SYNOPSIS
547</para>
548<informaltable><tgroup cols="1"><tbody><row><entry
549 align="char">
550<para>int ioctl(fd, int request = CA_SET_PID,
551 ca_pid_t *);</para>
552</entry>
553 </row></tbody></tgroup></informaltable>
554<para>PARAMETERS
555</para>
556<informaltable><tgroup cols="2"><tbody><row><entry
557 align="char">
558<para>int fd</para>
559</entry><entry
560 align="char">
561<para>File descriptor returned by a previous call to open().</para>
562</entry>
563 </row><row><entry
564 align="char">
565<para>int request</para>
566</entry><entry
567 align="char">
568<para>Equals CA_SET_PID for this command.</para>
569</entry>
570 </row><row><entry
571 align="char">
572<para>ca_pid_t *
573</para>
574</entry><entry
575 align="char">
576<para>Undocumented.</para>
577</entry>
578 </row></tbody></tgroup></informaltable>
579&return-value-dvb;
580</section>
581
229</section> 582</section>
diff --git a/Documentation/DocBook/media/dvb/demux.xml b/Documentation/DocBook/media/dvb/demux.xml
index 37c17908aa40..86de89cfbd67 100644
--- a/Documentation/DocBook/media/dvb/demux.xml
+++ b/Documentation/DocBook/media/dvb/demux.xml
@@ -899,4 +899,232 @@ typedef enum {
899<para>Invalid stc number.</para> 899<para>Invalid stc number.</para>
900</entry> 900</entry>
901 </row></tbody></tgroup></informaltable> 901 </row></tbody></tgroup></informaltable>
902 </section></section> 902 </section>
903
904<section id="DMX_GET_PES_PIDS"
905role="subsection"><title>DMX_GET_PES_PIDS</title>
906<para>DESCRIPTION
907</para>
908<informaltable><tgroup cols="1"><tbody><row><entry
909 align="char">
910<para>This ioctl is undocumented. Documentation is welcome.</para>
911</entry>
912 </row></tbody></tgroup></informaltable>
913<para>SYNOPSIS
914</para>
915<informaltable><tgroup cols="1"><tbody><row><entry
916 align="char">
917<para>int ioctl(fd, int request = DMX_GET_PES_PIDS,
918 __u16[5]);</para>
919</entry>
920 </row></tbody></tgroup></informaltable>
921<para>PARAMETERS
922</para>
923<informaltable><tgroup cols="2"><tbody><row><entry
924 align="char">
925<para>int fd</para>
926</entry><entry
927 align="char">
928<para>File descriptor returned by a previous call to open().</para>
929</entry>
930 </row><row><entry
931 align="char">
932<para>int request</para>
933</entry><entry
934 align="char">
935<para>Equals DMX_GET_PES_PIDS for this command.</para>
936</entry>
937 </row><row><entry
938 align="char">
939<para>__u16[5]
940</para>
941</entry><entry
942 align="char">
943<para>Undocumented.</para>
944</entry>
945 </row></tbody></tgroup></informaltable>
946&return-value-dvb;
947</section>
948
949<section id="DMX_GET_CAPS"
950role="subsection"><title>DMX_GET_CAPS</title>
951<para>DESCRIPTION
952</para>
953<informaltable><tgroup cols="1"><tbody><row><entry
954 align="char">
955<para>This ioctl is undocumented. Documentation is welcome.</para>
956</entry>
957 </row></tbody></tgroup></informaltable>
958<para>SYNOPSIS
959</para>
960<informaltable><tgroup cols="1"><tbody><row><entry
961 align="char">
962<para>int ioctl(fd, int request = DMX_GET_CAPS,
963 dmx_caps_t *);</para>
964</entry>
965 </row></tbody></tgroup></informaltable>
966<para>PARAMETERS
967</para>
968<informaltable><tgroup cols="2"><tbody><row><entry
969 align="char">
970<para>int fd</para>
971</entry><entry
972 align="char">
973<para>File descriptor returned by a previous call to open().</para>
974</entry>
975 </row><row><entry
976 align="char">
977<para>int request</para>
978</entry><entry
979 align="char">
980<para>Equals DMX_GET_CAPS for this command.</para>
981</entry>
982 </row><row><entry
983 align="char">
984<para>dmx_caps_t *
985</para>
986</entry><entry
987 align="char">
988<para>Undocumented.</para>
989</entry>
990 </row></tbody></tgroup></informaltable>
991&return-value-dvb;
992</section>
993
994<section id="DMX_SET_SOURCE"
995role="subsection"><title>DMX_SET_SOURCE</title>
996<para>DESCRIPTION
997</para>
998<informaltable><tgroup cols="1"><tbody><row><entry
999 align="char">
1000<para>This ioctl is undocumented. Documentation is welcome.</para>
1001</entry>
1002 </row></tbody></tgroup></informaltable>
1003<para>SYNOPSIS
1004</para>
1005<informaltable><tgroup cols="1"><tbody><row><entry
1006 align="char">
1007<para>int ioctl(fd, int request = DMX_SET_SOURCE,
1008 dmx_source_t *);</para>
1009</entry>
1010 </row></tbody></tgroup></informaltable>
1011<para>PARAMETERS
1012</para>
1013<informaltable><tgroup cols="2"><tbody><row><entry
1014 align="char">
1015<para>int fd</para>
1016</entry><entry
1017 align="char">
1018<para>File descriptor returned by a previous call to open().</para>
1019</entry>
1020 </row><row><entry
1021 align="char">
1022<para>int request</para>
1023</entry><entry
1024 align="char">
1025<para>Equals DMX_SET_SOURCE for this command.</para>
1026</entry>
1027 </row><row><entry
1028 align="char">
1029<para>dmx_source_t *
1030</para>
1031</entry><entry
1032 align="char">
1033<para>Undocumented.</para>
1034</entry>
1035 </row></tbody></tgroup></informaltable>
1036&return-value-dvb;
1037</section>
1038
1039<section id="DMX_ADD_PID"
1040role="subsection"><title>DMX_ADD_PID</title>
1041<para>DESCRIPTION
1042</para>
1043<informaltable><tgroup cols="1"><tbody><row><entry
1044 align="char">
1045<para>This ioctl is undocumented. Documentation is welcome.</para>
1046</entry>
1047 </row></tbody></tgroup></informaltable>
1048<para>SYNOPSIS
1049</para>
1050<informaltable><tgroup cols="1"><tbody><row><entry
1051 align="char">
1052<para>int ioctl(fd, int request = DMX_ADD_PID,
1053 __u16 *);</para>
1054</entry>
1055 </row></tbody></tgroup></informaltable>
1056<para>PARAMETERS
1057</para>
1058<informaltable><tgroup cols="2"><tbody><row><entry
1059 align="char">
1060<para>int fd</para>
1061</entry><entry
1062 align="char">
1063<para>File descriptor returned by a previous call to open().</para>
1064</entry>
1065 </row><row><entry
1066 align="char">
1067<para>int request</para>
1068</entry><entry
1069 align="char">
1070<para>Equals DMX_ADD_PID for this command.</para>
1071</entry>
1072 </row><row><entry
1073 align="char">
1074<para>__u16 *
1075</para>
1076</entry><entry
1077 align="char">
1078<para>Undocumented.</para>
1079</entry>
1080 </row></tbody></tgroup></informaltable>
1081&return-value-dvb;
1082</section>
1083
1084<section id="DMX_REMOVE_PID"
1085role="subsection"><title>DMX_REMOVE_PID</title>
1086<para>DESCRIPTION
1087</para>
1088<informaltable><tgroup cols="1"><tbody><row><entry
1089 align="char">
1090<para>This ioctl is undocumented. Documentation is welcome.</para>
1091</entry>
1092 </row></tbody></tgroup></informaltable>
1093<para>SYNOPSIS
1094</para>
1095<informaltable><tgroup cols="1"><tbody><row><entry
1096 align="char">
1097<para>int ioctl(fd, int request = DMX_REMOVE_PID,
1098 __u16 *);</para>
1099</entry>
1100 </row></tbody></tgroup></informaltable>
1101<para>PARAMETERS
1102</para>
1103<informaltable><tgroup cols="2"><tbody><row><entry
1104 align="char">
1105<para>int fd</para>
1106</entry><entry
1107 align="char">
1108<para>File descriptor returned by a previous call to open().</para>
1109</entry>
1110 </row><row><entry
1111 align="char">
1112<para>int request</para>
1113</entry><entry
1114 align="char">
1115<para>Equals DMX_REMOVE_PID for this command.</para>
1116</entry>
1117 </row><row><entry
1118 align="char">
1119<para>__u16 *
1120</para>
1121</entry><entry
1122 align="char">
1123<para>Undocumented.</para>
1124</entry>
1125 </row></tbody></tgroup></informaltable>
1126&return-value-dvb;
1127</section>
1128
1129
1130</section>
diff --git a/Documentation/DocBook/media/dvb/dvbapi.xml b/Documentation/DocBook/media/dvb/dvbapi.xml
index 2ab6ddcfc4e0..757488b24f4f 100644
--- a/Documentation/DocBook/media/dvb/dvbapi.xml
+++ b/Documentation/DocBook/media/dvb/dvbapi.xml
@@ -28,7 +28,7 @@
28 <holder>Convergence GmbH</holder> 28 <holder>Convergence GmbH</holder>
29</copyright> 29</copyright>
30<copyright> 30<copyright>
31 <year>2009-2011</year> 31 <year>2009-2012</year>
32 <holder>Mauro Carvalho Chehab</holder> 32 <holder>Mauro Carvalho Chehab</holder>
33</copyright> 33</copyright>
34 34
@@ -84,7 +84,7 @@ Added ISDB-T test originally written by Patrick Boettcher
84 84
85 85
86<title>LINUX DVB API</title> 86<title>LINUX DVB API</title>
87<subtitle>Version 5.2</subtitle> 87<subtitle>Version 5.8</subtitle>
88<!-- ADD THE CHAPTERS HERE --> 88<!-- ADD THE CHAPTERS HERE -->
89 <chapter id="dvb_introdution"> 89 <chapter id="dvb_introdution">
90 &sub-intro; 90 &sub-intro;
diff --git a/Documentation/DocBook/media/dvb/dvbproperty.xml b/Documentation/DocBook/media/dvb/dvbproperty.xml
index e633c097a8d1..957e3acaae8e 100644
--- a/Documentation/DocBook/media/dvb/dvbproperty.xml
+++ b/Documentation/DocBook/media/dvb/dvbproperty.xml
@@ -194,6 +194,7 @@ get/set up to 64 properties. The actual meaning of each property is described on
194 APSK_16, 194 APSK_16,
195 APSK_32, 195 APSK_32,
196 DQPSK, 196 DQPSK,
197 QAM_4_NR,
197 } fe_modulation_t; 198 } fe_modulation_t;
198</programlisting> 199</programlisting>
199 </section> 200 </section>
@@ -265,6 +266,7 @@ typedef enum fe_code_rate {
265 FEC_AUTO, 266 FEC_AUTO,
266 FEC_3_5, 267 FEC_3_5,
267 FEC_9_10, 268 FEC_9_10,
269 FEC_2_5,
268} fe_code_rate_t; 270} fe_code_rate_t;
269 </programlisting> 271 </programlisting>
270 <para>which correspond to error correction rates of 1/2, 2/3, etc., 272 <para>which correspond to error correction rates of 1/2, 2/3, etc.,
@@ -351,7 +353,7 @@ typedef enum fe_delivery_system {
351 SYS_ISDBC, 353 SYS_ISDBC,
352 SYS_ATSC, 354 SYS_ATSC,
353 SYS_ATSCMH, 355 SYS_ATSCMH,
354 SYS_DMBTH, 356 SYS_DTMB,
355 SYS_CMMB, 357 SYS_CMMB,
356 SYS_DAB, 358 SYS_DAB,
357 SYS_DVBT2, 359 SYS_DVBT2,
@@ -567,28 +569,33 @@ typedef enum fe_delivery_system {
567 <title><constant>DTV_ATSCMH_RS_FRAME_MODE</constant></title> 569 <title><constant>DTV_ATSCMH_RS_FRAME_MODE</constant></title>
568 <para>RS frame mode.</para> 570 <para>RS frame mode.</para>
569 <para>Possible values are:</para> 571 <para>Possible values are:</para>
572 <para id="atscmh-rs-frame-mode">
570<programlisting> 573<programlisting>
571typedef enum atscmh_rs_frame_mode { 574typedef enum atscmh_rs_frame_mode {
572 ATSCMH_RSFRAME_PRI_ONLY = 0, 575 ATSCMH_RSFRAME_PRI_ONLY = 0,
573 ATSCMH_RSFRAME_PRI_SEC = 1, 576 ATSCMH_RSFRAME_PRI_SEC = 1,
574} atscmh_rs_frame_mode_t; 577} atscmh_rs_frame_mode_t;
575</programlisting> 578</programlisting>
579 </para>
576 </section> 580 </section>
577 <section id="DTV-ATSCMH-RS-FRAME-ENSEMBLE"> 581 <section id="DTV-ATSCMH-RS-FRAME-ENSEMBLE">
578 <title><constant>DTV_ATSCMH_RS_FRAME_ENSEMBLE</constant></title> 582 <title><constant>DTV_ATSCMH_RS_FRAME_ENSEMBLE</constant></title>
579 <para>RS frame ensemble.</para> 583 <para>RS frame ensemble.</para>
580 <para>Possible values are:</para> 584 <para>Possible values are:</para>
585 <para id="atscmh-rs-frame-ensemble">
581<programlisting> 586<programlisting>
582typedef enum atscmh_rs_frame_ensemble { 587typedef enum atscmh_rs_frame_ensemble {
583 ATSCMH_RSFRAME_ENS_PRI = 0, 588 ATSCMH_RSFRAME_ENS_PRI = 0,
584 ATSCMH_RSFRAME_ENS_SEC = 1, 589 ATSCMH_RSFRAME_ENS_SEC = 1,
585} atscmh_rs_frame_ensemble_t; 590} atscmh_rs_frame_ensemble_t;
586</programlisting> 591</programlisting>
592 </para>
587 </section> 593 </section>
588 <section id="DTV-ATSCMH-RS-CODE-MODE-PRI"> 594 <section id="DTV-ATSCMH-RS-CODE-MODE-PRI">
589 <title><constant>DTV_ATSCMH_RS_CODE_MODE_PRI</constant></title> 595 <title><constant>DTV_ATSCMH_RS_CODE_MODE_PRI</constant></title>
590 <para>RS code mode (primary).</para> 596 <para>RS code mode (primary).</para>
591 <para>Possible values are:</para> 597 <para>Possible values are:</para>
598 <para id="atscmh-rs-code-mode">
592<programlisting> 599<programlisting>
593typedef enum atscmh_rs_code_mode { 600typedef enum atscmh_rs_code_mode {
594 ATSCMH_RSCODE_211_187 = 0, 601 ATSCMH_RSCODE_211_187 = 0,
@@ -596,6 +603,7 @@ typedef enum atscmh_rs_code_mode {
596 ATSCMH_RSCODE_235_187 = 2, 603 ATSCMH_RSCODE_235_187 = 2,
597} atscmh_rs_code_mode_t; 604} atscmh_rs_code_mode_t;
598</programlisting> 605</programlisting>
606 </para>
599 </section> 607 </section>
600 <section id="DTV-ATSCMH-RS-CODE-MODE-SEC"> 608 <section id="DTV-ATSCMH-RS-CODE-MODE-SEC">
601 <title><constant>DTV_ATSCMH_RS_CODE_MODE_SEC</constant></title> 609 <title><constant>DTV_ATSCMH_RS_CODE_MODE_SEC</constant></title>
@@ -613,23 +621,27 @@ typedef enum atscmh_rs_code_mode {
613 <title><constant>DTV_ATSCMH_SCCC_BLOCK_MODE</constant></title> 621 <title><constant>DTV_ATSCMH_SCCC_BLOCK_MODE</constant></title>
614 <para>Series Concatenated Convolutional Code Block Mode.</para> 622 <para>Series Concatenated Convolutional Code Block Mode.</para>
615 <para>Possible values are:</para> 623 <para>Possible values are:</para>
624 <para id="atscmh-sccc-block-mode">
616<programlisting> 625<programlisting>
617typedef enum atscmh_sccc_block_mode { 626typedef enum atscmh_sccc_block_mode {
618 ATSCMH_SCCC_BLK_SEP = 0, 627 ATSCMH_SCCC_BLK_SEP = 0,
619 ATSCMH_SCCC_BLK_COMB = 1, 628 ATSCMH_SCCC_BLK_COMB = 1,
620} atscmh_sccc_block_mode_t; 629} atscmh_sccc_block_mode_t;
621</programlisting> 630</programlisting>
631 </para>
622 </section> 632 </section>
623 <section id="DTV-ATSCMH-SCCC-CODE-MODE-A"> 633 <section id="DTV-ATSCMH-SCCC-CODE-MODE-A">
624 <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_A</constant></title> 634 <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_A</constant></title>
625 <para>Series Concatenated Convolutional Code Rate.</para> 635 <para>Series Concatenated Convolutional Code Rate.</para>
626 <para>Possible values are:</para> 636 <para>Possible values are:</para>
637 <para id="atscmh-sccc-code-mode">
627<programlisting> 638<programlisting>
628typedef enum atscmh_sccc_code_mode { 639typedef enum atscmh_sccc_code_mode {
629 ATSCMH_SCCC_CODE_HLF = 0, 640 ATSCMH_SCCC_CODE_HLF = 0,
630 ATSCMH_SCCC_CODE_QTR = 1, 641 ATSCMH_SCCC_CODE_QTR = 1,
631} atscmh_sccc_code_mode_t; 642} atscmh_sccc_code_mode_t;
632</programlisting> 643</programlisting>
644 </para>
633 </section> 645 </section>
634 <section id="DTV-ATSCMH-SCCC-CODE-MODE-B"> 646 <section id="DTV-ATSCMH-SCCC-CODE-MODE-B">
635 <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_B</constant></title> 647 <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_B</constant></title>
@@ -725,6 +737,9 @@ typedef enum fe_guard_interval {
725 GUARD_INTERVAL_1_128, 737 GUARD_INTERVAL_1_128,
726 GUARD_INTERVAL_19_128, 738 GUARD_INTERVAL_19_128,
727 GUARD_INTERVAL_19_256, 739 GUARD_INTERVAL_19_256,
740 GUARD_INTERVAL_PN420,
741 GUARD_INTERVAL_PN595,
742 GUARD_INTERVAL_PN945,
728} fe_guard_interval_t; 743} fe_guard_interval_t;
729</programlisting> 744</programlisting>
730 745
@@ -733,6 +748,7 @@ typedef enum fe_guard_interval {
733 try to find the correct guard interval (if capable) and will use TMCC to fill 748 try to find the correct guard interval (if capable) and will use TMCC to fill
734 in the missing parameters.</para> 749 in the missing parameters.</para>
735 <para>2) Intervals 1/128, 19/128 and 19/256 are used only for DVB-T2 at present</para> 750 <para>2) Intervals 1/128, 19/128 and 19/256 are used only for DVB-T2 at present</para>
751 <para>3) DTMB specifies PN420, PN595 and PN945.</para>
736 </section> 752 </section>
737 <section id="DTV-TRANSMISSION-MODE"> 753 <section id="DTV-TRANSMISSION-MODE">
738 <title><constant>DTV_TRANSMISSION_MODE</constant></title> 754 <title><constant>DTV_TRANSMISSION_MODE</constant></title>
@@ -749,6 +765,8 @@ typedef enum fe_transmit_mode {
749 TRANSMISSION_MODE_1K, 765 TRANSMISSION_MODE_1K,
750 TRANSMISSION_MODE_16K, 766 TRANSMISSION_MODE_16K,
751 TRANSMISSION_MODE_32K, 767 TRANSMISSION_MODE_32K,
768 TRANSMISSION_MODE_C1,
769 TRANSMISSION_MODE_C3780,
752} fe_transmit_mode_t; 770} fe_transmit_mode_t;
753</programlisting> 771</programlisting>
754 <para>Notes:</para> 772 <para>Notes:</para>
@@ -760,6 +778,7 @@ typedef enum fe_transmit_mode {
760 use TMCC to fill in the missing parameters.</para> 778 use TMCC to fill in the missing parameters.</para>
761 <para>3) DVB-T specifies 2K and 8K as valid sizes.</para> 779 <para>3) DVB-T specifies 2K and 8K as valid sizes.</para>
762 <para>4) DVB-T2 specifies 1K, 2K, 4K, 8K, 16K and 32K.</para> 780 <para>4) DVB-T2 specifies 1K, 2K, 4K, 8K, 16K and 32K.</para>
781 <para>5) DTMB specifies C1 and C3780.</para>
763 </section> 782 </section>
764 <section id="DTV-HIERARCHY"> 783 <section id="DTV-HIERARCHY">
765 <title><constant>DTV_HIERARCHY</constant></title> 784 <title><constant>DTV_HIERARCHY</constant></title>
@@ -774,17 +793,28 @@ typedef enum fe_hierarchy {
774 } fe_hierarchy_t; 793 } fe_hierarchy_t;
775 </programlisting> 794 </programlisting>
776 </section> 795 </section>
777 <section id="DTV-ISDBS-TS-ID"> 796 <section id="DTV-STREAM-ID">
778 <title><constant>DTV_ISDBS_TS_ID</constant></title> 797 <title><constant>DTV_STREAM_ID</constant></title>
779 <para>Currently unused.</para> 798 <para>DVB-S2, DVB-T2 and ISDB-S support the transmission of several
799 streams on a single transport stream.
800 This property enables the DVB driver to handle substream filtering,
801 when supported by the hardware.
802 By default, substream filtering is disabled.
803 </para><para>
804 For DVB-S2 and DVB-T2, the valid substream id range is from 0 to 255.
805 </para><para>
806 For ISDB, the valid substream id range is from 1 to 65535.
807 </para><para>
808 To disable it, you should use the special macro NO_STREAM_ID_FILTER.
809 </para><para>
810 Note: any value outside the id range also disables filtering.
811 </para>
780 </section> 812 </section>
781 <section id="DTV-DVBT2-PLP-ID"> 813 <section id="DTV-DVBT2-PLP-ID-LEGACY">
782 <title><constant>DTV_DVBT2_PLP_ID</constant></title> 814 <title><constant>DTV_DVBT2_PLP_ID_LEGACY</constant></title>
783 <para>DVB-T2 supports Physical Layer Pipes (PLP) to allow transmission of 815 <para>Obsolete, replaced with DTV_STREAM_ID.</para>
784 many data types via a single multiplex. The API will soon support this
785 at which point this section will be expanded.</para>
786 </section> 816 </section>
787 <section id="DTV_ENUM_DELSYS"> 817 <section id="DTV-ENUM-DELSYS">
788 <title><constant>DTV_ENUM_DELSYS</constant></title> 818 <title><constant>DTV_ENUM_DELSYS</constant></title>
789 <para>A Multi standard frontend needs to advertise the delivery systems provided. 819 <para>A Multi standard frontend needs to advertise the delivery systems provided.
790 Applications need to enumerate the provided delivery systems, before using 820 Applications need to enumerate the provided delivery systems, before using
@@ -796,6 +826,29 @@ typedef enum fe_hierarchy {
796 FE_GET_INFO. In the case of a legacy frontend, the result is just the same 826 FE_GET_INFO. In the case of a legacy frontend, the result is just the same
797 as with FE_GET_INFO, but in a more structured format </para> 827 as with FE_GET_INFO, but in a more structured format </para>
798 </section> 828 </section>
829 <section id="DTV-INTERLEAVING">
830 <title><constant>DTV_INTERLEAVING</constant></title>
831 <para id="fe-interleaving">Interleaving mode</para>
832 <programlisting>
833enum fe_interleaving {
834 INTERLEAVING_NONE,
835 INTERLEAVING_AUTO,
836 INTERLEAVING_240,
837 INTERLEAVING_720,
838};
839 </programlisting>
840 </section>
841 <section id="DTV-LNA">
842 <title><constant>DTV_LNA</constant></title>
843 <para>Low-noise amplifier.</para>
844 <para>Hardware might offer controllable LNA which can be set manually
845 using that parameter. Usually LNA could be found only from
846 terrestrial devices if at all.</para>
847 <para>Possible values: 0, 1, LNA_AUTO</para>
848 <para>0, LNA off</para>
849 <para>1, LNA on</para>
850 <para>use the special macro LNA_AUTO to set LNA auto</para>
851 </section>
799</section> 852</section>
800 <section id="frontend-property-terrestrial-systems"> 853 <section id="frontend-property-terrestrial-systems">
801 <title>Properties used on terrestrial delivery systems</title> 854 <title>Properties used on terrestrial delivery systems</title>
@@ -816,6 +869,7 @@ typedef enum fe_hierarchy {
816 <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem> 869 <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem>
817 <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem> 870 <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem>
818 <listitem><para><link linkend="DTV-HIERARCHY"><constant>DTV_HIERARCHY</constant></link></para></listitem> 871 <listitem><para><link linkend="DTV-HIERARCHY"><constant>DTV_HIERARCHY</constant></link></para></listitem>
872 <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem>
819 </itemizedlist> 873 </itemizedlist>
820 </section> 874 </section>
821 <section id="dvbt2-params"> 875 <section id="dvbt2-params">
@@ -838,7 +892,8 @@ typedef enum fe_hierarchy {
838 <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem> 892 <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem>
839 <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem> 893 <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem>
840 <listitem><para><link linkend="DTV-HIERARCHY"><constant>DTV_HIERARCHY</constant></link></para></listitem> 894 <listitem><para><link linkend="DTV-HIERARCHY"><constant>DTV_HIERARCHY</constant></link></para></listitem>
841 <listitem><para><link linkend="DTV-DVBT2-PLP-ID"><constant>DTV_DVBT2_PLP_ID</constant></link></para></listitem> 895 <listitem><para><link linkend="DTV-STREAM-ID"><constant>DTV_STREAM_ID</constant></link></para></listitem>
896 <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem>
842 </itemizedlist> 897 </itemizedlist>
843 </section> 898 </section>
844 <section id="isdbt"> 899 <section id="isdbt">
@@ -925,13 +980,32 @@ typedef enum fe_hierarchy {
925 <listitem><para><link linkend="DTV-ATSCMH-PRC"><constant>DTV_ATSCMH_PRC</constant></link></para></listitem> 980 <listitem><para><link linkend="DTV-ATSCMH-PRC"><constant>DTV_ATSCMH_PRC</constant></link></para></listitem>
926 <listitem><para><link linkend="DTV-ATSCMH-RS-FRAME-MODE"><constant>DTV_ATSCMH_RS_FRAME_MODE</constant></link></para></listitem> 981 <listitem><para><link linkend="DTV-ATSCMH-RS-FRAME-MODE"><constant>DTV_ATSCMH_RS_FRAME_MODE</constant></link></para></listitem>
927 <listitem><para><link linkend="DTV-ATSCMH-RS-FRAME-ENSEMBLE"><constant>DTV_ATSCMH_RS_FRAME_ENSEMBLE</constant></link></para></listitem> 982 <listitem><para><link linkend="DTV-ATSCMH-RS-FRAME-ENSEMBLE"><constant>DTV_ATSCMH_RS_FRAME_ENSEMBLE</constant></link></para></listitem>
928 <listitem><para><link linkend="DTV-ATSCMH-CODE-MODE-PRI"><constant>DTV_ATSCMH_CODE_MODE_PRI</constant></link></para></listitem> 983 <listitem><para><link linkend="DTV-ATSCMH-RS-CODE-MODE-PRI"><constant>DTV_ATSCMH_RS_CODE_MODE_PRI</constant></link></para></listitem>
929 <listitem><para><link linkend="DTV-ATSCMH-CODE-MODE-SEC"><constant>DTV_ATSCMH_CODE_MODE_SEC</constant></link></para></listitem> 984 <listitem><para><link linkend="DTV-ATSCMH-RS-CODE-MODE-SEC"><constant>DTV_ATSCMH_RS_CODE_MODE_SEC</constant></link></para></listitem>
930 <listitem><para><link linkend="DTV-ATSCMH-SCCC-BLOCK-MODE"><constant>DTV_ATSCMH_SCCC_BLOCK_MODE</constant></link></para></listitem> 985 <listitem><para><link linkend="DTV-ATSCMH-SCCC-BLOCK-MODE"><constant>DTV_ATSCMH_SCCC_BLOCK_MODE</constant></link></para></listitem>
931 <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE_MODE-A"><constant>DTV_ATSCMH_SCCC_CODE_MODE_A</constant></link></para></listitem> 986 <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-A"><constant>DTV_ATSCMH_SCCC_CODE_MODE_A</constant></link></para></listitem>
932 <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE_MODE-B"><constant>DTV_ATSCMH_SCCC_CODE_MODE_B</constant></link></para></listitem> 987 <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-B"><constant>DTV_ATSCMH_SCCC_CODE_MODE_B</constant></link></para></listitem>
933 <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE_MODE-C"><constant>DTV_ATSCMH_SCCC_CODE_MODE_C</constant></link></para></listitem> 988 <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-C"><constant>DTV_ATSCMH_SCCC_CODE_MODE_C</constant></link></para></listitem>
934 <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE_MODE-D"><constant>DTV_ATSCMH_SCCC_CODE_MODE_D</constant></link></para></listitem> 989 <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-D"><constant>DTV_ATSCMH_SCCC_CODE_MODE_D</constant></link></para></listitem>
990 </itemizedlist>
991 </section>
992 <section id="dtmb-params">
993 <title>DTMB delivery system</title>
994 <para>The following parameters are valid for DTMB:</para>
995 <itemizedlist mark='opencircle'>
996 <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem>
997 <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem>
998 <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem>
999 <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem>
1000 <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
1001 <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
1002 <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem>
1003 <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
1004 <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem>
1005 <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem>
1006 <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem>
1007 <listitem><para><link linkend="DTV-INTERLEAVING"><constant>DTV_INTERLEAVING</constant></link></para></listitem>
1008 <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem>
935 </itemizedlist> 1009 </itemizedlist>
936 </section> 1010 </section>
937 </section> 1011 </section>
@@ -952,6 +1026,7 @@ typedef enum fe_hierarchy {
952 <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> 1026 <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
953 <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem> 1027 <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem>
954 <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem> 1028 <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem>
1029 <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem>
955 </itemizedlist> 1030 </itemizedlist>
956 </section> 1031 </section>
957 <section id="dvbc-annex-b-params"> 1032 <section id="dvbc-annex-b-params">
@@ -966,6 +1041,7 @@ typedef enum fe_hierarchy {
966 <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem> 1041 <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
967 <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> 1042 <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
968 <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> 1043 <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
1044 <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem>
969 </itemizedlist> 1045 </itemizedlist>
970 </section> 1046 </section>
971 </section> 1047 </section>
@@ -999,6 +1075,7 @@ typedef enum fe_hierarchy {
999 <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> 1075 <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
1000 <listitem><para><link linkend="DTV-PILOT"><constant>DTV_PILOT</constant></link></para></listitem> 1076 <listitem><para><link linkend="DTV-PILOT"><constant>DTV_PILOT</constant></link></para></listitem>
1001 <listitem><para><link linkend="DTV-ROLLOFF"><constant>DTV_ROLLOFF</constant></link></para></listitem> 1077 <listitem><para><link linkend="DTV-ROLLOFF"><constant>DTV_ROLLOFF</constant></link></para></listitem>
1078 <listitem><para><link linkend="DTV-STREAM-ID"><constant>DTV_STREAM_ID</constant></link></para></listitem>
1002 </itemizedlist> 1079 </itemizedlist>
1003 </section> 1080 </section>
1004 <section id="turbo-params"> 1081 <section id="turbo-params">
@@ -1021,7 +1098,7 @@ typedef enum fe_hierarchy {
1021 <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem> 1098 <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem>
1022 <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem> 1099 <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem>
1023 <listitem><para><link linkend="DTV-VOLTAGE"><constant>DTV_VOLTAGE</constant></link></para></listitem> 1100 <listitem><para><link linkend="DTV-VOLTAGE"><constant>DTV_VOLTAGE</constant></link></para></listitem>
1024 <listitem><para><link linkend="DTV-ISDBS-TS-ID"><constant>DTV_ISDBS_TS_ID</constant></link></para></listitem> 1101 <listitem><para><link linkend="DTV-STREAM-ID"><constant>DTV_STREAM_ID</constant></link></para></listitem>
1025 </itemizedlist> 1102 </itemizedlist>
1026 </section> 1103 </section>
1027 </section> 1104 </section>
diff --git a/Documentation/DocBook/media/dvb/frontend.xml b/Documentation/DocBook/media/dvb/frontend.xml
index aeaed59d0f1f..426c2526a454 100644
--- a/Documentation/DocBook/media/dvb/frontend.xml
+++ b/Documentation/DocBook/media/dvb/frontend.xml
@@ -66,7 +66,7 @@ supported via the new <link linkend="FE_GET_SET_PROPERTY">FE_GET_PROPERTY/FE_GET
66 66
67<para>The usage of this field is deprecated, as it doesn't report all supported standards, and 67<para>The usage of this field is deprecated, as it doesn't report all supported standards, and
68will provide an incomplete information for frontends that support multiple delivery systems. 68will provide an incomplete information for frontends that support multiple delivery systems.
69Please use <link linkend="DTV_ENUM_DELSYS">DTV_ENUM_DELSYS</link> instead.</para> 69Please use <link linkend="DTV-ENUM-DELSYS">DTV_ENUM_DELSYS</link> instead.</para>
70</section> 70</section>
71 71
72<section id="fe-caps-t"> 72<section id="fe-caps-t">
@@ -101,6 +101,7 @@ a specific frontend type.</para>
101 FE_CAN_8VSB = 0x200000, 101 FE_CAN_8VSB = 0x200000,
102 FE_CAN_16VSB = 0x400000, 102 FE_CAN_16VSB = 0x400000,
103 FE_HAS_EXTENDED_CAPS = 0x800000, 103 FE_HAS_EXTENDED_CAPS = 0x800000,
104 FE_CAN_MULTISTREAM = 0x4000000,
104 FE_CAN_TURBO_FEC = 0x8000000, 105 FE_CAN_TURBO_FEC = 0x8000000,
105 FE_CAN_2G_MODULATION = 0x10000000, 106 FE_CAN_2G_MODULATION = 0x10000000,
106 FE_NEEDS_BENDING = 0x20000000, 107 FE_NEEDS_BENDING = 0x20000000,
@@ -207,18 +208,44 @@ spec.</para>
207<para>Several functions of the frontend device use the fe_status data type defined 208<para>Several functions of the frontend device use the fe_status data type defined
208by</para> 209by</para>
209<programlisting> 210<programlisting>
210 typedef enum fe_status { 211typedef enum fe_status {
211 FE_HAS_SIGNAL = 0x01, /&#x22C6; found something above the noise level &#x22C6;/ 212 FE_HAS_SIGNAL = 0x01,
212 FE_HAS_CARRIER = 0x02, /&#x22C6; found a DVB signal &#x22C6;/ 213 FE_HAS_CARRIER = 0x02,
213 FE_HAS_VITERBI = 0x04, /&#x22C6; FEC is stable &#x22C6;/ 214 FE_HAS_VITERBI = 0x04,
214 FE_HAS_SYNC = 0x08, /&#x22C6; found sync bytes &#x22C6;/ 215 FE_HAS_SYNC = 0x08,
215 FE_HAS_LOCK = 0x10, /&#x22C6; everything's working... &#x22C6;/ 216 FE_HAS_LOCK = 0x10,
216 FE_TIMEDOUT = 0x20, /&#x22C6; no lock within the last ~2 seconds &#x22C6;/ 217 FE_TIMEDOUT = 0x20,
217 FE_REINIT = 0x40 /&#x22C6; frontend was reinitialized, &#x22C6;/ 218 FE_REINIT = 0x40,
218 } fe_status_t; /&#x22C6; application is recommned to reset &#x22C6;/ 219} fe_status_t;
219</programlisting> 220</programlisting>
220<para>to indicate the current state and/or state changes of the frontend hardware. 221<para>to indicate the current state and/or state changes of the frontend hardware:
221</para> 222</para>
223
224<informaltable><tgroup cols="2"><tbody>
225<row>
226<entry align="char">FE_HAS_SIGNAL</entry>
227<entry align="char">The frontend has found something above the noise level</entry>
228</row><row>
229<entry align="char">FE_HAS_CARRIER</entry>
230<entry align="char">The frontend has found a DVB signal</entry>
231</row><row>
232<entry align="char">FE_HAS_VITERBI</entry>
233<entry align="char">The frontend FEC code is stable</entry>
234</row><row>
235<entry align="char">FE_HAS_SYNC</entry>
236<entry align="char">Syncronization bytes was found</entry>
237</row><row>
238<entry align="char">FE_HAS_LOCK</entry>
239<entry align="char">The DVB were locked and everything is working</entry>
240</row><row>
241<entry align="char">FE_TIMEDOUT</entry>
242<entry align="char">no lock within the last about 2 seconds</entry>
243</row><row>
244<entry align="char">FE_REINIT</entry>
245<entry align="char">The frontend was reinitialized, application is
246recommended to reset DiSEqC, tone and parameters</entry>
247</row>
248</tbody></tgroup></informaltable>
222 249
223</section> 250</section>
224 251
@@ -238,7 +265,7 @@ and to add newer delivery systems.</para>
238<constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> instead, in 265<constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> instead, in
239order to be able to support the newer System Delivery like DVB-S2, DVB-T2, 266order to be able to support the newer System Delivery like DVB-S2, DVB-T2,
240DVB-C2, ISDB, etc.</para> 267DVB-C2, ISDB, etc.</para>
241<para>All kinds of parameters are combined as an union in the FrontendParameters structure:</para> 268<para>All kinds of parameters are combined as an union in the FrontendParameters structure:
242<programlisting> 269<programlisting>
243struct dvb_frontend_parameters { 270struct dvb_frontend_parameters {
244 uint32_t frequency; /&#x22C6; (absolute) frequency in Hz for QAM/OFDM &#x22C6;/ 271 uint32_t frequency; /&#x22C6; (absolute) frequency in Hz for QAM/OFDM &#x22C6;/
@@ -251,12 +278,13 @@ struct dvb_frontend_parameters {
251 struct dvb_vsb_parameters vsb; 278 struct dvb_vsb_parameters vsb;
252 } u; 279 } u;
253}; 280};
254</programlisting> 281</programlisting></para>
255<para>In the case of QPSK frontends the <constant>frequency</constant> field specifies the intermediate 282<para>In the case of QPSK frontends the <constant>frequency</constant> field specifies the intermediate
256frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of 283frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of
257the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and 284the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and
258OFDM frontends the <constant>frequency</constant> specifies the absolute frequency and is given in Hz. 285OFDM frontends the <constant>frequency</constant> specifies the absolute frequency and is given in Hz.
259</para> 286</para>
287
260<section id="dvb-qpsk-parameters"> 288<section id="dvb-qpsk-parameters">
261<title>QPSK parameters</title> 289<title>QPSK parameters</title>
262<para>For satellite QPSK frontends you have to use the <constant>dvb_qpsk_parameters</constant> structure:</para> 290<para>For satellite QPSK frontends you have to use the <constant>dvb_qpsk_parameters</constant> structure:</para>
@@ -321,8 +349,8 @@ itself.
321<section id="fe-code-rate-t"> 349<section id="fe-code-rate-t">
322<title>frontend code rate</title> 350<title>frontend code rate</title>
323<para>The possible values for the <constant>fec_inner</constant> field used on 351<para>The possible values for the <constant>fec_inner</constant> field used on
324<link refend="dvb-qpsk-parameters"><constant>struct dvb_qpsk_parameters</constant></link> and 352<link linkend="dvb-qpsk-parameters"><constant>struct dvb_qpsk_parameters</constant></link> and
325<link refend="dvb-qam-parameters"><constant>struct dvb_qam_parameters</constant></link> are: 353<link linkend="dvb-qam-parameters"><constant>struct dvb_qam_parameters</constant></link> are:
326</para> 354</para>
327<programlisting> 355<programlisting>
328typedef enum fe_code_rate { 356typedef enum fe_code_rate {
@@ -347,9 +375,9 @@ detection.
347<section id="fe-modulation-t"> 375<section id="fe-modulation-t">
348<title>frontend modulation type for QAM, OFDM and VSB</title> 376<title>frontend modulation type for QAM, OFDM and VSB</title>
349<para>For cable and terrestrial frontends, e. g. for 377<para>For cable and terrestrial frontends, e. g. for
350<link refend="dvb-qam-parameters"><constant>struct dvb_qpsk_parameters</constant></link>, 378<link linkend="dvb-qam-parameters"><constant>struct dvb_qpsk_parameters</constant></link>,
351<link refend="dvb-ofdm-parameters"><constant>struct dvb_qam_parameters</constant></link> and 379<link linkend="dvb-ofdm-parameters"><constant>struct dvb_qam_parameters</constant></link> and
352<link refend="dvb-vsb-parameters"><constant>struct dvb_qam_parameters</constant></link>, 380<link linkend="dvb-vsb-parameters"><constant>struct dvb_qam_parameters</constant></link>,
353it needs to specify the quadrature modulation mode which can be one of the following: 381it needs to specify the quadrature modulation mode which can be one of the following:
354</para> 382</para>
355<programlisting> 383<programlisting>
@@ -370,8 +398,8 @@ it needs to specify the quadrature modulation mode which can be one of the follo
370 } fe_modulation_t; 398 } fe_modulation_t;
371</programlisting> 399</programlisting>
372</section> 400</section>
373<para>Finally, there are several more parameters for OFDM: 401<section>
374</para> 402<title>More OFDM parameters</title>
375<section id="fe-transmit-mode-t"> 403<section id="fe-transmit-mode-t">
376<title>Number of carriers per channel</title> 404<title>Number of carriers per channel</title>
377<programlisting> 405<programlisting>
@@ -427,6 +455,7 @@ typedef enum fe_hierarchy {
427 } fe_hierarchy_t; 455 } fe_hierarchy_t;
428</programlisting> 456</programlisting>
429</section> 457</section>
458</section>
430 459
431</section> 460</section>
432 461
diff --git a/Documentation/DocBook/media/dvb/intro.xml b/Documentation/DocBook/media/dvb/intro.xml
index 170064a3dc8f..2048b53d19b9 100644
--- a/Documentation/DocBook/media/dvb/intro.xml
+++ b/Documentation/DocBook/media/dvb/intro.xml
@@ -205,7 +205,7 @@ a partial path like:</para>
205additional include file <emphasis 205additional include file <emphasis
206role="tt">linux/dvb/version.h</emphasis> exists, which defines the 206role="tt">linux/dvb/version.h</emphasis> exists, which defines the
207constant <emphasis role="tt">DVB_API_VERSION</emphasis>. This document 207constant <emphasis role="tt">DVB_API_VERSION</emphasis>. This document
208describes <emphasis role="tt">DVB_API_VERSION 5.4</emphasis>. 208describes <emphasis role="tt">DVB_API_VERSION 5.8</emphasis>.
209</para> 209</para>
210 210
211</section> 211</section>
diff --git a/Documentation/DocBook/media/dvb/kdapi.xml b/Documentation/DocBook/media/dvb/kdapi.xml
index 6c67481eaa4b..6c11ec52cbee 100644
--- a/Documentation/DocBook/media/dvb/kdapi.xml
+++ b/Documentation/DocBook/media/dvb/kdapi.xml
@@ -2,7 +2,7 @@
2<para>The kernel demux API defines a driver-internal interface for registering low-level, 2<para>The kernel demux API defines a driver-internal interface for registering low-level,
3hardware specific driver to a hardware independent demux layer. It is only of interest for 3hardware specific driver to a hardware independent demux layer. It is only of interest for
4DVB device driver writers. The header file for this API is named <emphasis role="tt">demux.h</emphasis> and located in 4DVB device driver writers. The header file for this API is named <emphasis role="tt">demux.h</emphasis> and located in
5<emphasis role="tt">drivers/media/dvb/dvb-core</emphasis>. 5<emphasis role="tt">drivers/media/dvb-core</emphasis>.
6</para> 6</para>
7<para>Maintainer note: This section must be reviewed. It is probably out of date. 7<para>Maintainer note: This section must be reviewed. It is probably out of date.
8</para> 8</para>
diff --git a/Documentation/DocBook/media/dvb/net.xml b/Documentation/DocBook/media/dvb/net.xml
index 67d37e5ce597..a193e86941b5 100644
--- a/Documentation/DocBook/media/dvb/net.xml
+++ b/Documentation/DocBook/media/dvb/net.xml
@@ -26,4 +26,131 @@ struct dvb_net_if {
26<title>DVB net Function Calls</title> 26<title>DVB net Function Calls</title>
27<para>To be written&#x2026; 27<para>To be written&#x2026;
28</para> 28</para>
29
30<section id="NET_ADD_IF"
31role="subsection"><title>NET_ADD_IF</title>
32<para>DESCRIPTION
33</para>
34<informaltable><tgroup cols="1"><tbody><row><entry
35 align="char">
36<para>This ioctl is undocumented. Documentation is welcome.</para>
37</entry>
38 </row></tbody></tgroup></informaltable>
39<para>SYNOPSIS
40</para>
41<informaltable><tgroup cols="1"><tbody><row><entry
42 align="char">
43<para>int ioctl(fd, int request = NET_ADD_IF,
44 struct dvb_net_if *if);</para>
45</entry>
46 </row></tbody></tgroup></informaltable>
47<para>PARAMETERS
48</para>
49<informaltable><tgroup cols="2"><tbody><row><entry
50 align="char">
51<para>int fd</para>
52</entry><entry
53 align="char">
54<para>File descriptor returned by a previous call to open().</para>
55</entry>
56 </row><row><entry
57 align="char">
58<para>int request</para>
59</entry><entry
60 align="char">
61<para>Equals NET_ADD_IF for this command.</para>
62</entry>
63 </row><row><entry
64 align="char">
65<para>struct dvb_net_if *if
66</para>
67</entry><entry
68 align="char">
69<para>Undocumented.</para>
70</entry>
71 </row></tbody></tgroup></informaltable>
72&return-value-dvb;
73</section>
74
75<section id="NET_REMOVE_IF"
76role="subsection"><title>NET_REMOVE_IF</title>
77<para>DESCRIPTION
78</para>
79<informaltable><tgroup cols="1"><tbody><row><entry
80 align="char">
81<para>This ioctl is undocumented. Documentation is welcome.</para>
82</entry>
83 </row></tbody></tgroup></informaltable>
84<para>SYNOPSIS
85</para>
86<informaltable><tgroup cols="1"><tbody><row><entry
87 align="char">
88<para>int ioctl(fd, int request = NET_REMOVE_IF);
89</para>
90</entry>
91 </row></tbody></tgroup></informaltable>
92<para>PARAMETERS
93</para>
94<informaltable><tgroup cols="2"><tbody><row><entry
95 align="char">
96<para>int fd</para>
97</entry><entry
98 align="char">
99<para>File descriptor returned by a previous call to open().</para>
100</entry>
101 </row><row><entry
102 align="char">
103<para>int request</para>
104</entry><entry
105 align="char">
106<para>Equals NET_REMOVE_IF for this command.</para>
107</entry>
108 </row></tbody></tgroup></informaltable>
109&return-value-dvb;
110</section>
111
112<section id="NET_GET_IF"
113role="subsection"><title>NET_GET_IF</title>
114<para>DESCRIPTION
115</para>
116<informaltable><tgroup cols="1"><tbody><row><entry
117 align="char">
118<para>This ioctl is undocumented. Documentation is welcome.</para>
119</entry>
120 </row></tbody></tgroup></informaltable>
121<para>SYNOPSIS
122</para>
123<informaltable><tgroup cols="1"><tbody><row><entry
124 align="char">
125<para>int ioctl(fd, int request = NET_GET_IF,
126 struct dvb_net_if *if);</para>
127</entry>
128 </row></tbody></tgroup></informaltable>
129<para>PARAMETERS
130</para>
131<informaltable><tgroup cols="2"><tbody><row><entry
132 align="char">
133<para>int fd</para>
134</entry><entry
135 align="char">
136<para>File descriptor returned by a previous call to open().</para>
137</entry>
138 </row><row><entry
139 align="char">
140<para>int request</para>
141</entry><entry
142 align="char">
143<para>Equals NET_GET_IF for this command.</para>
144</entry>
145 </row><row><entry
146 align="char">
147<para>struct dvb_net_if *if
148</para>
149</entry><entry
150 align="char">
151<para>Undocumented.</para>
152</entry>
153 </row></tbody></tgroup></informaltable>
154&return-value-dvb;
155</section>
29</section> 156</section>
diff --git a/Documentation/DocBook/media/dvb/video.xml b/Documentation/DocBook/media/dvb/video.xml
index 25fb823226b4..3ea1ca7e785e 100644
--- a/Documentation/DocBook/media/dvb/video.xml
+++ b/Documentation/DocBook/media/dvb/video.xml
@@ -15,6 +15,10 @@ the audio and video device as well as the video4linux device.
15<para>The ioctls that deal with SPUs (sub picture units) and navigation packets are only 15<para>The ioctls that deal with SPUs (sub picture units) and navigation packets are only
16supported on some MPEG decoders made for DVD playback. 16supported on some MPEG decoders made for DVD playback.
17</para> 17</para>
18<para>
19These ioctls were also used by V4L2 to control MPEG decoders implemented in V4L2. The use
20of these ioctls for that purpose has been made obsolete and proper V4L2 ioctls or controls
21have been created to replace that functionality.</para>
18<section id="video_types"> 22<section id="video_types">
19<title>Video Data Types</title> 23<title>Video Data Types</title>
20 24
@@ -55,7 +59,7 @@ typedef enum {
55</section> 59</section>
56 60
57<section id="video-stream-source-t"> 61<section id="video-stream-source-t">
58<title>video stream source</title> 62<title>video_stream_source_t</title>
59<para>The video stream source is set through the VIDEO_SELECT_SOURCE call and can take 63<para>The video stream source is set through the VIDEO_SELECT_SOURCE call and can take
60the following values, depending on whether we are replaying from an internal (demuxer) or 64the following values, depending on whether we are replaying from an internal (demuxer) or
61external (user write) source. 65external (user write) source.
@@ -76,7 +80,7 @@ call.
76</section> 80</section>
77 81
78<section id="video-play-state-t"> 82<section id="video-play-state-t">
79<title>video play state</title> 83<title>video_play_state_t</title>
80<para>The following values can be returned by the VIDEO_GET_STATUS call representing the 84<para>The following values can be returned by the VIDEO_GET_STATUS call representing the
81state of video playback. 85state of video playback.
82</para> 86</para>
@@ -90,9 +94,9 @@ typedef enum {
90</section> 94</section>
91 95
92<section id="video-command"> 96<section id="video-command">
97<title>struct video_command</title>
93<para>The structure must be zeroed before use by the application 98<para>The structure must be zeroed before use by the application
94This ensures it can be extended safely in the future.</para> 99This ensures it can be extended safely in the future.</para>
95<title>struct video-command</title>
96<programlisting> 100<programlisting>
97struct video_command { 101struct video_command {
98 __u32 cmd; 102 __u32 cmd;
@@ -121,7 +125,7 @@ struct video_command {
121</section> 125</section>
122 126
123<section id="video-size-t"> 127<section id="video-size-t">
124<title>struct video_size-t</title> 128<title>video_size_t</title>
125<programlisting> 129<programlisting>
126typedef struct { 130typedef struct {
127 int w; 131 int w;
@@ -217,7 +221,7 @@ bits set according to the hardwares capabilities.
217</section> 221</section>
218 222
219<section id="video-system"> 223<section id="video-system">
220<title>video system</title> 224<title>video_system_t</title>
221<para>A call to VIDEO_SET_SYSTEM sets the desired video system for TV output. The 225<para>A call to VIDEO_SET_SYSTEM sets the desired video system for TV output. The
222following system types can be set: 226following system types can be set:
223</para> 227</para>
@@ -263,7 +267,7 @@ call expects the following format for that information:
263 267
264</section> 268</section>
265<section id="video-spu"> 269<section id="video-spu">
266<title>video SPU</title> 270<title>struct video_spu</title>
267<para>Calling VIDEO_SET_SPU deactivates or activates SPU decoding, according to the 271<para>Calling VIDEO_SET_SPU deactivates or activates SPU decoding, according to the
268following format: 272following format:
269</para> 273</para>
@@ -277,12 +281,12 @@ following format:
277 281
278</section> 282</section>
279<section id="video-spu-palette"> 283<section id="video-spu-palette">
280<title>video SPU palette</title> 284<title>struct video_spu_palette</title>
281<para>The following structure is used to set the SPU palette by calling VIDEO_SPU_PALETTE: 285<para>The following structure is used to set the SPU palette by calling VIDEO_SPU_PALETTE:
282</para> 286</para>
283<programlisting> 287<programlisting>
284 typedef 288 typedef
285 struct video_spu_palette{ 289 struct video_spu_palette {
286 int length; 290 int length;
287 uint8_t &#x22C6;palette; 291 uint8_t &#x22C6;palette;
288 } video_spu_palette_t; 292 } video_spu_palette_t;
@@ -290,13 +294,13 @@ following format:
290 294
291</section> 295</section>
292<section id="video-navi-pack"> 296<section id="video-navi-pack">
293<title>video NAVI pack</title> 297<title>struct video_navi_pack</title>
294<para>In order to get the navigational data the following structure has to be passed to the ioctl 298<para>In order to get the navigational data the following structure has to be passed to the ioctl
295VIDEO_GET_NAVI: 299VIDEO_GET_NAVI:
296</para> 300</para>
297<programlisting> 301<programlisting>
298 typedef 302 typedef
299 struct video_navi_pack{ 303 struct video_navi_pack {
300 int length; /&#x22C6; 0 ... 1024 &#x22C6;/ 304 int length; /&#x22C6; 0 ... 1024 &#x22C6;/
301 uint8_t data[1024]; 305 uint8_t data[1024];
302 } video_navi_pack_t; 306 } video_navi_pack_t;
@@ -305,7 +309,7 @@ VIDEO_GET_NAVI:
305 309
306 310
307<section id="video-attributes-t"> 311<section id="video-attributes-t">
308<title>video attributes</title> 312<title>video_attributes_t</title>
309<para>The following attributes can be set by a call to VIDEO_SET_ATTRIBUTES: 313<para>The following attributes can be set by a call to VIDEO_SET_ATTRIBUTES:
310</para> 314</para>
311<programlisting> 315<programlisting>
@@ -541,6 +545,8 @@ VIDEO_GET_NAVI:
541role="subsection"><title>VIDEO_STOP</title> 545role="subsection"><title>VIDEO_STOP</title>
542<para>DESCRIPTION 546<para>DESCRIPTION
543</para> 547</para>
548<para>This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2
549&VIDIOC-DECODER-CMD; instead.</para>
544<informaltable><tgroup cols="1"><tbody><row><entry 550<informaltable><tgroup cols="1"><tbody><row><entry
545 align="char"> 551 align="char">
546<para>This ioctl call asks the Video Device to stop playing the current stream. 552<para>This ioctl call asks the Video Device to stop playing the current stream.
@@ -598,6 +604,8 @@ role="subsection"><title>VIDEO_STOP</title>
598role="subsection"><title>VIDEO_PLAY</title> 604role="subsection"><title>VIDEO_PLAY</title>
599<para>DESCRIPTION 605<para>DESCRIPTION
600</para> 606</para>
607<para>This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2
608&VIDIOC-DECODER-CMD; instead.</para>
601<informaltable><tgroup cols="1"><tbody><row><entry 609<informaltable><tgroup cols="1"><tbody><row><entry
602 align="char"> 610 align="char">
603<para>This ioctl call asks the Video Device to start playing a video stream from the 611<para>This ioctl call asks the Video Device to start playing a video stream from the
@@ -634,6 +642,8 @@ role="subsection"><title>VIDEO_PLAY</title>
634role="subsection"><title>VIDEO_FREEZE</title> 642role="subsection"><title>VIDEO_FREEZE</title>
635<para>DESCRIPTION 643<para>DESCRIPTION
636</para> 644</para>
645<para>This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2
646&VIDIOC-DECODER-CMD; instead.</para>
637<informaltable><tgroup cols="1"><tbody><row><entry 647<informaltable><tgroup cols="1"><tbody><row><entry
638 align="char"> 648 align="char">
639<para>This ioctl call suspends the live video stream being played. Decoding 649<para>This ioctl call suspends the live video stream being played. Decoding
@@ -674,6 +684,8 @@ role="subsection"><title>VIDEO_FREEZE</title>
674role="subsection"><title>VIDEO_CONTINUE</title> 684role="subsection"><title>VIDEO_CONTINUE</title>
675<para>DESCRIPTION 685<para>DESCRIPTION
676</para> 686</para>
687<para>This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2
688&VIDIOC-DECODER-CMD; instead.</para>
677<informaltable><tgroup cols="1"><tbody><row><entry 689<informaltable><tgroup cols="1"><tbody><row><entry
678 align="char"> 690 align="char">
679<para>This ioctl call restarts decoding and playing processes of the video stream 691<para>This ioctl call restarts decoding and playing processes of the video stream
@@ -710,6 +722,9 @@ role="subsection"><title>VIDEO_CONTINUE</title>
710role="subsection"><title>VIDEO_SELECT_SOURCE</title> 722role="subsection"><title>VIDEO_SELECT_SOURCE</title>
711<para>DESCRIPTION 723<para>DESCRIPTION
712</para> 724</para>
725<para>This ioctl is for DVB devices only. This ioctl was also supported by the
726V4L2 ivtv driver, but that has been replaced by the ivtv-specific
727<constant>IVTV_IOC_PASSTHROUGH_MODE</constant> ioctl.</para>
713<informaltable><tgroup cols="1"><tbody><row><entry 728<informaltable><tgroup cols="1"><tbody><row><entry
714 align="char"> 729 align="char">
715<para>This ioctl call informs the video device which source shall be used for the input 730<para>This ioctl call informs the video device which source shall be used for the input
@@ -845,10 +860,160 @@ role="subsection"><title>VIDEO_GET_STATUS</title>
845 </row></tbody></tgroup></informaltable> 860 </row></tbody></tgroup></informaltable>
846&return-value-dvb; 861&return-value-dvb;
847 862
863</section><section id="VIDEO_GET_FRAME_COUNT"
864role="subsection"><title>VIDEO_GET_FRAME_COUNT</title>
865<para>DESCRIPTION
866</para>
867<para>This ioctl is obsolete. Do not use in new drivers. For V4L2 decoders this
868ioctl has been replaced by the <constant>V4L2_CID_MPEG_VIDEO_DEC_FRAME</constant> control.</para>
869<informaltable><tgroup cols="1"><tbody><row><entry
870 align="char">
871<para>This ioctl call asks the Video Device to return the number of displayed frames
872since the decoder was started.</para>
873</entry>
874 </row></tbody></tgroup></informaltable>
875<para>SYNOPSIS
876</para>
877<informaltable><tgroup cols="1"><tbody><row><entry
878 align="char">
879<para>int ioctl(int fd, int request =
880 VIDEO_GET_FRAME_COUNT, __u64 *pts);</para>
881</entry>
882 </row></tbody></tgroup></informaltable>
883<para>PARAMETERS
884</para>
885<informaltable><tgroup cols="2"><tbody><row><entry
886 align="char">
887<para>int fd</para>
888</entry><entry
889 align="char">
890<para>File descriptor returned by a previous call to open().</para>
891</entry>
892 </row><row><entry
893 align="char">
894<para>int request</para>
895</entry><entry
896 align="char">
897<para>Equals VIDEO_GET_FRAME_COUNT for this
898 command.</para>
899</entry>
900 </row><row><entry
901 align="char">
902<para>__u64 *pts
903</para>
904</entry><entry
905 align="char">
906<para>Returns the number of frames displayed since the decoder was started.
907</para>
908</entry>
909 </row></tbody></tgroup></informaltable>
910&return-value-dvb;
911
912</section><section id="VIDEO_GET_PTS"
913role="subsection"><title>VIDEO_GET_PTS</title>
914<para>DESCRIPTION
915</para>
916<para>This ioctl is obsolete. Do not use in new drivers. For V4L2 decoders this
917ioctl has been replaced by the <constant>V4L2_CID_MPEG_VIDEO_DEC_PTS</constant> control.</para>
918<informaltable><tgroup cols="1"><tbody><row><entry
919 align="char">
920<para>This ioctl call asks the Video Device to return the current PTS timestamp.</para>
921</entry>
922 </row></tbody></tgroup></informaltable>
923<para>SYNOPSIS
924</para>
925<informaltable><tgroup cols="1"><tbody><row><entry
926 align="char">
927<para>int ioctl(int fd, int request =
928 VIDEO_GET_PTS, __u64 *pts);</para>
929</entry>
930 </row></tbody></tgroup></informaltable>
931<para>PARAMETERS
932</para>
933<informaltable><tgroup cols="2"><tbody><row><entry
934 align="char">
935<para>int fd</para>
936</entry><entry
937 align="char">
938<para>File descriptor returned by a previous call to open().</para>
939</entry>
940 </row><row><entry
941 align="char">
942<para>int request</para>
943</entry><entry
944 align="char">
945<para>Equals VIDEO_GET_PTS for this
946 command.</para>
947</entry>
948 </row><row><entry
949 align="char">
950<para>__u64 *pts
951</para>
952</entry><entry
953 align="char">
954<para>Returns the 33-bit timestamp as defined in ITU T-REC-H.222.0 / ISO/IEC 13818-1.
955</para>
956<para>
957The PTS should belong to the currently played
958frame if possible, but may also be a value close to it
959like the PTS of the last decoded frame or the last PTS
960extracted by the PES parser.</para>
961</entry>
962 </row></tbody></tgroup></informaltable>
963&return-value-dvb;
964
965</section><section id="VIDEO_GET_FRAME_RATE"
966role="subsection"><title>VIDEO_GET_FRAME_RATE</title>
967<para>DESCRIPTION
968</para>
969<informaltable><tgroup cols="1"><tbody><row><entry
970 align="char">
971<para>This ioctl call asks the Video Device to return the current framerate.</para>
972</entry>
973 </row></tbody></tgroup></informaltable>
974<para>SYNOPSIS
975</para>
976<informaltable><tgroup cols="1"><tbody><row><entry
977 align="char">
978<para>int ioctl(int fd, int request =
979 VIDEO_GET_FRAME_RATE, unsigned int *rate);</para>
980</entry>
981 </row></tbody></tgroup></informaltable>
982<para>PARAMETERS
983</para>
984<informaltable><tgroup cols="2"><tbody><row><entry
985 align="char">
986<para>int fd</para>
987</entry><entry
988 align="char">
989<para>File descriptor returned by a previous call to open().</para>
990</entry>
991 </row><row><entry
992 align="char">
993<para>int request</para>
994</entry><entry
995 align="char">
996<para>Equals VIDEO_GET_FRAME_RATE for this
997 command.</para>
998</entry>
999 </row><row><entry
1000 align="char">
1001<para>unsigned int *rate
1002</para>
1003</entry><entry
1004 align="char">
1005<para>Returns the framerate in number of frames per 1000 seconds.
1006</para>
1007</entry>
1008 </row></tbody></tgroup></informaltable>
1009&return-value-dvb;
1010
848</section><section id="VIDEO_GET_EVENT" 1011</section><section id="VIDEO_GET_EVENT"
849role="subsection"><title>VIDEO_GET_EVENT</title> 1012role="subsection"><title>VIDEO_GET_EVENT</title>
850<para>DESCRIPTION 1013<para>DESCRIPTION
851</para> 1014</para>
1015<para>This ioctl is for DVB devices only. To get events from a V4L2 decoder use the V4L2
1016&VIDIOC-DQEVENT; ioctl instead.</para>
852<informaltable><tgroup cols="1"><tbody><row><entry 1017<informaltable><tgroup cols="1"><tbody><row><entry
853 align="char"> 1018 align="char">
854<para>This ioctl call returns an event of type video_event if available. If an event is 1019<para>This ioctl call returns an event of type video_event if available. If an event is
@@ -914,6 +1079,152 @@ role="subsection"><title>VIDEO_GET_EVENT</title>
914</entry> 1079</entry>
915 </row></tbody></tgroup></informaltable> 1080 </row></tbody></tgroup></informaltable>
916 1081
1082</section><section id="VIDEO_COMMAND"
1083role="subsection"><title>VIDEO_COMMAND</title>
1084<para>DESCRIPTION
1085</para>
1086<para>This ioctl is obsolete. Do not use in new drivers. For V4L2 decoders this
1087ioctl has been replaced by the &VIDIOC-DECODER-CMD; ioctl.</para>
1088<informaltable><tgroup cols="1"><tbody><row><entry
1089 align="char">
1090<para>This ioctl commands the decoder. The <constant>video_command</constant> struct
1091is a subset of the <constant>v4l2_decoder_cmd</constant> struct, so refer to the
1092&VIDIOC-DECODER-CMD; documentation for more information.</para>
1093</entry>
1094 </row></tbody></tgroup></informaltable>
1095<para>SYNOPSIS
1096</para>
1097<informaltable><tgroup cols="1"><tbody><row><entry
1098 align="char">
1099<para>int ioctl(int fd, int request =
1100 VIDEO_COMMAND, struct video_command *cmd);</para>
1101</entry>
1102 </row></tbody></tgroup></informaltable>
1103<para>PARAMETERS
1104</para>
1105<informaltable><tgroup cols="2"><tbody><row><entry
1106 align="char">
1107<para>int fd</para>
1108</entry><entry
1109 align="char">
1110<para>File descriptor returned by a previous call to open().</para>
1111</entry>
1112 </row><row><entry
1113 align="char">
1114<para>int request</para>
1115</entry><entry
1116 align="char">
1117<para>Equals VIDEO_COMMAND for this
1118 command.</para>
1119</entry>
1120 </row><row><entry
1121 align="char">
1122<para>struct video_command *cmd
1123</para>
1124</entry><entry
1125 align="char">
1126<para>Commands the decoder.
1127</para>
1128</entry>
1129 </row></tbody></tgroup></informaltable>
1130&return-value-dvb;
1131
1132</section><section id="VIDEO_TRY_COMMAND"
1133role="subsection"><title>VIDEO_TRY_COMMAND</title>
1134<para>DESCRIPTION
1135</para>
1136<para>This ioctl is obsolete. Do not use in new drivers. For V4L2 decoders this
1137ioctl has been replaced by the &VIDIOC-TRY-DECODER-CMD; ioctl.</para>
1138<informaltable><tgroup cols="1"><tbody><row><entry
1139 align="char">
1140<para>This ioctl tries a decoder command. The <constant>video_command</constant> struct
1141is a subset of the <constant>v4l2_decoder_cmd</constant> struct, so refer to the
1142&VIDIOC-TRY-DECODER-CMD; documentation for more information.</para>
1143</entry>
1144 </row></tbody></tgroup></informaltable>
1145<para>SYNOPSIS
1146</para>
1147<informaltable><tgroup cols="1"><tbody><row><entry
1148 align="char">
1149<para>int ioctl(int fd, int request =
1150 VIDEO_TRY_COMMAND, struct video_command *cmd);</para>
1151</entry>
1152 </row></tbody></tgroup></informaltable>
1153<para>PARAMETERS
1154</para>
1155<informaltable><tgroup cols="2"><tbody><row><entry
1156 align="char">
1157<para>int fd</para>
1158</entry><entry
1159 align="char">
1160<para>File descriptor returned by a previous call to open().</para>
1161</entry>
1162 </row><row><entry
1163 align="char">
1164<para>int request</para>
1165</entry><entry
1166 align="char">
1167<para>Equals VIDEO_TRY_COMMAND for this
1168 command.</para>
1169</entry>
1170 </row><row><entry
1171 align="char">
1172<para>struct video_command *cmd
1173</para>
1174</entry><entry
1175 align="char">
1176<para>Try a decoder command.
1177</para>
1178</entry>
1179 </row></tbody></tgroup></informaltable>
1180&return-value-dvb;
1181
1182</section><section id="VIDEO_GET_SIZE"
1183role="subsection"><title>VIDEO_GET_SIZE</title>
1184<para>DESCRIPTION
1185</para>
1186<informaltable><tgroup cols="1"><tbody><row><entry
1187 align="char">
1188<para>This ioctl returns the size and aspect ratio.</para>
1189</entry>
1190 </row></tbody></tgroup></informaltable>
1191<para>SYNOPSIS
1192</para>
1193<informaltable><tgroup cols="1"><tbody><row><entry
1194 align="char">
1195<para>int ioctl(int fd, int request =
1196 VIDEO_GET_SIZE, video_size_t *size);</para>
1197</entry>
1198 </row></tbody></tgroup></informaltable>
1199<para>PARAMETERS
1200</para>
1201<informaltable><tgroup cols="2"><tbody><row><entry
1202 align="char">
1203<para>int fd</para>
1204</entry><entry
1205 align="char">
1206<para>File descriptor returned by a previous call to open().</para>
1207</entry>
1208 </row><row><entry
1209 align="char">
1210<para>int request</para>
1211</entry><entry
1212 align="char">
1213<para>Equals VIDEO_GET_SIZE for this
1214 command.</para>
1215</entry>
1216 </row><row><entry
1217 align="char">
1218<para>video_size_t *size
1219</para>
1220</entry><entry
1221 align="char">
1222<para>Returns the size and aspect ratio.
1223</para>
1224</entry>
1225 </row></tbody></tgroup></informaltable>
1226&return-value-dvb;
1227
917</section><section id="VIDEO_SET_DISPLAY_FORMAT" 1228</section><section id="VIDEO_SET_DISPLAY_FORMAT"
918role="subsection"><title>VIDEO_SET_DISPLAY_FORMAT</title> 1229role="subsection"><title>VIDEO_SET_DISPLAY_FORMAT</title>
919<para>DESCRIPTION 1230<para>DESCRIPTION
diff --git a/Documentation/DocBook/media/v4l/biblio.xml b/Documentation/DocBook/media/v4l/biblio.xml
index 1078e45f189f..d2eb79e41a01 100644
--- a/Documentation/DocBook/media/v4l/biblio.xml
+++ b/Documentation/DocBook/media/v4l/biblio.xml
@@ -178,23 +178,23 @@ Signal - NTSC for Studio Applications"</title>
1781125-Line High-Definition Production"</title> 1781125-Line High-Definition Production"</title>
179 </biblioentry> 179 </biblioentry>
180 180
181 <biblioentry id="en50067"> 181 <biblioentry id="iec62106">
182 <abbrev>EN&nbsp;50067</abbrev> 182 <abbrev>IEC&nbsp;62106</abbrev>
183 <authorgroup> 183 <authorgroup>
184 <corpauthor>European Committee for Electrotechnical Standardization 184 <corpauthor>International Electrotechnical Commission
185(<ulink url="http://www.cenelec.eu">http://www.cenelec.eu</ulink>)</corpauthor> 185(<ulink url="http://www.iec.ch">http://www.iec.ch</ulink>)</corpauthor>
186 </authorgroup> 186 </authorgroup>
187 <title>Specification of the radio data system (RDS) for VHF/FM sound broadcasting 187 <title>Specification of the radio data system (RDS) for VHF/FM sound broadcasting
188in the frequency range from 87,5 to 108,0 MHz</title> 188in the frequency range from 87,5 to 108,0 MHz</title>
189 </biblioentry> 189 </biblioentry>
190 190
191 <biblioentry id="nrsc4"> 191 <biblioentry id="nrsc4">
192 <abbrev>NRSC-4</abbrev> 192 <abbrev>NRSC-4-B</abbrev>
193 <authorgroup> 193 <authorgroup>
194 <corpauthor>National Radio Systems Committee 194 <corpauthor>National Radio Systems Committee
195(<ulink url="http://www.nrscstandards.org">http://www.nrscstandards.org</ulink>)</corpauthor> 195(<ulink url="http://www.nrscstandards.org">http://www.nrscstandards.org</ulink>)</corpauthor>
196 </authorgroup> 196 </authorgroup>
197 <title>NRSC-4: United States RBDS Standard</title> 197 <title>NRSC-4-B: United States RBDS Standard</title>
198 </biblioentry> 198 </biblioentry>
199 199
200 <biblioentry id="iso12232"> 200 <biblioentry id="iso12232">
@@ -226,4 +226,44 @@ in the frequency range from 87,5 to 108,0 MHz</title>
226 <title>VESA and Industry Standards and Guidelines for Computer Display Monitor Timing (DMT)</title> 226 <title>VESA and Industry Standards and Guidelines for Computer Display Monitor Timing (DMT)</title>
227 </biblioentry> 227 </biblioentry>
228 228
229 <biblioentry id="vesaedid">
230 <abbrev>EDID</abbrev>
231 <authorgroup>
232 <corpauthor>Video Electronics Standards Association
233(<ulink url="http://www.vesa.org">http://www.vesa.org</ulink>)</corpauthor>
234 </authorgroup>
235 <title>VESA Enhanced Extended Display Identification Data Standard</title>
236 <subtitle>Release A, Revision 2</subtitle>
237 </biblioentry>
238
239 <biblioentry id="hdcp">
240 <abbrev>HDCP</abbrev>
241 <authorgroup>
242 <corpauthor>Digital Content Protection LLC
243(<ulink url="http://www.digital-cp.com">http://www.digital-cp.com</ulink>)</corpauthor>
244 </authorgroup>
245 <title>High-bandwidth Digital Content Protection System</title>
246 <subtitle>Revision 1.3</subtitle>
247 </biblioentry>
248
249 <biblioentry id="hdmi">
250 <abbrev>HDMI</abbrev>
251 <authorgroup>
252 <corpauthor>HDMI Licensing LLC
253(<ulink url="http://www.hdmi.org">http://www.hdmi.org</ulink>)</corpauthor>
254 </authorgroup>
255 <title>High-Definition Multimedia Interface</title>
256 <subtitle>Specification Version 1.4a</subtitle>
257 </biblioentry>
258
259 <biblioentry id="dp">
260 <abbrev>DP</abbrev>
261 <authorgroup>
262 <corpauthor>Video Electronics Standards Association
263(<ulink url="http://www.vesa.org">http://www.vesa.org</ulink>)</corpauthor>
264 </authorgroup>
265 <title>VESA DisplayPort Standard</title>
266 <subtitle>Version 1, Revision 2</subtitle>
267 </biblioentry>
268
229 </bibliography> 269 </bibliography>
diff --git a/Documentation/DocBook/media/v4l/common.xml b/Documentation/DocBook/media/v4l/common.xml
index b91d25313b63..73c6847436c9 100644
--- a/Documentation/DocBook/media/v4l/common.xml
+++ b/Documentation/DocBook/media/v4l/common.xml
@@ -564,7 +564,7 @@ automatically.</para>
564 <para>To query and select the standard used by the current video 564 <para>To query and select the standard used by the current video
565input or output applications call the &VIDIOC-G-STD; and 565input or output applications call the &VIDIOC-G-STD; and
566&VIDIOC-S-STD; ioctl, respectively. The <emphasis>received</emphasis> 566&VIDIOC-S-STD; ioctl, respectively. The <emphasis>received</emphasis>
567standard can be sensed with the &VIDIOC-QUERYSTD; ioctl. Note parameter of all these ioctls is a pointer to a &v4l2-std-id; type (a standard set), <emphasis>not</emphasis> an index into the standard enumeration.<footnote> 567standard can be sensed with the &VIDIOC-QUERYSTD; ioctl. Note that the parameter of all these ioctls is a pointer to a &v4l2-std-id; type (a standard set), <emphasis>not</emphasis> an index into the standard enumeration.<footnote>
568 <para>An alternative to the current scheme is to use pointers 568 <para>An alternative to the current scheme is to use pointers
569to indices as arguments of <constant>VIDIOC_G_STD</constant> and 569to indices as arguments of <constant>VIDIOC_G_STD</constant> and
570<constant>VIDIOC_S_STD</constant>, the &v4l2-input; and 570<constant>VIDIOC_S_STD</constant>, the &v4l2-input; and
@@ -588,30 +588,28 @@ switch to a standard by &v4l2-std-id;.</para>
588 </footnote> Drivers must implement all video standard ioctls 588 </footnote> Drivers must implement all video standard ioctls
589when the device has one or more video inputs or outputs.</para> 589when the device has one or more video inputs or outputs.</para>
590 590
591 <para>Special rules apply to USB cameras where the notion of video 591 <para>Special rules apply to devices such as USB cameras where the notion of video
592standards makes little sense. More generally any capture device, 592standards makes little sense. More generally for any capture or output device
593output devices accordingly, which is <itemizedlist> 593which is: <itemizedlist>
594 <listitem> 594 <listitem>
595 <para>incapable of capturing fields or frames at the nominal 595 <para>incapable of capturing fields or frames at the nominal
596rate of the video standard, or</para> 596rate of the video standard, or</para>
597 </listitem> 597 </listitem>
598 <listitem> 598 <listitem>
599 <para>where <link linkend="buffer">timestamps</link> refer 599 <para>that does not support the video standard formats at all.</para>
600to the instant the field or frame was received by the driver, not the
601capture time, or</para>
602 </listitem>
603 <listitem>
604 <para>where <link linkend="buffer">sequence numbers</link>
605refer to the frames received by the driver, not the captured
606frames.</para>
607 </listitem> 600 </listitem>
608 </itemizedlist> Here the driver shall set the 601 </itemizedlist> Here the driver shall set the
609<structfield>std</structfield> field of &v4l2-input; and &v4l2-output; 602<structfield>std</structfield> field of &v4l2-input; and &v4l2-output;
610to zero, the <constant>VIDIOC_G_STD</constant>, 603to zero and the <constant>VIDIOC_G_STD</constant>,
611<constant>VIDIOC_S_STD</constant>, 604<constant>VIDIOC_S_STD</constant>,
612<constant>VIDIOC_QUERYSTD</constant> and 605<constant>VIDIOC_QUERYSTD</constant> and
613<constant>VIDIOC_ENUMSTD</constant> ioctls shall return the 606<constant>VIDIOC_ENUMSTD</constant> ioctls shall return the
614&EINVAL;.<footnote> 607&ENOTTY;.<footnote>
608 <para>See <xref linkend="buffer" /> for a rationale.</para>
609 <para>Applications can make use of the <xref linkend="input-capabilities" /> and
610<xref linkend="output-capabilities"/> flags to determine whether the video standard ioctls
611are available for the device.</para>
612&ENOTTY;.
615 <para>See <xref linkend="buffer" /> for a rationale. Probably 613 <para>See <xref linkend="buffer" /> for a rationale. Probably
616even USB cameras follow some well known video standard. It might have 614even USB cameras follow some well known video standard. It might have
617been better to explicitly indicate elsewhere if a device cannot live 615been better to explicitly indicate elsewhere if a device cannot live
@@ -626,9 +624,9 @@ up to normal expectations, instead of this exception.</para>
626&v4l2-standard; standard; 624&v4l2-standard; standard;
627 625
628if (-1 == ioctl (fd, &VIDIOC-G-STD;, &amp;std_id)) { 626if (-1 == ioctl (fd, &VIDIOC-G-STD;, &amp;std_id)) {
629 /* Note when VIDIOC_ENUMSTD always returns EINVAL this 627 /* Note when VIDIOC_ENUMSTD always returns ENOTTY this
630 is no video device or it falls under the USB exception, 628 is no video device or it falls under the USB exception,
631 and VIDIOC_G_STD returning EINVAL is no error. */ 629 and VIDIOC_G_STD returning ENOTTY is no error. */
632 630
633 perror ("VIDIOC_G_STD"); 631 perror ("VIDIOC_G_STD");
634 exit (EXIT_FAILURE); 632 exit (EXIT_FAILURE);
diff --git a/Documentation/DocBook/media/v4l/compat.xml b/Documentation/DocBook/media/v4l/compat.xml
index faa0fd14666a..c6ae4c9d0e0c 100644
--- a/Documentation/DocBook/media/v4l/compat.xml
+++ b/Documentation/DocBook/media/v4l/compat.xml
@@ -1476,7 +1476,7 @@ follows.<informaltable>
1476 </row> 1476 </row>
1477 <row> 1477 <row>
1478 <entry><constant>V4L2_BUF_TYPE_PRIVATE_BASE</constant></entry> 1478 <entry><constant>V4L2_BUF_TYPE_PRIVATE_BASE</constant></entry>
1479 <entry><constant>V4L2_BUF_TYPE_PRIVATE</constant></entry> 1479 <entry><constant>V4L2_BUF_TYPE_PRIVATE</constant> (but this is deprecated)</entry>
1480 </row> 1480 </row>
1481 </tbody> 1481 </tbody>
1482 </tgroup> 1482 </tgroup>
@@ -2468,21 +2468,9 @@ that used it. It was originally scheduled for removal in 2.6.35.
2468 <structfield>reserved2</structfield> and removed 2468 <structfield>reserved2</structfield> and removed
2469 <constant>V4L2_BUF_FLAG_INPUT</constant>.</para> 2469 <constant>V4L2_BUF_FLAG_INPUT</constant>.</para>
2470 </listitem> 2470 </listitem>
2471 </orderedlist>
2472 </section>
2473
2474 <section>
2475 <title>V4L2 in Linux 3.6</title>
2476 <orderedlist>
2477 <listitem> 2471 <listitem>
2478 <para>Added V4L2_CAP_VIDEO_M2M and V4L2_CAP_VIDEO_M2M_MPLANE capabilities.</para> 2472 <para>Added V4L2_CAP_VIDEO_M2M and V4L2_CAP_VIDEO_M2M_MPLANE capabilities.</para>
2479 </listitem> 2473 </listitem>
2480 </orderedlist>
2481 </section>
2482
2483 <section>
2484 <title>V4L2 in Linux 3.6</title>
2485 <orderedlist>
2486 <listitem> 2474 <listitem>
2487 <para>Added support for frequency band enumerations: &VIDIOC-ENUM-FREQ-BANDS;.</para> 2475 <para>Added support for frequency band enumerations: &VIDIOC-ENUM-FREQ-BANDS;.</para>
2488 </listitem> 2476 </listitem>
@@ -2567,29 +2555,6 @@ and may change in the future.</para>
2567 <para>Video Output Overlay (OSD) Interface, <xref 2555 <para>Video Output Overlay (OSD) Interface, <xref
2568 linkend="osd" />.</para> 2556 linkend="osd" />.</para>
2569 </listitem> 2557 </listitem>
2570 <listitem>
2571 <para><constant>V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY</constant>,
2572 &v4l2-buf-type;, <xref linkend="v4l2-buf-type" />.</para>
2573 </listitem>
2574 <listitem>
2575 <para><constant>V4L2_CAP_VIDEO_OUTPUT_OVERLAY</constant>,
2576&VIDIOC-QUERYCAP; ioctl, <xref linkend="device-capabilities" />.</para>
2577 </listitem>
2578 <listitem>
2579 <para>&VIDIOC-ENUM-FRAMESIZES; and
2580&VIDIOC-ENUM-FRAMEINTERVALS; ioctls.</para>
2581 </listitem>
2582 <listitem>
2583 <para>&VIDIOC-G-ENC-INDEX; ioctl.</para>
2584 </listitem>
2585 <listitem>
2586 <para>&VIDIOC-ENCODER-CMD; and &VIDIOC-TRY-ENCODER-CMD;
2587ioctls.</para>
2588 </listitem>
2589 <listitem>
2590 <para>&VIDIOC-DECODER-CMD; and &VIDIOC-TRY-DECODER-CMD;
2591ioctls.</para>
2592 </listitem>
2593 <listitem> 2558 <listitem>
2594 <para>&VIDIOC-DBG-G-REGISTER; and &VIDIOC-DBG-S-REGISTER; 2559 <para>&VIDIOC-DBG-G-REGISTER; and &VIDIOC-DBG-S-REGISTER;
2595ioctls.</para> 2560ioctls.</para>
@@ -2615,10 +2580,6 @@ ioctls.</para>
2615 and &VIDIOC-SUBDEV-S-SELECTION; ioctls.</para> 2580 and &VIDIOC-SUBDEV-S-SELECTION; ioctls.</para>
2616 </listitem> 2581 </listitem>
2617 <listitem> 2582 <listitem>
2618 <para><link linkend="v4l2-auto-focus-area"><constant>
2619 V4L2_CID_AUTO_FOCUS_AREA</constant></link> control.</para>
2620 </listitem>
2621 <listitem>
2622 <para>Support for frequency band enumeration: &VIDIOC-ENUM-FREQ-BANDS; ioctl.</para> 2583 <para>Support for frequency band enumeration: &VIDIOC-ENUM-FREQ-BANDS; ioctl.</para>
2623 </listitem> 2584 </listitem>
2624 </itemizedlist> 2585 </itemizedlist>
diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml
index b0964fb4e834..272a5f718509 100644
--- a/Documentation/DocBook/media/v4l/controls.xml
+++ b/Documentation/DocBook/media/v4l/controls.xml
@@ -3505,7 +3505,7 @@ This encodes up to 31 pre-defined programme types.</entry>
3505 </row> 3505 </row>
3506 <row><entry spanname="descr">Sets the Programme Service name (PS_NAME) for transmission. 3506 <row><entry spanname="descr">Sets the Programme Service name (PS_NAME) for transmission.
3507It is intended for static display on a receiver. It is the primary aid to listeners in programme service 3507It is intended for static display on a receiver. It is the primary aid to listeners in programme service
3508identification and selection. In Annex E of <xref linkend="en50067" />, the RDS specification, 3508identification and selection. In Annex E of <xref linkend="iec62106" />, the RDS specification,
3509there is a full description of the correct character encoding for Programme Service name strings. 3509there is a full description of the correct character encoding for Programme Service name strings.
3510Also from RDS specification, PS is usually a single eight character text. However, it is also possible 3510Also from RDS specification, PS is usually a single eight character text. However, it is also possible
3511to find receivers which can scroll strings sized as 8 x N characters. So, this control must be configured 3511to find receivers which can scroll strings sized as 8 x N characters. So, this control must be configured
@@ -3519,7 +3519,7 @@ with steps of 8 characters. The result is it must always contain a string with s
3519what is being broadcasted. RDS Radio Text can be applied when broadcaster wishes to transmit longer PS names, 3519what is being broadcasted. RDS Radio Text can be applied when broadcaster wishes to transmit longer PS names,
3520programme-related information or any other text. In these cases, RadioText should be used in addition to 3520programme-related information or any other text. In these cases, RadioText should be used in addition to
3521<constant>V4L2_CID_RDS_TX_PS_NAME</constant>. The encoding for Radio Text strings is also fully described 3521<constant>V4L2_CID_RDS_TX_PS_NAME</constant>. The encoding for Radio Text strings is also fully described
3522in Annex E of <xref linkend="en50067" />. The length of Radio Text strings depends on which RDS Block is being 3522in Annex E of <xref linkend="iec62106" />. The length of Radio Text strings depends on which RDS Block is being
3523used to transmit it, either 32 (2A block) or 64 (2B block). However, it is also possible 3523used to transmit it, either 32 (2A block) or 64 (2B block). However, it is also possible
3524to find receivers which can scroll strings sized as 32 x N or 64 x N characters. So, this control must be configured 3524to find receivers which can scroll strings sized as 32 x N or 64 x N characters. So, this control must be configured
3525with steps of 32 or 64 characters. The result is it must always contain a string with size multiple of 32 or 64. </entry> 3525with steps of 32 or 64 characters. The result is it must always contain a string with size multiple of 32 or 64. </entry>
@@ -3650,7 +3650,7 @@ manually or automatically if set to zero. Unit, range and step are driver-specif
3650 </table> 3650 </table>
3651 3651
3652<para>For more details about RDS specification, refer to 3652<para>For more details about RDS specification, refer to
3653<xref linkend="en50067" /> document, from CENELEC.</para> 3653<xref linkend="iec62106" /> document, from CENELEC.</para>
3654 </section> 3654 </section>
3655 3655
3656 <section id="flash-controls"> 3656 <section id="flash-controls">
@@ -3717,232 +3717,231 @@ interface and may change in the future.</para>
3717 use case involving camera or individually. 3717 use case involving camera or individually.
3718 </para> 3718 </para>
3719 3719
3720 </section>
3721 3720
3721 <table pgwide="1" frame="none" id="flash-control-id">
3722 <title>Flash Control IDs</title>
3723
3724 <tgroup cols="4">
3725 <colspec colname="c1" colwidth="1*" />
3726 <colspec colname="c2" colwidth="6*" />
3727 <colspec colname="c3" colwidth="2*" />
3728 <colspec colname="c4" colwidth="6*" />
3729 <spanspec namest="c1" nameend="c2" spanname="id" />
3730 <spanspec namest="c2" nameend="c4" spanname="descr" />
3731 <thead>
3732 <row>
3733 <entry spanname="id" align="left">ID</entry>
3734 <entry align="left">Type</entry>
3735 </row><row rowsep="1"><entry spanname="descr" align="left">Description</entry>
3736 </row>
3737 </thead>
3738 <tbody valign="top">
3739 <row><entry></entry></row>
3740 <row>
3741 <entry spanname="id"><constant>V4L2_CID_FLASH_CLASS</constant></entry>
3742 <entry>class</entry>
3743 </row>
3744 <row>
3745 <entry spanname="descr">The FLASH class descriptor.</entry>
3746 </row>
3747 <row>
3748 <entry spanname="id"><constant>V4L2_CID_FLASH_LED_MODE</constant></entry>
3749 <entry>menu</entry>
3750 </row>
3751 <row id="v4l2-flash-led-mode">
3752 <entry spanname="descr">Defines the mode of the flash LED,
3753 the high-power white LED attached to the flash controller.
3754 Setting this control may not be possible in presence of
3755 some faults. See V4L2_CID_FLASH_FAULT.</entry>
3756 </row>
3757 <row>
3758 <entrytbl spanname="descr" cols="2">
3759 <tbody valign="top">
3760 <row>
3761 <entry><constant>V4L2_FLASH_LED_MODE_NONE</constant></entry>
3762 <entry>Off.</entry>
3763 </row>
3764 <row>
3765 <entry><constant>V4L2_FLASH_LED_MODE_FLASH</constant></entry>
3766 <entry>Flash mode.</entry>
3767 </row>
3768 <row>
3769 <entry><constant>V4L2_FLASH_LED_MODE_TORCH</constant></entry>
3770 <entry>Torch mode. See V4L2_CID_FLASH_TORCH_INTENSITY.</entry>
3771 </row>
3772 </tbody>
3773 </entrytbl>
3774 </row>
3775 <row>
3776 <entry spanname="id"><constant>V4L2_CID_FLASH_STROBE_SOURCE</constant></entry>
3777 <entry>menu</entry>
3778 </row>
3779 <row id="v4l2-flash-strobe-source"><entry
3780 spanname="descr">Defines the source of the flash LED
3781 strobe.</entry>
3782 </row>
3783 <row>
3784 <entrytbl spanname="descr" cols="2">
3785 <tbody valign="top">
3786 <row>
3787 <entry><constant>V4L2_FLASH_STROBE_SOURCE_SOFTWARE</constant></entry>
3788 <entry>The flash strobe is triggered by using
3789 the V4L2_CID_FLASH_STROBE control.</entry>
3790 </row>
3791 <row>
3792 <entry><constant>V4L2_FLASH_STROBE_SOURCE_EXTERNAL</constant></entry>
3793 <entry>The flash strobe is triggered by an
3794 external source. Typically this is a sensor,
3795 which makes it possible to synchronises the
3796 flash strobe start to exposure start.</entry>
3797 </row>
3798 </tbody>
3799 </entrytbl>
3800 </row>
3801 <row>
3802 <entry spanname="id"><constant>V4L2_CID_FLASH_STROBE</constant></entry>
3803 <entry>button</entry>
3804 </row>
3805 <row>
3806 <entry spanname="descr">Strobe flash. Valid when
3807 V4L2_CID_FLASH_LED_MODE is set to
3808 V4L2_FLASH_LED_MODE_FLASH and V4L2_CID_FLASH_STROBE_SOURCE
3809 is set to V4L2_FLASH_STROBE_SOURCE_SOFTWARE. Setting this
3810 control may not be possible in presence of some faults.
3811 See V4L2_CID_FLASH_FAULT.</entry>
3812 </row>
3813 <row>
3814 <entry spanname="id"><constant>V4L2_CID_FLASH_STROBE_STOP</constant></entry>
3815 <entry>button</entry>
3816 </row>
3817 <row><entry spanname="descr">Stop flash strobe immediately.</entry>
3818 </row>
3819 <row>
3820 <entry spanname="id"><constant>V4L2_CID_FLASH_STROBE_STATUS</constant></entry>
3821 <entry>boolean</entry>
3822 </row>
3823 <row>
3824 <entry spanname="descr">Strobe status: whether the flash
3825 is strobing at the moment or not. This is a read-only
3826 control.</entry>
3827 </row>
3828 <row>
3829 <entry spanname="id"><constant>V4L2_CID_FLASH_TIMEOUT</constant></entry>
3830 <entry>integer</entry>
3831 </row>
3832 <row>
3833 <entry spanname="descr">Hardware timeout for flash. The
3834 flash strobe is stopped after this period of time has
3835 passed from the start of the strobe.</entry>
3836 </row>
3837 <row>
3838 <entry spanname="id"><constant>V4L2_CID_FLASH_INTENSITY</constant></entry>
3839 <entry>integer</entry>
3840 </row>
3841 <row>
3842 <entry spanname="descr">Intensity of the flash strobe when
3843 the flash LED is in flash mode
3844 (V4L2_FLASH_LED_MODE_FLASH). The unit should be milliamps
3845 (mA) if possible.</entry>
3846 </row>
3847 <row>
3848 <entry spanname="id"><constant>V4L2_CID_FLASH_TORCH_INTENSITY</constant></entry>
3849 <entry>integer</entry>
3850 </row>
3851 <row>
3852 <entry spanname="descr">Intensity of the flash LED in
3853 torch mode (V4L2_FLASH_LED_MODE_TORCH). The unit should be
3854 milliamps (mA) if possible. Setting this control may not
3855 be possible in presence of some faults. See
3856 V4L2_CID_FLASH_FAULT.</entry>
3857 </row>
3858 <row>
3859 <entry spanname="id"><constant>V4L2_CID_FLASH_INDICATOR_INTENSITY</constant></entry>
3860 <entry>integer</entry>
3861 </row>
3862 <row>
3863 <entry spanname="descr">Intensity of the indicator LED.
3864 The indicator LED may be fully independent of the flash
3865 LED. The unit should be microamps (uA) if possible.</entry>
3866 </row>
3867 <row>
3868 <entry spanname="id"><constant>V4L2_CID_FLASH_FAULT</constant></entry>
3869 <entry>bitmask</entry>
3870 </row>
3871 <row>
3872 <entry spanname="descr">Faults related to the flash. The
3873 faults tell about specific problems in the flash chip
3874 itself or the LEDs attached to it. Faults may prevent
3875 further use of some of the flash controls. In particular,
3876 V4L2_CID_FLASH_LED_MODE is set to V4L2_FLASH_LED_MODE_NONE
3877 if the fault affects the flash LED. Exactly which faults
3878 have such an effect is chip dependent. Reading the faults
3879 resets the control and returns the chip to a usable state
3880 if possible.</entry>
3881 </row>
3882 <row>
3883 <entrytbl spanname="descr" cols="2">
3884 <tbody valign="top">
3885 <row>
3886 <entry><constant>V4L2_FLASH_FAULT_OVER_VOLTAGE</constant></entry>
3887 <entry>Flash controller voltage to the flash LED
3888 has exceeded the limit specific to the flash
3889 controller.</entry>
3890 </row>
3891 <row>
3892 <entry><constant>V4L2_FLASH_FAULT_TIMEOUT</constant></entry>
3893 <entry>The flash strobe was still on when
3894 the timeout set by the user ---
3895 V4L2_CID_FLASH_TIMEOUT control --- has expired.
3896 Not all flash controllers may set this in all
3897 such conditions.</entry>
3898 </row>
3899 <row>
3900 <entry><constant>V4L2_FLASH_FAULT_OVER_TEMPERATURE</constant></entry>
3901 <entry>The flash controller has overheated.</entry>
3902 </row>
3903 <row>
3904 <entry><constant>V4L2_FLASH_FAULT_SHORT_CIRCUIT</constant></entry>
3905 <entry>The short circuit protection of the flash
3906 controller has been triggered.</entry>
3907 </row>
3908 <row>
3909 <entry><constant>V4L2_FLASH_FAULT_OVER_CURRENT</constant></entry>
3910 <entry>Current in the LED power supply has exceeded the limit
3911 specific to the flash controller.</entry>
3912 </row>
3913 <row>
3914 <entry><constant>V4L2_FLASH_FAULT_INDICATOR</constant></entry>
3915 <entry>The flash controller has detected a short or open
3916 circuit condition on the indicator LED.</entry>
3917 </row>
3918 </tbody>
3919 </entrytbl>
3920 </row>
3921 <row>
3922 <entry spanname="id"><constant>V4L2_CID_FLASH_CHARGE</constant></entry>
3923 <entry>boolean</entry>
3924 </row>
3925 <row><entry spanname="descr">Enable or disable charging of the xenon
3926 flash capacitor.</entry>
3927 </row>
3928 <row>
3929 <entry spanname="id"><constant>V4L2_CID_FLASH_READY</constant></entry>
3930 <entry>boolean</entry>
3931 </row>
3932 <row>
3933 <entry spanname="descr">Is the flash ready to strobe?
3934 Xenon flashes require their capacitors charged before
3935 strobing. LED flashes often require a cooldown period
3936 after strobe during which another strobe will not be
3937 possible. This is a read-only control.</entry>
3938 </row>
3939 <row><entry></entry></row>
3940 </tbody>
3941 </tgroup>
3942 </table>
3943 </section>
3722 </section> 3944 </section>
3723
3724 <table pgwide="1" frame="none" id="flash-control-id">
3725 <title>Flash Control IDs</title>
3726
3727 <tgroup cols="4">
3728 <colspec colname="c1" colwidth="1*" />
3729 <colspec colname="c2" colwidth="6*" />
3730 <colspec colname="c3" colwidth="2*" />
3731 <colspec colname="c4" colwidth="6*" />
3732 <spanspec namest="c1" nameend="c2" spanname="id" />
3733 <spanspec namest="c2" nameend="c4" spanname="descr" />
3734 <thead>
3735 <row>
3736 <entry spanname="id" align="left">ID</entry>
3737 <entry align="left">Type</entry>
3738 </row><row rowsep="1"><entry spanname="descr" align="left">Description</entry>
3739 </row>
3740 </thead>
3741 <tbody valign="top">
3742 <row><entry></entry></row>
3743 <row>
3744 <entry spanname="id"><constant>V4L2_CID_FLASH_CLASS</constant></entry>
3745 <entry>class</entry>
3746 </row>
3747 <row>
3748 <entry spanname="descr">The FLASH class descriptor.</entry>
3749 </row>
3750 <row>
3751 <entry spanname="id"><constant>V4L2_CID_FLASH_LED_MODE</constant></entry>
3752 <entry>menu</entry>
3753 </row>
3754 <row id="v4l2-flash-led-mode">
3755 <entry spanname="descr">Defines the mode of the flash LED,
3756 the high-power white LED attached to the flash controller.
3757 Setting this control may not be possible in presence of
3758 some faults. See V4L2_CID_FLASH_FAULT.</entry>
3759 </row>
3760 <row>
3761 <entrytbl spanname="descr" cols="2">
3762 <tbody valign="top">
3763 <row>
3764 <entry><constant>V4L2_FLASH_LED_MODE_NONE</constant></entry>
3765 <entry>Off.</entry>
3766 </row>
3767 <row>
3768 <entry><constant>V4L2_FLASH_LED_MODE_FLASH</constant></entry>
3769 <entry>Flash mode.</entry>
3770 </row>
3771 <row>
3772 <entry><constant>V4L2_FLASH_LED_MODE_TORCH</constant></entry>
3773 <entry>Torch mode. See V4L2_CID_FLASH_TORCH_INTENSITY.</entry>
3774 </row>
3775 </tbody>
3776 </entrytbl>
3777 </row>
3778 <row>
3779 <entry spanname="id"><constant>V4L2_CID_FLASH_STROBE_SOURCE</constant></entry>
3780 <entry>menu</entry>
3781 </row>
3782 <row id="v4l2-flash-strobe-source"><entry
3783 spanname="descr">Defines the source of the flash LED
3784 strobe.</entry>
3785 </row>
3786 <row>
3787 <entrytbl spanname="descr" cols="2">
3788 <tbody valign="top">
3789 <row>
3790 <entry><constant>V4L2_FLASH_STROBE_SOURCE_SOFTWARE</constant></entry>
3791 <entry>The flash strobe is triggered by using
3792 the V4L2_CID_FLASH_STROBE control.</entry>
3793 </row>
3794 <row>
3795 <entry><constant>V4L2_FLASH_STROBE_SOURCE_EXTERNAL</constant></entry>
3796 <entry>The flash strobe is triggered by an
3797 external source. Typically this is a sensor,
3798 which makes it possible to synchronises the
3799 flash strobe start to exposure start.</entry>
3800 </row>
3801 </tbody>
3802 </entrytbl>
3803 </row>
3804 <row>
3805 <entry spanname="id"><constant>V4L2_CID_FLASH_STROBE</constant></entry>
3806 <entry>button</entry>
3807 </row>
3808 <row>
3809 <entry spanname="descr">Strobe flash. Valid when
3810 V4L2_CID_FLASH_LED_MODE is set to
3811 V4L2_FLASH_LED_MODE_FLASH and V4L2_CID_FLASH_STROBE_SOURCE
3812 is set to V4L2_FLASH_STROBE_SOURCE_SOFTWARE. Setting this
3813 control may not be possible in presence of some faults.
3814 See V4L2_CID_FLASH_FAULT.</entry>
3815 </row>
3816 <row>
3817 <entry spanname="id"><constant>V4L2_CID_FLASH_STROBE_STOP</constant></entry>
3818 <entry>button</entry>
3819 </row>
3820 <row><entry spanname="descr">Stop flash strobe immediately.</entry>
3821 </row>
3822 <row>
3823 <entry spanname="id"><constant>V4L2_CID_FLASH_STROBE_STATUS</constant></entry>
3824 <entry>boolean</entry>
3825 </row>
3826 <row>
3827 <entry spanname="descr">Strobe status: whether the flash
3828 is strobing at the moment or not. This is a read-only
3829 control.</entry>
3830 </row>
3831 <row>
3832 <entry spanname="id"><constant>V4L2_CID_FLASH_TIMEOUT</constant></entry>
3833 <entry>integer</entry>
3834 </row>
3835 <row>
3836 <entry spanname="descr">Hardware timeout for flash. The
3837 flash strobe is stopped after this period of time has
3838 passed from the start of the strobe.</entry>
3839 </row>
3840 <row>
3841 <entry spanname="id"><constant>V4L2_CID_FLASH_INTENSITY</constant></entry>
3842 <entry>integer</entry>
3843 </row>
3844 <row>
3845 <entry spanname="descr">Intensity of the flash strobe when
3846 the flash LED is in flash mode
3847 (V4L2_FLASH_LED_MODE_FLASH). The unit should be milliamps
3848 (mA) if possible.</entry>
3849 </row>
3850 <row>
3851 <entry spanname="id"><constant>V4L2_CID_FLASH_TORCH_INTENSITY</constant></entry>
3852 <entry>integer</entry>
3853 </row>
3854 <row>
3855 <entry spanname="descr">Intensity of the flash LED in
3856 torch mode (V4L2_FLASH_LED_MODE_TORCH). The unit should be
3857 milliamps (mA) if possible. Setting this control may not
3858 be possible in presence of some faults. See
3859 V4L2_CID_FLASH_FAULT.</entry>
3860 </row>
3861 <row>
3862 <entry spanname="id"><constant>V4L2_CID_FLASH_INDICATOR_INTENSITY</constant></entry>
3863 <entry>integer</entry>
3864 </row>
3865 <row>
3866 <entry spanname="descr">Intensity of the indicator LED.
3867 The indicator LED may be fully independent of the flash
3868 LED. The unit should be microamps (uA) if possible.</entry>
3869 </row>
3870 <row>
3871 <entry spanname="id"><constant>V4L2_CID_FLASH_FAULT</constant></entry>
3872 <entry>bitmask</entry>
3873 </row>
3874 <row>
3875 <entry spanname="descr">Faults related to the flash. The
3876 faults tell about specific problems in the flash chip
3877 itself or the LEDs attached to it. Faults may prevent
3878 further use of some of the flash controls. In particular,
3879 V4L2_CID_FLASH_LED_MODE is set to V4L2_FLASH_LED_MODE_NONE
3880 if the fault affects the flash LED. Exactly which faults
3881 have such an effect is chip dependent. Reading the faults
3882 resets the control and returns the chip to a usable state
3883 if possible.</entry>
3884 </row>
3885 <row>
3886 <entrytbl spanname="descr" cols="2">
3887 <tbody valign="top">
3888 <row>
3889 <entry><constant>V4L2_FLASH_FAULT_OVER_VOLTAGE</constant></entry>
3890 <entry>Flash controller voltage to the flash LED
3891 has exceeded the limit specific to the flash
3892 controller.</entry>
3893 </row>
3894 <row>
3895 <entry><constant>V4L2_FLASH_FAULT_TIMEOUT</constant></entry>
3896 <entry>The flash strobe was still on when
3897 the timeout set by the user ---
3898 V4L2_CID_FLASH_TIMEOUT control --- has expired.
3899 Not all flash controllers may set this in all
3900 such conditions.</entry>
3901 </row>
3902 <row>
3903 <entry><constant>V4L2_FLASH_FAULT_OVER_TEMPERATURE</constant></entry>
3904 <entry>The flash controller has overheated.</entry>
3905 </row>
3906 <row>
3907 <entry><constant>V4L2_FLASH_FAULT_SHORT_CIRCUIT</constant></entry>
3908 <entry>The short circuit protection of the flash
3909 controller has been triggered.</entry>
3910 </row>
3911 <row>
3912 <entry><constant>V4L2_FLASH_FAULT_OVER_CURRENT</constant></entry>
3913 <entry>Current in the LED power supply has exceeded the limit
3914 specific to the flash controller.</entry>
3915 </row>
3916 <row>
3917 <entry><constant>V4L2_FLASH_FAULT_INDICATOR</constant></entry>
3918 <entry>The flash controller has detected a short or open
3919 circuit condition on the indicator LED.</entry>
3920 </row>
3921 </tbody>
3922 </entrytbl>
3923 </row>
3924 <row>
3925 <entry spanname="id"><constant>V4L2_CID_FLASH_CHARGE</constant></entry>
3926 <entry>boolean</entry>
3927 </row>
3928 <row><entry spanname="descr">Enable or disable charging of the xenon
3929 flash capacitor.</entry>
3930 </row>
3931 <row>
3932 <entry spanname="id"><constant>V4L2_CID_FLASH_READY</constant></entry>
3933 <entry>boolean</entry>
3934 </row>
3935 <row>
3936 <entry spanname="descr">Is the flash ready to strobe?
3937 Xenon flashes require their capacitors charged before
3938 strobing. LED flashes often require a cooldown period
3939 after strobe during which another strobe will not be
3940 possible. This is a read-only control.</entry>
3941 </row>
3942 <row><entry></entry></row>
3943 </tbody>
3944 </tgroup>
3945 </table>
3946 </section> 3945 </section>
3947 3946
3948 <section id="jpeg-controls"> 3947 <section id="jpeg-controls">
@@ -4274,4 +4273,165 @@ interface and may change in the future.</para>
4274 </table> 4273 </table>
4275 4274
4276 </section> 4275 </section>
4276
4277 <section id="dv-controls">
4278 <title>Digital Video Control Reference</title>
4279
4280 <note>
4281 <title>Experimental</title>
4282
4283 <para>This is an <link
4284 linkend="experimental">experimental</link> interface and may
4285 change in the future.</para>
4286 </note>
4287
4288 <para>
4289 The Digital Video control class is intended to control receivers
4290 and transmitters for <ulink url="http://en.wikipedia.org/wiki/Vga">VGA</ulink>,
4291 <ulink url="http://en.wikipedia.org/wiki/Digital_Visual_Interface">DVI</ulink>
4292 (Digital Visual Interface), HDMI (<xref linkend="hdmi" />) and DisplayPort (<xref linkend="dp" />).
4293 These controls are generally expected to be private to the receiver or transmitter
4294 subdevice that implements them, so they are only exposed on the
4295 <filename>/dev/v4l-subdev*</filename> device node.
4296 </para>
4297
4298 <para>Note that these devices can have multiple input or output pads which are
4299 hooked up to e.g. HDMI connectors. Even though the subdevice will receive or
4300 transmit video from/to only one of those pads, the other pads can still be
4301 active when it comes to EDID (Extended Display Identification Data,
4302 <xref linkend="vesaedid" />) and HDCP (High-bandwidth Digital Content
4303 Protection System, <xref linkend="hdcp" />) processing, allowing the device
4304 to do the fairly slow EDID/HDCP handling in advance. This allows for quick
4305 switching between connectors.</para>
4306
4307 <para>These pads appear in several of the controls in this section as
4308 bitmasks, one bit for each pad. Bit 0 corresponds to pad 0, bit 1 to pad 1,
4309 etc. The maximum value of the control is the set of valid pads.</para>
4310
4311 <table pgwide="1" frame="none" id="dv-control-id">
4312 <title>Digital Video Control IDs</title>
4313
4314 <tgroup cols="4">
4315 <colspec colname="c1" colwidth="1*" />
4316 <colspec colname="c2" colwidth="6*" />
4317 <colspec colname="c3" colwidth="2*" />
4318 <colspec colname="c4" colwidth="6*" />
4319 <spanspec namest="c1" nameend="c2" spanname="id" />
4320 <spanspec namest="c2" nameend="c4" spanname="descr" />
4321 <thead>
4322 <row>
4323 <entry spanname="id" align="left">ID</entry>
4324 <entry align="left">Type</entry>
4325 </row><row rowsep="1"><entry spanname="descr" align="left">Description</entry>
4326 </row>
4327 </thead>
4328 <tbody valign="top">
4329 <row><entry></entry></row>
4330 <row>
4331 <entry spanname="id"><constant>V4L2_CID_DV_CLASS</constant></entry>
4332 <entry>class</entry>
4333 </row>
4334 <row>
4335 <entry spanname="descr">The Digital Video class descriptor.</entry>
4336 </row>
4337 <row>
4338 <entry spanname="id"><constant>V4L2_CID_DV_TX_HOTPLUG</constant></entry>
4339 <entry>bitmask</entry>
4340 </row>
4341 <row>
4342 <entry spanname="descr">Many connectors have a hotplug pin which is high
4343 if EDID information is available from the source. This control shows the
4344 state of the hotplug pin as seen by the transmitter.
4345 Each bit corresponds to an output pad on the transmitter. If an output pad
4346 does not have an associated hotplug pin, then the bit for that pad will be 0.
4347 This read-only control is applicable to DVI-D, HDMI and DisplayPort connectors.
4348 </entry>
4349 </row>
4350 <row>
4351 <entry spanname="id"><constant>V4L2_CID_DV_TX_RXSENSE</constant></entry>
4352 <entry>bitmask</entry>
4353 </row>
4354 <row>
4355 <entry spanname="descr">Rx Sense is the detection of pull-ups on the TMDS
4356 clock lines. This normally means that the sink has left/entered standby (i.e.
4357 the transmitter can sense that the receiver is ready to receive video).
4358 Each bit corresponds to an output pad on the transmitter. If an output pad
4359 does not have an associated Rx Sense, then the bit for that pad will be 0.
4360 This read-only control is applicable to DVI-D and HDMI devices.
4361 </entry>
4362 </row>
4363 <row>
4364 <entry spanname="id"><constant>V4L2_CID_DV_TX_EDID_PRESENT</constant></entry>
4365 <entry>bitmask</entry>
4366 </row>
4367 <row>
4368 <entry spanname="descr">When the transmitter sees the hotplug signal from the
4369 receiver it will attempt to read the EDID. If set, then the transmitter has read
4370 at least the first block (= 128 bytes).
4371 Each bit corresponds to an output pad on the transmitter. If an output pad
4372 does not support EDIDs, then the bit for that pad will be 0.
4373 This read-only control is applicable to VGA, DVI-A/D, HDMI and DisplayPort connectors.
4374 </entry>
4375 </row>
4376 <row>
4377 <entry spanname="id"><constant>V4L2_CID_DV_TX_MODE</constant></entry>
4378 <entry id="v4l2-dv-tx-mode">enum v4l2_dv_tx_mode</entry>
4379 </row>
4380 <row>
4381 <entry spanname="descr">HDMI transmitters can transmit in DVI-D mode (just video)
4382 or in HDMI mode (video + audio + auxiliary data). This control selects which mode
4383 to use: V4L2_DV_TX_MODE_DVI_D or V4L2_DV_TX_MODE_HDMI.
4384 This control is applicable to HDMI connectors.
4385 </entry>
4386 </row>
4387 <row>
4388 <entry spanname="id"><constant>V4L2_CID_DV_TX_RGB_RANGE</constant></entry>
4389 <entry id="v4l2-dv-rgb-range">enum v4l2_dv_rgb_range</entry>
4390 </row>
4391 <row>
4392 <entry spanname="descr">Select the quantization range for RGB output. V4L2_DV_RANGE_AUTO
4393 follows the RGB quantization range specified in the standard for the video interface
4394 (ie. <xref linkend="cea861" /> for HDMI). V4L2_DV_RANGE_LIMITED and V4L2_DV_RANGE_FULL override the standard
4395 to be compatible with sinks that have not implemented the standard correctly
4396 (unfortunately quite common for HDMI and DVI-D). Full range allows all possible values to be
4397 used whereas limited range sets the range to (16 &lt;&lt; (N-8)) - (235 &lt;&lt; (N-8))
4398 where N is the number of bits per component.
4399 This control is applicable to VGA, DVI-A/D, HDMI and DisplayPort connectors.
4400 </entry>
4401 </row>
4402 <row>
4403 <entry spanname="id"><constant>V4L2_CID_DV_RX_POWER_PRESENT</constant></entry>
4404 <entry>bitmask</entry>
4405 </row>
4406 <row>
4407 <entry spanname="descr">Detects whether the receiver receives power from the source
4408 (e.g. HDMI carries 5V on one of the pins). This is often used to power an eeprom
4409 which contains EDID information, such that the source can read the EDID even if
4410 the sink is in standby/power off.
4411 Each bit corresponds to an input pad on the transmitter. If an input pad
4412 cannot detect whether power is present, then the bit for that pad will be 0.
4413 This read-only control is applicable to DVI-D, HDMI and DisplayPort connectors.
4414 </entry>
4415 </row>
4416 <row>
4417 <entry spanname="id"><constant>V4L2_CID_DV_RX_RGB_RANGE</constant></entry>
4418 <entry>enum v4l2_dv_rgb_range</entry>
4419 </row>
4420 <row>
4421 <entry spanname="descr">Select the quantization range for RGB input. V4L2_DV_RANGE_AUTO
4422 follows the RGB quantization range specified in the standard for the video interface
4423 (ie. <xref linkend="cea861" /> for HDMI). V4L2_DV_RANGE_LIMITED and V4L2_DV_RANGE_FULL override the standard
4424 to be compatible with sources that have not implemented the standard correctly
4425 (unfortunately quite common for HDMI and DVI-D). Full range allows all possible values to be
4426 used whereas limited range sets the range to (16 &lt;&lt; (N-8)) - (235 &lt;&lt; (N-8))
4427 where N is the number of bits per component.
4428 This control is applicable to VGA, DVI-A/D, HDMI and DisplayPort connectors.
4429 </entry>
4430 </row>
4431 <row><entry></entry></row>
4432 </tbody>
4433 </tgroup>
4434 </table>
4435
4436 </section>
4277</section> 4437</section>
diff --git a/Documentation/DocBook/media/v4l/dev-osd.xml b/Documentation/DocBook/media/v4l/dev-osd.xml
index 479d9433869a..dd91d6134e8c 100644
--- a/Documentation/DocBook/media/v4l/dev-osd.xml
+++ b/Documentation/DocBook/media/v4l/dev-osd.xml
@@ -1,13 +1,6 @@
1 <title>Video Output Overlay Interface</title> 1 <title>Video Output Overlay Interface</title>
2 <subtitle>Also known as On-Screen Display (OSD)</subtitle> 2 <subtitle>Also known as On-Screen Display (OSD)</subtitle>
3 3
4 <note>
5 <title>Experimental</title>
6
7 <para>This is an <link linkend="experimental">experimental</link>
8interface and may change in the future.</para>
9 </note>
10
11 <para>Some video output devices can overlay a framebuffer image onto 4 <para>Some video output devices can overlay a framebuffer image onto
12the outgoing video signal. Applications can set up such an overlay 5the outgoing video signal. Applications can set up such an overlay
13using this interface, which borrows structures and ioctls of the <link 6using this interface, which borrows structures and ioctls of the <link
diff --git a/Documentation/DocBook/media/v4l/dev-rds.xml b/Documentation/DocBook/media/v4l/dev-rds.xml
index 38883a419e65..be2f33737323 100644
--- a/Documentation/DocBook/media/v4l/dev-rds.xml
+++ b/Documentation/DocBook/media/v4l/dev-rds.xml
@@ -6,7 +6,7 @@ information, on an inaudible audio subcarrier of a radio program. This
6interface is aimed at devices capable of receiving and/or transmitting RDS 6interface is aimed at devices capable of receiving and/or transmitting RDS
7information.</para> 7information.</para>
8 8
9 <para>For more information see the core RDS standard <xref linkend="en50067" /> 9 <para>For more information see the core RDS standard <xref linkend="iec62106" />
10and the RBDS standard <xref linkend="nrsc4" />.</para> 10and the RBDS standard <xref linkend="nrsc4" />.</para>
11 11
12 <para>Note that the RBDS standard as is used in the USA is almost identical 12 <para>Note that the RBDS standard as is used in the USA is almost identical
diff --git a/Documentation/DocBook/media/v4l/dev-subdev.xml b/Documentation/DocBook/media/v4l/dev-subdev.xml
index a3d9dd093268..d15aaf83f56f 100644
--- a/Documentation/DocBook/media/v4l/dev-subdev.xml
+++ b/Documentation/DocBook/media/v4l/dev-subdev.xml
@@ -374,29 +374,29 @@
374 rectangle --- if it is supported by the hardware.</para> 374 rectangle --- if it is supported by the hardware.</para>
375 375
376 <orderedlist> 376 <orderedlist>
377 <listitem>Sink pad format. The user configures the sink pad 377 <listitem><para>Sink pad format. The user configures the sink pad
378 format. This format defines the parameters of the image the 378 format. This format defines the parameters of the image the
379 entity receives through the pad for further processing.</listitem> 379 entity receives through the pad for further processing.</para></listitem>
380 380
381 <listitem>Sink pad actual crop selection. The sink pad crop 381 <listitem><para>Sink pad actual crop selection. The sink pad crop
382 defines the crop performed to the sink pad format.</listitem> 382 defines the crop performed to the sink pad format.</para></listitem>
383 383
384 <listitem>Sink pad actual compose selection. The size of the 384 <listitem><para>Sink pad actual compose selection. The size of the
385 sink pad compose rectangle defines the scaling ratio compared 385 sink pad compose rectangle defines the scaling ratio compared
386 to the size of the sink pad crop rectangle. The location of 386 to the size of the sink pad crop rectangle. The location of
387 the compose rectangle specifies the location of the actual 387 the compose rectangle specifies the location of the actual
388 sink compose rectangle in the sink compose bounds 388 sink compose rectangle in the sink compose bounds
389 rectangle.</listitem> 389 rectangle.</para></listitem>
390 390
391 <listitem>Source pad actual crop selection. Crop on the source 391 <listitem><para>Source pad actual crop selection. Crop on the source
392 pad defines crop performed to the image in the sink compose 392 pad defines crop performed to the image in the sink compose
393 bounds rectangle.</listitem> 393 bounds rectangle.</para></listitem>
394 394
395 <listitem>Source pad format. The source pad format defines the 395 <listitem><para>Source pad format. The source pad format defines the
396 output pixel format of the subdev, as well as the other 396 output pixel format of the subdev, as well as the other
397 parameters with the exception of the image width and height. 397 parameters with the exception of the image width and height.
398 Width and height are defined by the size of the source pad 398 Width and height are defined by the size of the source pad
399 actual crop selection.</listitem> 399 actual crop selection.</para></listitem>
400 </orderedlist> 400 </orderedlist>
401 401
402 <para>Accessing any of the above rectangles not supported by the 402 <para>Accessing any of the above rectangles not supported by the
diff --git a/Documentation/DocBook/media/v4l/gen-errors.xml b/Documentation/DocBook/media/v4l/gen-errors.xml
index 5bbf3ce1973a..7e29a4e1f696 100644
--- a/Documentation/DocBook/media/v4l/gen-errors.xml
+++ b/Documentation/DocBook/media/v4l/gen-errors.xml
@@ -7,6 +7,15 @@
7 <tbody valign="top"> 7 <tbody valign="top">
8 <!-- Keep it ordered alphabetically --> 8 <!-- Keep it ordered alphabetically -->
9 <row> 9 <row>
10 <entry>EAGAIN (aka EWOULDBLOCK)</entry>
11 <entry>The ioctl can't be handled because the device is in state where
12 it can't perform it. This could happen for example in case where
13 device is sleeping and ioctl is performed to query statistics.
14 It is also returned when the ioctl would need to wait
15 for an event, but the device was opened in non-blocking mode.
16 </entry>
17 </row>
18 <row>
10 <entry>EBADF</entry> 19 <entry>EBADF</entry>
11 <entry>The file descriptor is not a valid.</entry> 20 <entry>The file descriptor is not a valid.</entry>
12 </row> 21 </row>
@@ -51,21 +60,11 @@
51 for periodic transfers (up to 80% of the USB bandwidth).</entry> 60 for periodic transfers (up to 80% of the USB bandwidth).</entry>
52 </row> 61 </row>
53 <row> 62 <row>
54 <entry>ENOSYS or EOPNOTSUPP</entry>
55 <entry>Function not available for this device (dvb API only. Will likely
56 be replaced anytime soon by ENOTTY).</entry>
57 </row>
58 <row>
59 <entry>EPERM</entry> 63 <entry>EPERM</entry>
60 <entry>Permission denied. Can be returned if the device needs write 64 <entry>Permission denied. Can be returned if the device needs write
61 permission, or some special capabilities is needed 65 permission, or some special capabilities is needed
62 (e. g. root)</entry> 66 (e. g. root)</entry>
63 </row> 67 </row>
64 <row>
65 <entry>EWOULDBLOCK</entry>
66 <entry>Operation would block. Used when the ioctl would need to wait
67 for an event, but the device was opened in non-blocking mode.</entry>
68 </row>
69 </tbody> 68 </tbody>
70 </tgroup> 69 </tgroup>
71</table> 70</table>
diff --git a/Documentation/DocBook/media/v4l/io.xml b/Documentation/DocBook/media/v4l/io.xml
index 1885cc0755cb..97f785add841 100644
--- a/Documentation/DocBook/media/v4l/io.xml
+++ b/Documentation/DocBook/media/v4l/io.xml
@@ -613,8 +613,8 @@ field is independent of the <structfield>timestamp</structfield> and
613 <entry>__u32</entry> 613 <entry>__u32</entry>
614 <entry><structfield>sequence</structfield></entry> 614 <entry><structfield>sequence</structfield></entry>
615 <entry></entry> 615 <entry></entry>
616 <entry>Set by the driver, counting the frames in the 616 <entry>Set by the driver, counting the frames (not fields!) in
617sequence.</entry> 617sequence. This field is set for both input and output devices.</entry>
618 </row> 618 </row>
619 <row> 619 <row>
620 <entry spanname="hspan"><para>In <link 620 <entry spanname="hspan"><para>In <link
@@ -685,18 +685,14 @@ memory, set by the application. See <xref linkend="userp" /> for details.
685 <entry>__u32</entry> 685 <entry>__u32</entry>
686 <entry><structfield>reserved2</structfield></entry> 686 <entry><structfield>reserved2</structfield></entry>
687 <entry></entry> 687 <entry></entry>
688 <entry>A place holder for future extensions and custom 688 <entry>A place holder for future extensions. Applications
689(driver defined) buffer types
690<constant>V4L2_BUF_TYPE_PRIVATE</constant> and higher. Applications
691should set this to 0.</entry> 689should set this to 0.</entry>
692 </row> 690 </row>
693 <row> 691 <row>
694 <entry>__u32</entry> 692 <entry>__u32</entry>
695 <entry><structfield>reserved</structfield></entry> 693 <entry><structfield>reserved</structfield></entry>
696 <entry></entry> 694 <entry></entry>
697 <entry>A place holder for future extensions and custom 695 <entry>A place holder for future extensions. Applications
698(driver defined) buffer types
699<constant>V4L2_BUF_TYPE_PRIVATE</constant> and higher. Applications
700should set this to 0.</entry> 696should set this to 0.</entry>
701 </row> 697 </row>
702 </tbody> 698 </tbody>
@@ -827,14 +823,7 @@ should set this to 0.</entry>
827 <entry><constant>V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY</constant></entry> 823 <entry><constant>V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY</constant></entry>
828 <entry>8</entry> 824 <entry>8</entry>
829 <entry>Buffer for video output overlay (OSD), see <xref 825 <entry>Buffer for video output overlay (OSD), see <xref
830 linkend="osd" />. Status: <link 826 linkend="osd" />.</entry>
831linkend="experimental">Experimental</link>.</entry>
832 </row>
833 <row>
834 <entry><constant>V4L2_BUF_TYPE_PRIVATE</constant></entry>
835 <entry>0x80</entry>
836 <entry>This and higher values are reserved for custom
837(driver defined) buffer types.</entry>
838 </row> 827 </row>
839 </tbody> 828 </tbody>
840 </tgroup> 829 </tgroup>
diff --git a/Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml b/Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml
index 8eace3e2e7d4..2d3f0b1aefe0 100644
--- a/Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml
+++ b/Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml
@@ -22,8 +22,7 @@
22 with 10 bits per colour compressed to 8 bits each, using DPCM 22 with 10 bits per colour compressed to 8 bits each, using DPCM
23 compression. DPCM, differential pulse-code modulation, is lossy. 23 compression. DPCM, differential pulse-code modulation, is lossy.
24 Each colour component consumes 8 bits of memory. In other respects 24 Each colour component consumes 8 bits of memory. In other respects
25 this format is similar to <xref 25 this format is similar to <xref linkend="pixfmt-srggb10" />.</para>
26 linkend="pixfmt-srggb10">.</xref></para>
27 26
28 </refsect1> 27 </refsect1>
29 </refentry> 28 </refentry>
diff --git a/Documentation/DocBook/media/v4l/pixfmt-yvu420m.xml b/Documentation/DocBook/media/v4l/pixfmt-yvu420m.xml
new file mode 100644
index 000000000000..2330667907c7
--- /dev/null
+++ b/Documentation/DocBook/media/v4l/pixfmt-yvu420m.xml
@@ -0,0 +1,154 @@
1 <refentry id="V4L2-PIX-FMT-YVU420M">
2 <refmeta>
3 <refentrytitle>V4L2_PIX_FMT_YVU420M ('YM21')</refentrytitle>
4 &manvol;
5 </refmeta>
6 <refnamediv>
7 <refname> <constant>V4L2_PIX_FMT_YVU420M</constant></refname>
8 <refpurpose>Variation of <constant>V4L2_PIX_FMT_YVU420</constant>
9 with planes non contiguous in memory. </refpurpose>
10 </refnamediv>
11
12 <refsect1>
13 <title>Description</title>
14
15 <para>This is a multi-planar format, as opposed to a packed format.
16The three components are separated into three sub-images or planes.
17
18The Y plane is first. The Y plane has one byte per pixel. The Cr data
19constitutes the second plane which is half the width and half
20the height of the Y plane (and of the image). Each Cr belongs to four
21pixels, a two-by-two square of the image. For example,
22Cr<subscript>0</subscript> belongs to Y'<subscript>00</subscript>,
23Y'<subscript>01</subscript>, Y'<subscript>10</subscript>, and
24Y'<subscript>11</subscript>. The Cb data, just like the Cr plane, constitutes
25the third plane. </para>
26
27 <para>If the Y plane has pad bytes after each row, then the Cr
28and Cb planes have half as many pad bytes after their rows. In other
29words, two Cx rows (including padding) is exactly as long as one Y row
30(including padding).</para>
31
32 <para><constant>V4L2_PIX_FMT_YVU420M</constant> is intended to be
33used only in drivers and applications that support the multi-planar API,
34described in <xref linkend="planar-apis"/>. </para>
35
36 <example>
37 <title><constant>V4L2_PIX_FMT_YVU420M</constant> 4 &times; 4
38pixel image</title>
39
40 <formalpara>
41 <title>Byte Order.</title>
42 <para>Each cell is one byte.
43 <informaltable frame="none">
44 <tgroup cols="5" align="center">
45 <colspec align="left" colwidth="2*" />
46 <tbody valign="top">
47 <row>
48 <entry>start0&nbsp;+&nbsp;0:</entry>
49 <entry>Y'<subscript>00</subscript></entry>
50 <entry>Y'<subscript>01</subscript></entry>
51 <entry>Y'<subscript>02</subscript></entry>
52 <entry>Y'<subscript>03</subscript></entry>
53 </row>
54 <row>
55 <entry>start0&nbsp;+&nbsp;4:</entry>
56 <entry>Y'<subscript>10</subscript></entry>
57 <entry>Y'<subscript>11</subscript></entry>
58 <entry>Y'<subscript>12</subscript></entry>
59 <entry>Y'<subscript>13</subscript></entry>
60 </row>
61 <row>
62 <entry>start0&nbsp;+&nbsp;8:</entry>
63 <entry>Y'<subscript>20</subscript></entry>
64 <entry>Y'<subscript>21</subscript></entry>
65 <entry>Y'<subscript>22</subscript></entry>
66 <entry>Y'<subscript>23</subscript></entry>
67 </row>
68 <row>
69 <entry>start0&nbsp;+&nbsp;12:</entry>
70 <entry>Y'<subscript>30</subscript></entry>
71 <entry>Y'<subscript>31</subscript></entry>
72 <entry>Y'<subscript>32</subscript></entry>
73 <entry>Y'<subscript>33</subscript></entry>
74 </row>
75 <row><entry></entry></row>
76 <row>
77 <entry>start1&nbsp;+&nbsp;0:</entry>
78 <entry>Cr<subscript>00</subscript></entry>
79 <entry>Cr<subscript>01</subscript></entry>
80 </row>
81 <row>
82 <entry>start1&nbsp;+&nbsp;2:</entry>
83 <entry>Cr<subscript>10</subscript></entry>
84 <entry>Cr<subscript>11</subscript></entry>
85 </row>
86 <row><entry></entry></row>
87 <row>
88 <entry>start2&nbsp;+&nbsp;0:</entry>
89 <entry>Cb<subscript>00</subscript></entry>
90 <entry>Cb<subscript>01</subscript></entry>
91 </row>
92 <row>
93 <entry>start2&nbsp;+&nbsp;2:</entry>
94 <entry>Cb<subscript>10</subscript></entry>
95 <entry>Cb<subscript>11</subscript></entry>
96 </row>
97 </tbody>
98 </tgroup>
99 </informaltable>
100 </para>
101 </formalpara>
102
103 <formalpara>
104 <title>Color Sample Location.</title>
105 <para>
106 <informaltable frame="none">
107 <tgroup cols="7" align="center">
108 <tbody valign="top">
109 <row>
110 <entry></entry>
111 <entry>0</entry><entry></entry><entry>1</entry><entry></entry>
112 <entry>2</entry><entry></entry><entry>3</entry>
113 </row>
114 <row>
115 <entry>0</entry>
116 <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
117 <entry>Y</entry><entry></entry><entry>Y</entry>
118 </row>
119 <row>
120 <entry></entry>
121 <entry></entry><entry>C</entry><entry></entry><entry></entry>
122 <entry></entry><entry>C</entry><entry></entry>
123 </row>
124 <row>
125 <entry>1</entry>
126 <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
127 <entry>Y</entry><entry></entry><entry>Y</entry>
128 </row>
129 <row>
130 <entry></entry>
131 </row>
132 <row>
133 <entry>2</entry>
134 <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
135 <entry>Y</entry><entry></entry><entry>Y</entry>
136 </row>
137 <row>
138 <entry></entry>
139 <entry></entry><entry>C</entry><entry></entry><entry></entry>
140 <entry></entry><entry>C</entry><entry></entry>
141 </row>
142 <row>
143 <entry>3</entry>
144 <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
145 <entry>Y</entry><entry></entry><entry>Y</entry>
146 </row>
147 </tbody>
148 </tgroup>
149 </informaltable>
150 </para>
151 </formalpara>
152 </example>
153 </refsect1>
154 </refentry>
diff --git a/Documentation/DocBook/media/v4l/pixfmt.xml b/Documentation/DocBook/media/v4l/pixfmt.xml
index e58934c92895..1ddbfabe3195 100644
--- a/Documentation/DocBook/media/v4l/pixfmt.xml
+++ b/Documentation/DocBook/media/v4l/pixfmt.xml
@@ -708,6 +708,7 @@ information.</para>
708 &sub-y41p; 708 &sub-y41p;
709 &sub-yuv420; 709 &sub-yuv420;
710 &sub-yuv420m; 710 &sub-yuv420m;
711 &sub-yvu420m;
711 &sub-yuv410; 712 &sub-yuv410;
712 &sub-yuv422p; 713 &sub-yuv422p;
713 &sub-yuv411p; 714 &sub-yuv411p;
diff --git a/Documentation/DocBook/media/v4l/selection-api.xml b/Documentation/DocBook/media/v4l/selection-api.xml
index e7ed5077834d..4c238ce068b0 100644
--- a/Documentation/DocBook/media/v4l/selection-api.xml
+++ b/Documentation/DocBook/media/v4l/selection-api.xml
@@ -40,6 +40,7 @@ cropping and composing rectangles have the same size.</para>
40 <section> 40 <section>
41 <title>Selection targets</title> 41 <title>Selection targets</title>
42 42
43 <para>
43 <figure id="sel-targets-capture"> 44 <figure id="sel-targets-capture">
44 <title>Cropping and composing targets</title> 45 <title>Cropping and composing targets</title>
45 <mediaobject> 46 <mediaobject>
@@ -52,12 +53,12 @@ cropping and composing rectangles have the same size.</para>
52 </textobject> 53 </textobject>
53 </mediaobject> 54 </mediaobject>
54 </figure> 55 </figure>
56 </para>
55 57
58 <para>See <xref linkend="v4l2-selection-targets" /> for more
59 information.</para>
56 </section> 60 </section>
57 61
58 See <xref linkend="v4l2-selection-targets" /> for more
59 information.
60
61 <section> 62 <section>
62 63
63 <title>Configuration</title> 64 <title>Configuration</title>
@@ -216,18 +217,17 @@ composing and cropping operations by setting the appropriate targets. The V4L2
216API lacks any support for composing to and cropping from an image inside a 217API lacks any support for composing to and cropping from an image inside a
217memory buffer. The application could configure a capture device to fill only a 218memory buffer. The application could configure a capture device to fill only a
218part of an image by abusing V4L2 API. Cropping a smaller image from a larger 219part of an image by abusing V4L2 API. Cropping a smaller image from a larger
219one is achieved by setting the field <structfield> 220one is achieved by setting the field
220&v4l2-pix-format;::bytesperline </structfield>. Introducing an image offsets 221&v4l2-pix-format;<structfield>::bytesperline</structfield>. Introducing an image offsets
221could be done by modifying field <structfield> &v4l2-buffer;::m:userptr 222could be done by modifying field &v4l2-buffer;<structfield>::m_userptr</structfield>
222</structfield> before calling <constant> VIDIOC_QBUF </constant>. Those 223before calling <constant> VIDIOC_QBUF </constant>. Those
223operations should be avoided because they are not portable (endianness), and do 224operations should be avoided because they are not portable (endianness), and do
224not work for macroblock and Bayer formats and mmap buffers. The selection API 225not work for macroblock and Bayer formats and mmap buffers. The selection API
225deals with configuration of buffer cropping/composing in a clear, intuitive and 226deals with configuration of buffer cropping/composing in a clear, intuitive and
226portable way. Next, with the selection API the concepts of the padded target 227portable way. Next, with the selection API the concepts of the padded target
227and constraints flags are introduced. Finally, <structname> &v4l2-crop; 228and constraints flags are introduced. Finally, &v4l2-crop; and &v4l2-cropcap;
228</structname> and <structname> &v4l2-cropcap; </structname> have no reserved 229have no reserved fields. Therefore there is no way to extend their functionality.
229fields. Therefore there is no way to extend their functionality. The new 230The new &v4l2-selection; provides a lot of place for future
230<structname> &v4l2-selection; </structname> provides a lot of place for future
231extensions. Driver developers are encouraged to implement only selection API. 231extensions. Driver developers are encouraged to implement only selection API.
232The former cropping API would be simulated using the new one. </para> 232The former cropping API would be simulated using the new one. </para>
233 233
diff --git a/Documentation/DocBook/media/v4l/v4l2.xml b/Documentation/DocBook/media/v4l/v4l2.xml
index eee6908c749f..10ccde9d16d0 100644
--- a/Documentation/DocBook/media/v4l/v4l2.xml
+++ b/Documentation/DocBook/media/v4l/v4l2.xml
@@ -145,9 +145,12 @@ applications. -->
145 <authorinitials>hv</authorinitials> 145 <authorinitials>hv</authorinitials>
146 <revremark>Added VIDIOC_ENUM_FREQ_BANDS. 146 <revremark>Added VIDIOC_ENUM_FREQ_BANDS.
147 </revremark> 147 </revremark>
148 </revision>
149
150 <revision>
148 <revnumber>3.5</revnumber> 151 <revnumber>3.5</revnumber>
149 <date>2012-05-07</date> 152 <date>2012-05-07</date>
150 <authorinitials>sa, sn</authorinitials> 153 <authorinitials>sa, sn, hv</authorinitials>
151 <revremark>Added V4L2_CTRL_TYPE_INTEGER_MENU and V4L2 subdev 154 <revremark>Added V4L2_CTRL_TYPE_INTEGER_MENU and V4L2 subdev
152 selections API. Improved the description of V4L2_CID_COLORFX 155 selections API. Improved the description of V4L2_CID_COLORFX
153 control, added V4L2_CID_COLORFX_CBCR control. 156 control, added V4L2_CID_COLORFX_CBCR control.
@@ -158,11 +161,8 @@ applications. -->
158 V4L2_CID_3A_LOCK, V4L2_CID_AUTO_FOCUS_START, 161 V4L2_CID_3A_LOCK, V4L2_CID_AUTO_FOCUS_START,
159 V4L2_CID_AUTO_FOCUS_STOP, V4L2_CID_AUTO_FOCUS_STATUS 162 V4L2_CID_AUTO_FOCUS_STOP, V4L2_CID_AUTO_FOCUS_STATUS
160 and V4L2_CID_AUTO_FOCUS_RANGE. 163 and V4L2_CID_AUTO_FOCUS_RANGE.
161 </revremark> 164 Added VIDIOC_ENUM_DV_TIMINGS, VIDIOC_QUERY_DV_TIMINGS and
162 <date>2012-05-01</date> 165 VIDIOC_DV_TIMINGS_CAP.
163 <authorinitials>hv</authorinitials>
164 <revremark>Added VIDIOC_ENUM_DV_TIMINGS, VIDIOC_QUERY_DV_TIMINGS and
165 VIDIOC_DV_TIMINGS_CAP.
166 </revremark> 166 </revremark>
167 </revision> 167 </revision>
168 168
@@ -472,7 +472,7 @@ and discussions on the V4L mailing list.</revremark>
472</partinfo> 472</partinfo>
473 473
474<title>Video for Linux Two API Specification</title> 474<title>Video for Linux Two API Specification</title>
475 <subtitle>Revision 3.5</subtitle> 475 <subtitle>Revision 3.6</subtitle>
476 476
477 <chapter id="common"> 477 <chapter id="common">
478 &sub-common; 478 &sub-common;
@@ -581,6 +581,7 @@ and discussions on the V4L mailing list.</revremark>
581 &sub-subdev-enum-frame-size; 581 &sub-subdev-enum-frame-size;
582 &sub-subdev-enum-mbus-code; 582 &sub-subdev-enum-mbus-code;
583 &sub-subdev-g-crop; 583 &sub-subdev-g-crop;
584 &sub-subdev-g-edid;
584 &sub-subdev-g-fmt; 585 &sub-subdev-g-fmt;
585 &sub-subdev-g-frame-interval; 586 &sub-subdev-g-frame-interval;
586 &sub-subdev-g-selection; 587 &sub-subdev-g-selection;
diff --git a/Documentation/DocBook/media/v4l/vidioc-cropcap.xml b/Documentation/DocBook/media/v4l/vidioc-cropcap.xml
index f1bac2c6e978..bf7cc979fdfa 100644
--- a/Documentation/DocBook/media/v4l/vidioc-cropcap.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-cropcap.xml
@@ -59,6 +59,9 @@ constant except when switching the video standard. Remember this
59switch can occur implicit when switching the video input or 59switch can occur implicit when switching the video input or
60output.</para> 60output.</para>
61 61
62 <para>This ioctl must be implemented for video capture or output devices that
63support cropping and/or scaling and/or have non-square pixels, and for overlay devices.</para>
64
62 <table pgwide="1" frame="none" id="v4l2-cropcap"> 65 <table pgwide="1" frame="none" id="v4l2-cropcap">
63 <title>struct <structname>v4l2_cropcap</structname></title> 66 <title>struct <structname>v4l2_cropcap</structname></title>
64 <tgroup cols="3"> 67 <tgroup cols="3">
@@ -70,10 +73,10 @@ output.</para>
70 <entry>Type of the data stream, set by the application. 73 <entry>Type of the data stream, set by the application.
71Only these types are valid here: 74Only these types are valid here:
72<constant>V4L2_BUF_TYPE_VIDEO_CAPTURE</constant>, 75<constant>V4L2_BUF_TYPE_VIDEO_CAPTURE</constant>,
76<constant>V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE</constant>,
73<constant>V4L2_BUF_TYPE_VIDEO_OUTPUT</constant>, 77<constant>V4L2_BUF_TYPE_VIDEO_OUTPUT</constant>,
74<constant>V4L2_BUF_TYPE_VIDEO_OVERLAY</constant>, and custom (driver 78<constant>V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE</constant> and
75defined) types with code <constant>V4L2_BUF_TYPE_PRIVATE</constant> 79<constant>V4L2_BUF_TYPE_VIDEO_OVERLAY</constant>. See <xref linkend="v4l2-buf-type" />.</entry>
76and higher. See <xref linkend="v4l2-buf-type" />.</entry>
77 </row> 80 </row>
78 <row> 81 <row>
79 <entry>struct <link linkend="v4l2-rect-crop">v4l2_rect</link></entry> 82 <entry>struct <link linkend="v4l2-rect-crop">v4l2_rect</link></entry>
@@ -156,8 +159,7 @@ on 22 Oct 2002 subject "Re:[V4L][patches!] Re:v4l2/kernel-2.5" -->
156 <term><errorcode>EINVAL</errorcode></term> 159 <term><errorcode>EINVAL</errorcode></term>
157 <listitem> 160 <listitem>
158 <para>The &v4l2-cropcap; <structfield>type</structfield> is 161 <para>The &v4l2-cropcap; <structfield>type</structfield> is
159invalid. This is not permitted for video capture, output and overlay devices, 162invalid.</para>
160which must support <constant>VIDIOC_CROPCAP</constant>.</para>
161 </listitem> 163 </listitem>
162 </varlistentry> 164 </varlistentry>
163 </variablelist> 165 </variablelist>
diff --git a/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml b/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml
index 74b87f6e480a..9215627b04c7 100644
--- a/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml
@@ -49,13 +49,6 @@
49 <refsect1> 49 <refsect1>
50 <title>Description</title> 50 <title>Description</title>
51 51
52 <note>
53 <title>Experimental</title>
54
55 <para>This is an <link linkend="experimental">experimental</link>
56interface and may change in the future.</para>
57 </note>
58
59 <para>These ioctls control an audio/video (usually MPEG-) decoder. 52 <para>These ioctls control an audio/video (usually MPEG-) decoder.
60<constant>VIDIOC_DECODER_CMD</constant> sends a command to the 53<constant>VIDIOC_DECODER_CMD</constant> sends a command to the
61decoder, <constant>VIDIOC_TRY_DECODER_CMD</constant> can be used to 54decoder, <constant>VIDIOC_TRY_DECODER_CMD</constant> can be used to
diff --git a/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml b/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml
index f431b3ba79bd..0619ca5d2d36 100644
--- a/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml
@@ -49,13 +49,6 @@
49 <refsect1> 49 <refsect1>
50 <title>Description</title> 50 <title>Description</title>
51 51
52 <note>
53 <title>Experimental</title>
54
55 <para>This is an <link linkend="experimental">experimental</link>
56interface and may change in the future.</para>
57 </note>
58
59 <para>These ioctls control an audio/video (usually MPEG-) encoder. 52 <para>These ioctls control an audio/video (usually MPEG-) encoder.
60<constant>VIDIOC_ENCODER_CMD</constant> sends a command to the 53<constant>VIDIOC_ENCODER_CMD</constant> sends a command to the
61encoder, <constant>VIDIOC_TRY_ENCODER_CMD</constant> can be used to 54encoder, <constant>VIDIOC_TRY_ENCODER_CMD</constant> can be used to
diff --git a/Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml b/Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml
index 509f0012d2a6..fced5fb0dbf0 100644
--- a/Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml
@@ -229,6 +229,12 @@ intended for the user.</entry>
229is out of bounds.</para> 229is out of bounds.</para>
230 </listitem> 230 </listitem>
231 </varlistentry> 231 </varlistentry>
232 <varlistentry>
233 <term><errorcode>ENODATA</errorcode></term>
234 <listitem>
235 <para>Digital video presets are not supported for this input or output.</para>
236 </listitem>
237 </varlistentry>
232 </variablelist> 238 </variablelist>
233 </refsect1> 239 </refsect1>
234</refentry> 240</refentry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml b/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml
index 24c3bf4fd29a..b3e17c1dfaf5 100644
--- a/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml
@@ -106,6 +106,12 @@ application.</entry>
106is out of bounds.</para> 106is out of bounds.</para>
107 </listitem> 107 </listitem>
108 </varlistentry> 108 </varlistentry>
109 <varlistentry>
110 <term><errorcode>ENODATA</errorcode></term>
111 <listitem>
112 <para>Digital video presets are not supported for this input or output.</para>
113 </listitem>
114 </varlistentry>
109 </variablelist> 115 </variablelist>
110 </refsect1> 116 </refsect1>
111</refentry> 117</refentry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-enum-fmt.xml b/Documentation/DocBook/media/v4l/vidioc-enum-fmt.xml
index 81ebe48317fe..f8dfeed34fca 100644
--- a/Documentation/DocBook/media/v4l/vidioc-enum-fmt.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-enum-fmt.xml
@@ -58,6 +58,9 @@ structure. Drivers fill the rest of the structure or return an
58incrementing by one until <errorcode>EINVAL</errorcode> is 58incrementing by one until <errorcode>EINVAL</errorcode> is
59returned.</para> 59returned.</para>
60 60
61 <para>Note that after switching input or output the list of enumerated image
62formats may be different.</para>
63
61 <table pgwide="1" frame="none" id="v4l2-fmtdesc"> 64 <table pgwide="1" frame="none" id="v4l2-fmtdesc">
62 <title>struct <structname>v4l2_fmtdesc</structname></title> 65 <title>struct <structname>v4l2_fmtdesc</structname></title>
63 <tgroup cols="3"> 66 <tgroup cols="3">
@@ -78,10 +81,8 @@ Only these types are valid here:
78<constant>V4L2_BUF_TYPE_VIDEO_CAPTURE</constant>, 81<constant>V4L2_BUF_TYPE_VIDEO_CAPTURE</constant>,
79<constant>V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE</constant>, 82<constant>V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE</constant>,
80<constant>V4L2_BUF_TYPE_VIDEO_OUTPUT</constant>, 83<constant>V4L2_BUF_TYPE_VIDEO_OUTPUT</constant>,
81<constant>V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE</constant>, 84<constant>V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE</constant> and
82<constant>V4L2_BUF_TYPE_VIDEO_OVERLAY</constant>, and custom (driver 85<constant>V4L2_BUF_TYPE_VIDEO_OVERLAY</constant>. See <xref linkend="v4l2-buf-type" />.</entry>
83defined) types with code <constant>V4L2_BUF_TYPE_PRIVATE</constant>
84and higher. See <xref linkend="v4l2-buf-type" />.</entry>
85 </row> 86 </row>
86 <row> 87 <row>
87 <entry>__u32</entry> 88 <entry>__u32</entry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-enum-framesizes.xml b/Documentation/DocBook/media/v4l/vidioc-enum-framesizes.xml
index f77a13f486d7..a78454b5abcd 100644
--- a/Documentation/DocBook/media/v4l/vidioc-enum-framesizes.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-enum-framesizes.xml
@@ -50,13 +50,6 @@ and pixel format and receives a frame width and height.</para>
50 <refsect1> 50 <refsect1>
51 <title>Description</title> 51 <title>Description</title>
52 52
53 <note>
54 <title>Experimental</title>
55
56 <para>This is an <link linkend="experimental">experimental</link>
57interface and may change in the future.</para>
58 </note>
59
60 <para>This ioctl allows applications to enumerate all frame sizes 53 <para>This ioctl allows applications to enumerate all frame sizes
61(&ie; width and height in pixels) that the device supports for the 54(&ie; width and height in pixels) that the device supports for the
62given pixel format.</para> 55given pixel format.</para>
diff --git a/Documentation/DocBook/media/v4l/vidioc-enuminput.xml b/Documentation/DocBook/media/v4l/vidioc-enuminput.xml
index 46d5a044a537..3c9a81305ad4 100644
--- a/Documentation/DocBook/media/v4l/vidioc-enuminput.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-enuminput.xml
@@ -283,7 +283,7 @@ input/output interface to linux-media@vger.kernel.org on 19 Oct 2009.
283 <entry>This input supports setting DV presets by using VIDIOC_S_DV_PRESET.</entry> 283 <entry>This input supports setting DV presets by using VIDIOC_S_DV_PRESET.</entry>
284 </row> 284 </row>
285 <row> 285 <row>
286 <entry><constant>V4L2_IN_CAP_CUSTOM_TIMINGS</constant></entry> 286 <entry><constant>V4L2_IN_CAP_DV_TIMINGS</constant></entry>
287 <entry>0x00000002</entry> 287 <entry>0x00000002</entry>
288 <entry>This input supports setting video timings by using VIDIOC_S_DV_TIMINGS.</entry> 288 <entry>This input supports setting video timings by using VIDIOC_S_DV_TIMINGS.</entry>
289 </row> 289 </row>
diff --git a/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml b/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml
index 428020000ef0..f4ab0798545d 100644
--- a/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml
@@ -168,7 +168,7 @@ input/output interface to linux-media@vger.kernel.org on 19 Oct 2009.
168 <entry>This output supports setting DV presets by using VIDIOC_S_DV_PRESET.</entry> 168 <entry>This output supports setting DV presets by using VIDIOC_S_DV_PRESET.</entry>
169 </row> 169 </row>
170 <row> 170 <row>
171 <entry><constant>V4L2_OUT_CAP_CUSTOM_TIMINGS</constant></entry> 171 <entry><constant>V4L2_OUT_CAP_DV_TIMINGS</constant></entry>
172 <entry>0x00000002</entry> 172 <entry>0x00000002</entry>
173 <entry>This output supports setting video timings by using VIDIOC_S_DV_TIMINGS.</entry> 173 <entry>This output supports setting video timings by using VIDIOC_S_DV_TIMINGS.</entry>
174 </row> 174 </row>
diff --git a/Documentation/DocBook/media/v4l/vidioc-enumstd.xml b/Documentation/DocBook/media/v4l/vidioc-enumstd.xml
index 3a5fc5405f96..8065099401d1 100644
--- a/Documentation/DocBook/media/v4l/vidioc-enumstd.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-enumstd.xml
@@ -378,6 +378,12 @@ system)</para></footnote></para></entry>
378is out of bounds.</para> 378is out of bounds.</para>
379 </listitem> 379 </listitem>
380 </varlistentry> 380 </varlistentry>
381 <varlistentry>
382 <term><errorcode>ENODATA</errorcode></term>
383 <listitem>
384 <para>Standard video timings are not supported for this input or output.</para>
385 </listitem>
386 </varlistentry>
381 </variablelist> 387 </variablelist>
382 </refsect1> 388 </refsect1>
383</refentry> 389</refentry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-crop.xml b/Documentation/DocBook/media/v4l/vidioc-g-crop.xml
index c4ff3b1887fb..75c6a93de3c1 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-crop.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-crop.xml
@@ -104,10 +104,8 @@ changed and <constant>VIDIOC_S_CROP</constant> returns the
104 <entry><structfield>type</structfield></entry> 104 <entry><structfield>type</structfield></entry>
105 <entry>Type of the data stream, set by the application. 105 <entry>Type of the data stream, set by the application.
106Only these types are valid here: <constant>V4L2_BUF_TYPE_VIDEO_CAPTURE</constant>, 106Only these types are valid here: <constant>V4L2_BUF_TYPE_VIDEO_CAPTURE</constant>,
107<constant>V4L2_BUF_TYPE_VIDEO_OUTPUT</constant>, 107<constant>V4L2_BUF_TYPE_VIDEO_OUTPUT</constant> and
108<constant>V4L2_BUF_TYPE_VIDEO_OVERLAY</constant>, and custom (driver 108<constant>V4L2_BUF_TYPE_VIDEO_OVERLAY</constant>. See <xref linkend="v4l2-buf-type" />.</entry>
109defined) types with code <constant>V4L2_BUF_TYPE_PRIVATE</constant>
110and higher. See <xref linkend="v4l2-buf-type" />.</entry>
111 </row> 109 </row>
112 <row> 110 <row>
113 <entry>&v4l2-rect;</entry> 111 <entry>&v4l2-rect;</entry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-dv-preset.xml b/Documentation/DocBook/media/v4l/vidioc-g-dv-preset.xml
index 61be9fa3803a..b9ea37634f6c 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-dv-preset.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-dv-preset.xml
@@ -78,6 +78,12 @@ If the preset is not supported, it returns an &EINVAL; </para>
78 </listitem> 78 </listitem>
79 </varlistentry> 79 </varlistentry>
80 <varlistentry> 80 <varlistentry>
81 <term><errorcode>ENODATA</errorcode></term>
82 <listitem>
83 <para>Digital video presets are not supported for this input or output.</para>
84 </listitem>
85 </varlistentry>
86 <varlistentry>
81 <term><errorcode>EBUSY</errorcode></term> 87 <term><errorcode>EBUSY</errorcode></term>
82 <listitem> 88 <listitem>
83 <para>The device is busy and therefore can not change the preset.</para> 89 <para>The device is busy and therefore can not change the preset.</para>
@@ -104,7 +110,4 @@ If the preset is not supported, it returns an &EINVAL; </para>
104 </tgroup> 110 </tgroup>
105 </table> 111 </table>
106 </refsect1> 112 </refsect1>
107 <refsect1>
108 &return-value;
109 </refsect1>
110</refentry> 113</refentry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml b/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml
index eda1a2991bbe..72369707bd77 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml
@@ -56,7 +56,9 @@ a pointer to the &v4l2-dv-timings; structure as argument. If the ioctl is not su
56or the timing values are not correct, the driver returns &EINVAL;.</para> 56or the timing values are not correct, the driver returns &EINVAL;.</para>
57<para>The <filename>linux/v4l2-dv-timings.h</filename> header can be used to get the 57<para>The <filename>linux/v4l2-dv-timings.h</filename> header can be used to get the
58timings of the formats in the <xref linkend="cea861" /> and <xref linkend="vesadmt" /> 58timings of the formats in the <xref linkend="cea861" /> and <xref linkend="vesadmt" />
59standards.</para> 59standards. If the current input or output does not support DV timings (e.g. if
60&VIDIOC-ENUMINPUT; does not set the <constant>V4L2_IN_CAP_DV_TIMINGS</constant> flag), then
61&ENODATA; is returned.</para>
60 </refsect1> 62 </refsect1>
61 63
62 <refsect1> 64 <refsect1>
@@ -71,6 +73,12 @@ standards.</para>
71 </listitem> 73 </listitem>
72 </varlistentry> 74 </varlistentry>
73 <varlistentry> 75 <varlistentry>
76 <term><errorcode>ENODATA</errorcode></term>
77 <listitem>
78 <para>Digital video timings are not supported for this input or output.</para>
79 </listitem>
80 </varlistentry>
81 <varlistentry>
74 <term><errorcode>EBUSY</errorcode></term> 82 <term><errorcode>EBUSY</errorcode></term>
75 <listitem> 83 <listitem>
76 <para>The device is busy and therefore can not change the timings.</para> 84 <para>The device is busy and therefore can not change the timings.</para>
@@ -320,7 +328,4 @@ detected or used depends on the hardware.
320 </tgroup> 328 </tgroup>
321 </table> 329 </table>
322 </refsect1> 330 </refsect1>
323 <refsect1>
324 &return-value;
325 </refsect1>
326</refentry> 331</refentry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-enc-index.xml b/Documentation/DocBook/media/v4l/vidioc-g-enc-index.xml
index 2aef02c9044e..be25029a16f1 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-enc-index.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-enc-index.xml
@@ -48,13 +48,6 @@
48 <refsect1> 48 <refsect1>
49 <title>Description</title> 49 <title>Description</title>
50 50
51 <note>
52 <title>Experimental</title>
53
54 <para>This is an <link linkend="experimental">experimental</link>
55interface and may change in the future.</para>
56 </note>
57
58 <para>The <constant>VIDIOC_G_ENC_INDEX</constant> ioctl provides 51 <para>The <constant>VIDIOC_G_ENC_INDEX</constant> ioctl provides
59meta data about a compressed video stream the same or another 52meta data about a compressed video stream the same or another
60application currently reads from the driver, which is useful for 53application currently reads from the driver, which is useful for
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-fmt.xml b/Documentation/DocBook/media/v4l/vidioc-g-fmt.xml
index 52acff193a6f..ee8f56e1bac0 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-fmt.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-fmt.xml
@@ -81,7 +81,7 @@ the application calls the <constant>VIDIOC_S_FMT</constant> ioctl
81with a pointer to a <structname>v4l2_format</structname> structure 81with a pointer to a <structname>v4l2_format</structname> structure
82the driver checks 82the driver checks
83and adjusts the parameters against hardware abilities. Drivers 83and adjusts the parameters against hardware abilities. Drivers
84should not return an error code unless the input is ambiguous, this is 84should not return an error code unless the <structfield>type</structfield> field is invalid, this is
85a mechanism to fathom device capabilities and to approach parameters 85a mechanism to fathom device capabilities and to approach parameters
86acceptable for both the application and driver. On success the driver 86acceptable for both the application and driver. On success the driver
87may program the hardware, allocate resources and generally prepare for 87may program the hardware, allocate resources and generally prepare for
@@ -107,6 +107,10 @@ disabling I/O or possibly time consuming hardware preparations.
107Although strongly recommended drivers are not required to implement 107Although strongly recommended drivers are not required to implement
108this ioctl.</para> 108this ioctl.</para>
109 109
110 <para>The format as returned by <constant>VIDIOC_TRY_FMT</constant>
111must be identical to what <constant>VIDIOC_S_FMT</constant> returns for
112the same input or output.</para>
113
110 <table pgwide="1" frame="none" id="v4l2-format"> 114 <table pgwide="1" frame="none" id="v4l2-format">
111 <title>struct <structname>v4l2_format</structname></title> 115 <title>struct <structname>v4l2_format</structname></title>
112 <tgroup cols="4"> 116 <tgroup cols="4">
@@ -170,9 +174,7 @@ capture and output devices.</entry>
170 <entry></entry> 174 <entry></entry>
171 <entry>__u8</entry> 175 <entry>__u8</entry>
172 <entry><structfield>raw_data</structfield>[200]</entry> 176 <entry><structfield>raw_data</structfield>[200]</entry>
173 <entry>Place holder for future extensions and custom 177 <entry>Place holder for future extensions.</entry>
174(driver defined) formats with <structfield>type</structfield>
175<constant>V4L2_BUF_TYPE_PRIVATE</constant> and higher.</entry>
176 </row> 178 </row>
177 </tbody> 179 </tbody>
178 </tgroup> 180 </tgroup>
@@ -187,8 +189,7 @@ capture and output devices.</entry>
187 <term><errorcode>EINVAL</errorcode></term> 189 <term><errorcode>EINVAL</errorcode></term>
188 <listitem> 190 <listitem>
189 <para>The &v4l2-format; <structfield>type</structfield> 191 <para>The &v4l2-format; <structfield>type</structfield>
190field is invalid, the requested buffer type not supported, or the 192field is invalid or the requested buffer type not supported.</para>
191format is not supported with this buffer type.</para>
192 </listitem> 193 </listitem>
193 </varlistentry> 194 </varlistentry>
194 </variablelist> 195 </variablelist>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-parm.xml b/Documentation/DocBook/media/v4l/vidioc-g-parm.xml
index f83d2cdd1185..9058224d1bbf 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-parm.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-parm.xml
@@ -108,9 +108,7 @@ devices.</para>
108 <entry></entry> 108 <entry></entry>
109 <entry>__u8</entry> 109 <entry>__u8</entry>
110 <entry><structfield>raw_data</structfield>[200]</entry> 110 <entry><structfield>raw_data</structfield>[200]</entry>
111 <entry>A place holder for future extensions and custom 111 <entry>A place holder for future extensions.</entry>
112(driver defined) buffer types <constant>V4L2_BUF_TYPE_PRIVATE</constant> and
113higher.</entry>
114 </row> 112 </row>
115 </tbody> 113 </tbody>
116 </tgroup> 114 </tgroup>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-selection.xml b/Documentation/DocBook/media/v4l/vidioc-g-selection.xml
index f76d8a6d9b92..b11ec75e21a1 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-selection.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-selection.xml
@@ -152,12 +152,10 @@ satisfactory parameters have been negotiated. If constraints flags have to be
152violated at then ERANGE is returned. The error indicates that <emphasis> there 152violated at then ERANGE is returned. The error indicates that <emphasis> there
153exist no rectangle </emphasis> that satisfies the constraints.</para> 153exist no rectangle </emphasis> that satisfies the constraints.</para>
154 154
155 </refsect1>
156
157 <para>Selection targets and flags are documented in <xref 155 <para>Selection targets and flags are documented in <xref
158 linkend="v4l2-selections-common"/>.</para> 156 linkend="v4l2-selections-common"/>.</para>
159 157
160 <section> 158 <para>
161 <figure id="sel-const-adjust"> 159 <figure id="sel-const-adjust">
162 <title>Size adjustments with constraint flags.</title> 160 <title>Size adjustments with constraint flags.</title>
163 <mediaobject> 161 <mediaobject>
@@ -170,9 +168,9 @@ exist no rectangle </emphasis> that satisfies the constraints.</para>
170 </textobject> 168 </textobject>
171 </mediaobject> 169 </mediaobject>
172 </figure> 170 </figure>
173 </section> 171 </para>
174 172
175 <refsect1> 173 <para>
176 <table pgwide="1" frame="none" id="v4l2-selection"> 174 <table pgwide="1" frame="none" id="v4l2-selection">
177 <title>struct <structname>v4l2_selection</structname></title> 175 <title>struct <structname>v4l2_selection</structname></title>
178 <tgroup cols="3"> 176 <tgroup cols="3">
@@ -208,6 +206,7 @@ exist no rectangle </emphasis> that satisfies the constraints.</para>
208 </tbody> 206 </tbody>
209 </tgroup> 207 </tgroup>
210 </table> 208 </table>
209 </para>
211 </refsect1> 210 </refsect1>
212 211
213 <refsect1> 212 <refsect1>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-std.xml b/Documentation/DocBook/media/v4l/vidioc-g-std.xml
index 99ff1a016220..4a898417de28 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-std.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-std.xml
@@ -72,7 +72,9 @@ flags, being a write-only ioctl it does not return the actual new standard as
72the current input does not support the requested standard the driver 72the current input does not support the requested standard the driver
73returns an &EINVAL;. When the standard set is ambiguous drivers may 73returns an &EINVAL;. When the standard set is ambiguous drivers may
74return <errorcode>EINVAL</errorcode> or choose any of the requested 74return <errorcode>EINVAL</errorcode> or choose any of the requested
75standards.</para> 75standards. If the current input or output does not support standard video timings (e.g. if
76&VIDIOC-ENUMINPUT; does not set the <constant>V4L2_IN_CAP_STD</constant> flag), then
77&ENODATA; is returned.</para>
76 </refsect1> 78 </refsect1>
77 79
78 <refsect1> 80 <refsect1>
@@ -85,6 +87,12 @@ standards.</para>
85 <para>The <constant>VIDIOC_S_STD</constant> parameter was unsuitable.</para> 87 <para>The <constant>VIDIOC_S_STD</constant> parameter was unsuitable.</para>
86 </listitem> 88 </listitem>
87 </varlistentry> 89 </varlistentry>
90 <varlistentry>
91 <term><errorcode>ENODATA</errorcode></term>
92 <listitem>
93 <para>Standard video timings are not supported for this input or output.</para>
94 </listitem>
95 </varlistentry>
88 </variablelist> 96 </variablelist>
89 </refsect1> 97 </refsect1>
90</refentry> 98</refentry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-tuner.xml b/Documentation/DocBook/media/v4l/vidioc-g-tuner.xml
index 701138f1209d..6cc82010c736 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-tuner.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-tuner.xml
@@ -354,6 +354,12 @@ radio tuners.</entry>
354 <entry>The &VIDIOC-ENUM-FREQ-BANDS; ioctl can be used to enumerate 354 <entry>The &VIDIOC-ENUM-FREQ-BANDS; ioctl can be used to enumerate
355 the available frequency bands.</entry> 355 the available frequency bands.</entry>
356 </row> 356 </row>
357 <row>
358 <entry><constant>V4L2_TUNER_CAP_HWSEEK_PROG_LIM</constant></entry>
359 <entry>0x0800</entry>
360 <entry>The range to search when using the hardware seek functionality
361 is programmable, see &VIDIOC-S-HW-FREQ-SEEK; for details.</entry>
362 </row>
357 </tbody> 363 </tbody>
358 </tgroup> 364 </tgroup>
359 </table> 365 </table>
diff --git a/Documentation/DocBook/media/v4l/vidioc-qbuf.xml b/Documentation/DocBook/media/v4l/vidioc-qbuf.xml
index 77ff5be0809d..6a821a65a5ae 100644
--- a/Documentation/DocBook/media/v4l/vidioc-qbuf.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-qbuf.xml
@@ -155,6 +155,8 @@ or no buffers have been allocated yet, or the
155<structfield>userptr</structfield> or 155<structfield>userptr</structfield> or
156<structfield>length</structfield> are invalid.</para> 156<structfield>length</structfield> are invalid.</para>
157 </listitem> 157 </listitem>
158 </varlistentry>
159 <varlistentry>
158 <term><errorcode>EIO</errorcode></term> 160 <term><errorcode>EIO</errorcode></term>
159 <listitem> 161 <listitem>
160 <para><constant>VIDIOC_DQBUF</constant> failed due to an 162 <para><constant>VIDIOC_DQBUF</constant> failed due to an
diff --git a/Documentation/DocBook/media/v4l/vidioc-query-dv-preset.xml b/Documentation/DocBook/media/v4l/vidioc-query-dv-preset.xml
index 1bc8aeb3ff1f..68b49d09e245 100644
--- a/Documentation/DocBook/media/v4l/vidioc-query-dv-preset.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-query-dv-preset.xml
@@ -65,5 +65,14 @@ returned.</para>
65 65
66 <refsect1> 66 <refsect1>
67 &return-value; 67 &return-value;
68
69 <variablelist>
70 <varlistentry>
71 <term><errorcode>ENODATA</errorcode></term>
72 <listitem>
73 <para>Digital video presets are not supported for this input or output.</para>
74 </listitem>
75 </varlistentry>
76 </variablelist>
68 </refsect1> 77 </refsect1>
69</refentry> 78</refentry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml b/Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml
index 44935a0ffcf0..e185f149e0a1 100644
--- a/Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml
@@ -78,6 +78,12 @@ capabilities in order to give more precise feedback to the user.
78 78
79 <variablelist> 79 <variablelist>
80 <varlistentry> 80 <varlistentry>
81 <term><errorcode>ENODATA</errorcode></term>
82 <listitem>
83 <para>Digital video timings are not supported for this input or output.</para>
84 </listitem>
85 </varlistentry>
86 <varlistentry>
81 <term><errorcode>ENOLINK</errorcode></term> 87 <term><errorcode>ENOLINK</errorcode></term>
82 <listitem> 88 <listitem>
83 <para>No timings could be detected because no signal was found. 89 <para>No timings could be detected because no signal was found.
diff --git a/Documentation/DocBook/media/v4l/vidioc-querycap.xml b/Documentation/DocBook/media/v4l/vidioc-querycap.xml
index f33dd746b66b..4c70215ae03f 100644
--- a/Documentation/DocBook/media/v4l/vidioc-querycap.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-querycap.xml
@@ -90,11 +90,13 @@ ambiguities.</entry>
90 <entry>__u8</entry> 90 <entry>__u8</entry>
91 <entry><structfield>bus_info</structfield>[32]</entry> 91 <entry><structfield>bus_info</structfield>[32]</entry>
92 <entry>Location of the device in the system, a 92 <entry>Location of the device in the system, a
93NUL-terminated ASCII string. For example: "PCI Slot 4". This 93NUL-terminated ASCII string. For example: "PCI:0000:05:06.0". This
94information is intended for users, to distinguish multiple 94information is intended for users, to distinguish multiple
95identical devices. If no such information is available the field may 95identical devices. If no such information is available the field must
96simply count the devices controlled by the driver, or contain the 96simply count the devices controlled by the driver ("platform:vivi-000").
97empty string (<structfield>bus_info</structfield>[0] = 0).<!-- XXX pci_dev->slot_name example --></entry> 97The bus_info must start with "PCI:" for PCI boards, "PCIe:" for PCI Express boards,
98"usb-" for USB devices, "I2C:" for i2c devices, "ISA:" for ISA devices,
99"parport" for parallel port devices and "platform:" for platform devices.</entry>
98 </row> 100 </row>
99 <row> 101 <row>
100 <entry>__u32</entry> 102 <entry>__u32</entry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-querystd.xml b/Documentation/DocBook/media/v4l/vidioc-querystd.xml
index 4b79c7c04ed6..fe80a183d957 100644
--- a/Documentation/DocBook/media/v4l/vidioc-querystd.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-querystd.xml
@@ -62,5 +62,13 @@ current video input or output.</para>
62 62
63 <refsect1> 63 <refsect1>
64 &return-value; 64 &return-value;
65 <variablelist>
66 <varlistentry>
67 <term><errorcode>ENODATA</errorcode></term>
68 <listitem>
69 <para>Standard video timings are not supported for this input or output.</para>
70 </listitem>
71 </varlistentry>
72 </variablelist>
65 </refsect1> 73 </refsect1>
66</refentry> 74</refentry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-reqbufs.xml b/Documentation/DocBook/media/v4l/vidioc-reqbufs.xml
index d7c95057bc51..2b50ef2007f3 100644
--- a/Documentation/DocBook/media/v4l/vidioc-reqbufs.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-reqbufs.xml
@@ -109,9 +109,8 @@ as the &v4l2-format; <structfield>type</structfield> field. See <xref
109 <row> 109 <row>
110 <entry>__u32</entry> 110 <entry>__u32</entry>
111 <entry><structfield>reserved</structfield>[2]</entry> 111 <entry><structfield>reserved</structfield>[2]</entry>
112 <entry>A place holder for future extensions and custom 112 <entry>A place holder for future extensions. This array should
113(driver defined) buffer types <constant>V4L2_BUF_TYPE_PRIVATE</constant> and 113be zeroed by applications.</entry>
114higher. This array should be zeroed by applications.</entry>
115 </row> 114 </row>
116 </tbody> 115 </tbody>
117 </tgroup> 116 </tgroup>
diff --git a/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml b/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml
index 3dd1bec6d3c7..5b379e752194 100644
--- a/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml
@@ -75,6 +75,9 @@ seek is started.</para>
75 75
76 <para>This ioctl is supported if the <constant>V4L2_CAP_HW_FREQ_SEEK</constant> capability is set.</para> 76 <para>This ioctl is supported if the <constant>V4L2_CAP_HW_FREQ_SEEK</constant> capability is set.</para>
77 77
78 <para>If this ioctl is called from a non-blocking filehandle, then &EAGAIN; is
79 returned and no seek takes place.</para>
80
78 <table pgwide="1" frame="none" id="v4l2-hw-freq-seek"> 81 <table pgwide="1" frame="none" id="v4l2-hw-freq-seek">
79 <title>struct <structname>v4l2_hw_freq_seek</structname></title> 82 <title>struct <structname>v4l2_hw_freq_seek</structname></title>
80 <tgroup cols="3"> 83 <tgroup cols="3">
@@ -158,6 +161,13 @@ fields is wrong.</para>
158 </listitem> 161 </listitem>
159 </varlistentry> 162 </varlistentry>
160 <varlistentry> 163 <varlistentry>
164 <term><errorcode>EAGAIN</errorcode></term>
165 <listitem>
166 <para>Attempted to call <constant>VIDIOC_S_HW_FREQ_SEEK</constant>
167 with the filehandle in non-blocking mode.</para>
168 </listitem>
169 </varlistentry>
170 <varlistentry>
161 <term><errorcode>ENODATA</errorcode></term> 171 <term><errorcode>ENODATA</errorcode></term>
162 <listitem> 172 <listitem>
163 <para>The hardware seek found no channels.</para> 173 <para>The hardware seek found no channels.</para>
diff --git a/Documentation/DocBook/media/v4l/vidioc-streamon.xml b/Documentation/DocBook/media/v4l/vidioc-streamon.xml
index 81cca4569050..716ea15e54a1 100644
--- a/Documentation/DocBook/media/v4l/vidioc-streamon.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-streamon.xml
@@ -74,7 +74,12 @@ not transmitted yet. I/O returns to the same state as after calling
74stream type. This is the same as &v4l2-requestbuffers; 74stream type. This is the same as &v4l2-requestbuffers;
75<structfield>type</structfield>.</para> 75<structfield>type</structfield>.</para>
76 76
77 <para>Note applications can be preempted for unknown periods right 77 <para>If <constant>VIDIOC_STREAMON</constant> is called when streaming
78is already in progress, or if <constant>VIDIOC_STREAMOFF</constant> is called
79when streaming is already stopped, then the ioctl does nothing and 0 is
80returned.</para>
81
82 <para>Note that applications can be preempted for unknown periods right
78before or after the <constant>VIDIOC_STREAMON</constant> or 83before or after the <constant>VIDIOC_STREAMON</constant> or
79<constant>VIDIOC_STREAMOFF</constant> calls, there is no notion of 84<constant>VIDIOC_STREAMOFF</constant> calls, there is no notion of
80starting or stopping "now". Buffer timestamps can be used to 85starting or stopping "now". Buffer timestamps can be used to
diff --git a/Documentation/DocBook/media/v4l/vidioc-subdev-g-edid.xml b/Documentation/DocBook/media/v4l/vidioc-subdev-g-edid.xml
new file mode 100644
index 000000000000..bbd18f0e6ede
--- /dev/null
+++ b/Documentation/DocBook/media/v4l/vidioc-subdev-g-edid.xml
@@ -0,0 +1,152 @@
1<refentry id="vidioc-subdev-g-edid">
2 <refmeta>
3 <refentrytitle>ioctl VIDIOC_SUBDEV_G_EDID, VIDIOC_SUBDEV_S_EDID</refentrytitle>
4 &manvol;
5 </refmeta>
6
7 <refnamediv>
8 <refname>VIDIOC_SUBDEV_G_EDID</refname>
9 <refname>VIDIOC_SUBDEV_S_EDID</refname>
10 <refpurpose>Get or set the EDID of a video receiver/transmitter</refpurpose>
11 </refnamediv>
12
13 <refsynopsisdiv>
14 <funcsynopsis>
15 <funcprototype>
16 <funcdef>int <function>ioctl</function></funcdef>
17 <paramdef>int <parameter>fd</parameter></paramdef>
18 <paramdef>int <parameter>request</parameter></paramdef>
19 <paramdef>struct v4l2_subdev_edid *<parameter>argp</parameter></paramdef>
20 </funcprototype>
21 </funcsynopsis>
22 <funcsynopsis>
23 <funcprototype>
24 <funcdef>int <function>ioctl</function></funcdef>
25 <paramdef>int <parameter>fd</parameter></paramdef>
26 <paramdef>int <parameter>request</parameter></paramdef>
27 <paramdef>const struct v4l2_subdev_edid *<parameter>argp</parameter></paramdef>
28 </funcprototype>
29 </funcsynopsis>
30 </refsynopsisdiv>
31
32 <refsect1>
33 <title>Arguments</title>
34
35 <variablelist>
36 <varlistentry>
37 <term><parameter>fd</parameter></term>
38 <listitem>
39 <para>&fd;</para>
40 </listitem>
41 </varlistentry>
42 <varlistentry>
43 <term><parameter>request</parameter></term>
44 <listitem>
45 <para>VIDIOC_SUBDEV_G_EDID, VIDIOC_SUBDEV_S_EDID</para>
46 </listitem>
47 </varlistentry>
48 <varlistentry>
49 <term><parameter>argp</parameter></term>
50 <listitem>
51 <para></para>
52 </listitem>
53 </varlistentry>
54 </variablelist>
55 </refsect1>
56
57 <refsect1>
58 <title>Description</title>
59 <para>These ioctls can be used to get or set an EDID associated with an input pad
60 from a receiver or an output pad of a transmitter subdevice.</para>
61
62 <para>To get the EDID data the application has to fill in the <structfield>pad</structfield>,
63 <structfield>start_block</structfield>, <structfield>blocks</structfield> and <structfield>edid</structfield>
64 fields and call <constant>VIDIOC_SUBDEV_G_EDID</constant>. The current EDID from block
65 <structfield>start_block</structfield> and of size <structfield>blocks</structfield>
66 will be placed in the memory <structfield>edid</structfield> points to. The <structfield>edid</structfield>
67 pointer must point to memory at least <structfield>blocks</structfield>&nbsp;*&nbsp;128 bytes
68 large (the size of one block is 128 bytes).</para>
69
70 <para>If there are fewer blocks than specified, then the driver will set <structfield>blocks</structfield>
71 to the actual number of blocks. If there are no EDID blocks available at all, then the error code
72 ENODATA is set.</para>
73
74 <para>If blocks have to be retrieved from the sink, then this call will block until they
75 have been read.</para>
76
77 <para>To set the EDID blocks of a receiver the application has to fill in the <structfield>pad</structfield>,
78 <structfield>blocks</structfield> and <structfield>edid</structfield> fields and set
79 <structfield>start_block</structfield> to 0. It is not possible to set part of an EDID,
80 it is always all or nothing. Setting the EDID data is only valid for receivers as it makes
81 no sense for a transmitter.</para>
82
83 <para>The driver assumes that the full EDID is passed in. If there are more EDID blocks than
84 the hardware can handle then the EDID is not written, but instead the error code E2BIG is set
85 and <structfield>blocks</structfield> is set to the maximum that the hardware supports.
86 If <structfield>start_block</structfield> is any
87 value other than 0 then the error code EINVAL is set.</para>
88
89 <para>To disable an EDID you set <structfield>blocks</structfield> to 0. Depending on the
90 hardware this will drive the hotplug pin low and/or block the source from reading the EDID
91 data in some way. In any case, the end result is the same: the EDID is no longer available.
92 </para>
93
94 <table pgwide="1" frame="none" id="v4l2-subdev-edid">
95 <title>struct <structname>v4l2_subdev_edid</structname></title>
96 <tgroup cols="3">
97 &cs-str;
98 <tbody valign="top">
99 <row>
100 <entry>__u32</entry>
101 <entry><structfield>pad</structfield></entry>
102 <entry>Pad for which to get/set the EDID blocks.</entry>
103 </row>
104 <row>
105 <entry>__u32</entry>
106 <entry><structfield>start_block</structfield></entry>
107 <entry>Read the EDID from starting with this block. Must be 0 when setting
108 the EDID.</entry>
109 </row>
110 <row>
111 <entry>__u32</entry>
112 <entry><structfield>blocks</structfield></entry>
113 <entry>The number of blocks to get or set. Must be less or equal to 256 (the
114 maximum number of blocks as defined by the standard). When you set the EDID and
115 <structfield>blocks</structfield> is 0, then the EDID is disabled or erased.</entry>
116 </row>
117 <row>
118 <entry>__u8&nbsp;*</entry>
119 <entry><structfield>edid</structfield></entry>
120 <entry>Pointer to memory that contains the EDID. The minimum size is
121 <structfield>blocks</structfield>&nbsp;*&nbsp;128.</entry>
122 </row>
123 <row>
124 <entry>__u32</entry>
125 <entry><structfield>reserved</structfield>[5]</entry>
126 <entry>Reserved for future extensions. Applications and drivers must
127 set the array to zero.</entry>
128 </row>
129 </tbody>
130 </tgroup>
131 </table>
132 </refsect1>
133
134 <refsect1>
135 &return-value;
136
137 <variablelist>
138 <varlistentry>
139 <term><errorcode>ENODATA</errorcode></term>
140 <listitem>
141 <para>The EDID data is not available.</para>
142 </listitem>
143 </varlistentry>
144 <varlistentry>
145 <term><errorcode>E2BIG</errorcode></term>
146 <listitem>
147 <para>The EDID data you provided is more than the hardware can handle.</para>
148 </listitem>
149 </varlistentry>
150 </variablelist>
151 </refsect1>
152</refentry>
diff --git a/Documentation/DocBook/media/v4l/vidioc-subdev-g-selection.xml b/Documentation/DocBook/media/v4l/vidioc-subdev-g-selection.xml
index f33cc814a01d..1ba9e999af3f 100644
--- a/Documentation/DocBook/media/v4l/vidioc-subdev-g-selection.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-subdev-g-selection.xml
@@ -69,23 +69,22 @@
69 more information on how each selection target affects the image 69 more information on how each selection target affects the image
70 processing pipeline inside the subdevice.</para> 70 processing pipeline inside the subdevice.</para>
71 71
72 <section> 72 <refsect2>
73 <title>Types of selection targets</title> 73 <title>Types of selection targets</title>
74 74
75 <para>There are two types of selection targets: actual and bounds. The 75 <para>There are two types of selection targets: actual and bounds. The
76 actual targets are the targets which configure the hardware. The BOUNDS 76 actual targets are the targets which configure the hardware. The BOUNDS
77 target will return a rectangle that contain all possible actual 77 target will return a rectangle that contain all possible actual
78 rectangles.</para> 78 rectangles.</para>
79 </section> 79 </refsect2>
80 80
81 <section> 81 <refsect2>
82 <title>Discovering supported features</title> 82 <title>Discovering supported features</title>
83 83
84 <para>To discover which targets are supported, the user can 84 <para>To discover which targets are supported, the user can
85 perform <constant>VIDIOC_SUBDEV_G_SELECTION</constant> on them. 85 perform <constant>VIDIOC_SUBDEV_G_SELECTION</constant> on them.
86 Any unsupported target will return 86 Any unsupported target will return
87 <constant>EINVAL</constant>.</para> 87 <constant>EINVAL</constant>.</para>
88 </section>
89 88
90 <para>Selection targets and flags are documented in <xref 89 <para>Selection targets and flags are documented in <xref
91 linkend="v4l2-selections-common"/>.</para> 90 linkend="v4l2-selections-common"/>.</para>
@@ -132,6 +131,7 @@
132 </tbody> 131 </tbody>
133 </tgroup> 132 </tgroup>
134 </table> 133 </table>
134 </refsect2>
135 135
136 </refsect1> 136 </refsect1>
137 137