提交 a0f0dd57 编写于 作者: R Russell King

Merge branch 'fixes' into for-linus

Conflicts:
	arch/arm/kernel/smp.c

要显示的变更太多。

To preserve performance only 1000 of 1000+ files are displayed.
...@@ -12,11 +12,14 @@ Description: ...@@ -12,11 +12,14 @@ Description:
then closing the file. The new policy takes effect after then closing the file. The new policy takes effect after
the file ima/policy is closed. the file ima/policy is closed.
IMA appraisal, if configured, uses these file measurements
for local measurement appraisal.
rule format: action [condition ...] rule format: action [condition ...]
action: measure | dont_measure action: measure | dont_measure | appraise | dont_appraise | audit
condition:= base | lsm condition:= base | lsm
base: [[func=] [mask=] [fsmagic=] [uid=]] base: [[func=] [mask=] [fsmagic=] [uid=] [fowner]]
lsm: [[subj_user=] [subj_role=] [subj_type=] lsm: [[subj_user=] [subj_role=] [subj_type=]
[obj_user=] [obj_role=] [obj_type=]] [obj_user=] [obj_role=] [obj_type=]]
...@@ -24,36 +27,50 @@ Description: ...@@ -24,36 +27,50 @@ Description:
mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC] mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC]
fsmagic:= hex value fsmagic:= hex value
uid:= decimal value uid:= decimal value
fowner:=decimal value
lsm: are LSM specific lsm: are LSM specific
default policy: default policy:
# PROC_SUPER_MAGIC # PROC_SUPER_MAGIC
dont_measure fsmagic=0x9fa0 dont_measure fsmagic=0x9fa0
dont_appraise fsmagic=0x9fa0
# SYSFS_MAGIC # SYSFS_MAGIC
dont_measure fsmagic=0x62656572 dont_measure fsmagic=0x62656572
dont_appraise fsmagic=0x62656572
# DEBUGFS_MAGIC # DEBUGFS_MAGIC
dont_measure fsmagic=0x64626720 dont_measure fsmagic=0x64626720
dont_appraise fsmagic=0x64626720
# TMPFS_MAGIC # TMPFS_MAGIC
dont_measure fsmagic=0x01021994 dont_measure fsmagic=0x01021994
dont_appraise fsmagic=0x01021994
# RAMFS_MAGIC
dont_measure fsmagic=0x858458f6
dont_appraise fsmagic=0x858458f6
# SECURITYFS_MAGIC # SECURITYFS_MAGIC
dont_measure fsmagic=0x73636673 dont_measure fsmagic=0x73636673
dont_appraise fsmagic=0x73636673
measure func=BPRM_CHECK measure func=BPRM_CHECK
measure func=FILE_MMAP mask=MAY_EXEC measure func=FILE_MMAP mask=MAY_EXEC
measure func=FILE_CHECK mask=MAY_READ uid=0 measure func=FILE_CHECK mask=MAY_READ uid=0
appraise fowner=0
The default policy measures all executables in bprm_check, The default policy measures all executables in bprm_check,
all files mmapped executable in file_mmap, and all files all files mmapped executable in file_mmap, and all files
open for read by root in do_filp_open. open for read by root in do_filp_open. The default appraisal
policy appraises all files owned by root.
Examples of LSM specific definitions: Examples of LSM specific definitions:
SELinux: SELinux:
# SELINUX_MAGIC # SELINUX_MAGIC
dont_measure fsmagic=0xF97CFF8C dont_measure fsmagic=0xf97cff8c
dont_appraise fsmagic=0xf97cff8c
dont_measure obj_type=var_log_t dont_measure obj_type=var_log_t
dont_appraise obj_type=var_log_t
dont_measure obj_type=auditd_log_t dont_measure obj_type=auditd_log_t
dont_appraise obj_type=auditd_log_t
measure subj_user=system_u func=FILE_CHECK mask=MAY_READ measure subj_user=system_u func=FILE_CHECK mask=MAY_READ
measure subj_role=system_r func=FILE_CHECK mask=MAY_READ measure subj_role=system_r func=FILE_CHECK mask=MAY_READ
......
...@@ -25,6 +25,10 @@ client_id ...@@ -25,6 +25,10 @@ client_id
The ceph unique client id that was assigned for this specific session. The ceph unique client id that was assigned for this specific session.
features
A hexadecimal encoding of the feature bits for this image.
major major
The block device major number. The block device major number.
...@@ -33,6 +37,11 @@ name ...@@ -33,6 +37,11 @@ name
The name of the rbd image. The name of the rbd image.
image_id
The unique id for the rbd image. (For rbd image format 1
this is empty.)
pool pool
The name of the storage pool where this rbd image resides. The name of the storage pool where this rbd image resides.
...@@ -57,12 +66,6 @@ current_snap ...@@ -57,12 +66,6 @@ current_snap
The current snapshot for which the device is mapped. The current snapshot for which the device is mapped.
create_snap
Create a snapshot:
$ echo <snap-name> > /sys/bus/rbd/devices/<dev-id>/snap_create
snap_* snap_*
A directory per each snapshot A directory per each snapshot
...@@ -79,4 +82,7 @@ snap_size ...@@ -79,4 +82,7 @@ snap_size
The size of the image when this snapshot was taken. The size of the image when this snapshot was taken.
snap_features
A hexadecimal encoding of the feature bits for this snapshot.
...@@ -220,3 +220,10 @@ Description: ...@@ -220,3 +220,10 @@ Description:
If the device doesn't support LTM, the file will read "no". If the device doesn't support LTM, the file will read "no".
The file will be present for all speeds of USB devices, and will The file will be present for all speeds of USB devices, and will
always read "no" for USB 1.1 and USB 2.0 devices. always read "no" for USB 1.1 and USB 2.0 devices.
What: /sys/bus/usb/devices/.../(hub interface)/portX
Date: August 2012
Contact: Lan Tianyu <tianyu.lan@intel.com>
Description:
The /sys/bus/usb/devices/.../(hub interface)/portX
is usb port device's sysfs directory.
...@@ -13,7 +13,7 @@ Description: ...@@ -13,7 +13,7 @@ Description:
accessory cables have such capability. For example, accessory cables have such capability. For example,
the 30-pin port of Nuri board (/arch/arm/mach-exynos) the 30-pin port of Nuri board (/arch/arm/mach-exynos)
may have both HDMI and Charger attached, or analog audio, may have both HDMI and Charger attached, or analog audio,
video, and USB cables attached simulteneously. video, and USB cables attached simultaneously.
If there are cables mutually exclusive with each other, If there are cables mutually exclusive with each other,
such binary relations may be expressed with extcon_dev's such binary relations may be expressed with extcon_dev's
...@@ -35,7 +35,7 @@ Description: ...@@ -35,7 +35,7 @@ Description:
The /sys/class/extcon/.../state shows and stores the cable The /sys/class/extcon/.../state shows and stores the cable
attach/detach information of the corresponding extcon object. attach/detach information of the corresponding extcon object.
If the extcon object has an optional callback "show_state" If the extcon object has an optional callback "show_state"
defined, the showing function is overriden with the optional defined, the showing function is overridden with the optional
callback. callback.
If the default callback for showing function is used, the If the default callback for showing function is used, the
...@@ -46,19 +46,19 @@ Description: ...@@ -46,19 +46,19 @@ Description:
TA=1 TA=1
EAR_JACK=0 EAR_JACK=0
# #
In this example, the extcon device have USB_OTG and TA In this example, the extcon device has USB_OTG and TA
cables attached and HDMI and EAR_JACK cables detached. cables attached and HDMI and EAR_JACK cables detached.
In order to update the state of an extcon device, enter a hex In order to update the state of an extcon device, enter a hex
state number starting with 0x. state number starting with 0x:
echo 0xHEX > state # echo 0xHEX > state
This updates the whole state of the extcon dev. This updates the whole state of the extcon device.
Inputs of all the methods are required to meet the Inputs of all the methods are required to meet the
mutually_exclusive contidions if they exist. mutually_exclusive conditions if they exist.
It is recommended to use this "global" state interface if It is recommended to use this "global" state interface if
you need to enter the value atomically. The later state you need to set the value atomically. The later state
interface associated with each cable cannot update interface associated with each cable cannot update
multiple cable states of an extcon device simultaneously. multiple cable states of an extcon device simultaneously.
...@@ -73,7 +73,7 @@ What: /sys/class/extcon/.../cable.x/state ...@@ -73,7 +73,7 @@ What: /sys/class/extcon/.../cable.x/state
Date: February 2012 Date: February 2012
Contact: MyungJoo Ham <myungjoo.ham@samsung.com> Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
Description: Description:
The /sys/class/extcon/.../cable.x/name shows and stores the The /sys/class/extcon/.../cable.x/state shows and stores the
state of cable "x" (integer between 0 and 31) of an extcon state of cable "x" (integer between 0 and 31) of an extcon
device. The state value is either 0 (detached) or 1 device. The state value is either 0 (detached) or 1
(attached). (attached).
...@@ -83,8 +83,8 @@ Date: December 2011 ...@@ -83,8 +83,8 @@ Date: December 2011
Contact: MyungJoo Ham <myungjoo.ham@samsung.com> Contact: MyungJoo Ham <myungjoo.ham@samsung.com>
Description: Description:
Shows the relations of mutually exclusiveness. For example, Shows the relations of mutually exclusiveness. For example,
if the mutually_exclusive array of extcon_dev is if the mutually_exclusive array of extcon device is
{0x3, 0x5, 0xC, 0x0}, the, the output is: {0x3, 0x5, 0xC, 0x0}, then the output is:
# ls mutually_exclusive/ # ls mutually_exclusive/
0x3 0x3
0x5 0x5
......
...@@ -349,3 +349,24 @@ Description: ...@@ -349,3 +349,24 @@ Description:
This will be one of the same strings reported by This will be one of the same strings reported by
the "state" attribute. the "state" attribute.
What: /sys/class/regulator/.../bypass
Date: September 2012
KernelVersion: 3.7
Contact: Mark Brown <broonie@opensource.wolfsonmicro.com>
Description:
Some regulator directories will contain a field called
bypass. This indicates if the device is in bypass mode.
This will be one of the following strings:
'enabled'
'disabled'
'unknown'
'enabled' means the regulator is in bypass mode.
'disabled' means that the regulator is regulating.
'unknown' means software cannot determine the state, or
the reported state is invalid.
What: /sys/devices/.../firmware_node/
Date: September 2012
Contact: <>
Description:
The /sys/devices/.../firmware_node directory contains attributes
allowing the user space to check and modify some firmware
related properties of given device.
What: /sys/devices/.../firmware_node/description
Date: September 2012
Contact: Lance Ortiz <lance.ortiz@hp.com>
Description:
The /sys/devices/.../firmware/description attribute contains a string
that describes the device as provided by the _STR method in the ACPI
namespace. This attribute is read-only. If the device does not have
an _STR method associated with it in the ACPI namespace, this
attribute is not present.
...@@ -176,3 +176,14 @@ Description: Disable L3 cache indices ...@@ -176,3 +176,14 @@ Description: Disable L3 cache indices
All AMD processors with L3 caches provide this functionality. All AMD processors with L3 caches provide this functionality.
For details, see BKDGs at For details, see BKDGs at
http://developer.amd.com/documentation/guides/Pages/default.aspx http://developer.amd.com/documentation/guides/Pages/default.aspx
What: /sys/devices/system/cpu/cpufreq/boost
Date: August 2012
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
Description: Processor frequency boosting control
This switch controls the boost setting for the whole system.
Boosting allows the CPU and the firmware to run at a frequency
beyound it's nominal limit.
More details can be found in Documentation/cpu-freq/boost.txt
What: /sys/devices/pnp0/<bus-num>/ppi/
Date: August 2012
Kernel Version: 3.6
Contact: xiaoyan.zhang@intel.com
Description:
This folder includes the attributes related with PPI (Physical
Presence Interface). Only if TPM is supported by BIOS, this
folder makes sence. The folder path can be got by command
'find /sys/ -name 'pcrs''. For the detail information of PPI,
please refer to the PPI specification from
http://www.trustedcomputinggroup.org/
What: /sys/devices/pnp0/<bus-num>/ppi/version
Date: August 2012
Contact: xiaoyan.zhang@intel.com
Description:
This attribute shows the version of the PPI supported by the
platform.
This file is readonly.
What: /sys/devices/pnp0/<bus-num>/ppi/request
Date: August 2012
Contact: xiaoyan.zhang@intel.com
Description:
This attribute shows the request for an operation to be
executed in the pre-OS environment. It is the only input from
the OS to the pre-OS environment. The request should be an
integer value range from 1 to 160, and 0 means no request.
This file can be read and written.
What: /sys/devices/pnp0/00:<bus-num>/ppi/response
Date: August 2012
Contact: xiaoyan.zhang@intel.com
Description:
This attribute shows the response to the most recent operation
request it acted upon. The format is "<request> <response num>
: <response description>".
This file is readonly.
What: /sys/devices/pnp0/<bus-num>/ppi/transition_action
Date: August 2012
Contact: xiaoyan.zhang@intel.com
Description:
This attribute shows the platform-specific action that should
take place in order to transition to the BIOS for execution of
a requested operation. The format is "<action num>: <action
description>".
This file is readonly.
What: /sys/devices/pnp0/<bus-num>/ppi/tcg_operations
Date: August 2012
Contact: xiaoyan.zhang@intel.com
Description:
This attribute shows whether it is allowed to request an
operation to be executed in the pre-OS environment by the BIOS
for the requests defined by TCG, i.e. requests from 1 to 22.
The format is "<request> <status num>: <status description>".
This attribute is only supported by PPI version 1.2+.
This file is readonly.
What: /sys/devices/pnp0/<bus-num>/ppi/vs_operations
Date: August 2012
Contact: xiaoyan.zhang@intel.com
Description:
This attribute shows whether it is allowed to request an
operation to be executed in the pre-OS environment by the BIOS
for the verdor specific requests, i.e. requests from 128 to
255. The format is same with tcg_operations. This attribute
is also only supported by PPI version 1.2+.
This file is readonly.
WWhat: /sys/class/hidraw/hidraw*/device/oled*_img
Date: June 2012
Contact: linux-bluetooth@vger.kernel.org
Description:
The /sys/class/hidraw/hidraw*/device/oled*_img files control
OLED mocro displays on Intuos4 Wireless tablet. Accepted image
has to contain 256 bytes (64x32 px 1 bit colour). The format
is the same as PBM image 62x32px without header (64 bits per
horizontal line, 32 lines). An example of setting OLED No. 0:
dd bs=256 count=1 if=img_file of=[path to oled0_img]/oled0_img
The attribute is read only and no local copy of the image is
stored.
What: /sys/class/hidraw/hidraw*/device/speed What: /sys/class/hidraw/hidraw*/device/speed
Date: April 2010 Date: April 2010
Kernel Version: 2.6.35 Kernel Version: 2.6.35
......
...@@ -96,3 +96,16 @@ Contact: "Theodore Ts'o" <tytso@mit.edu> ...@@ -96,3 +96,16 @@ Contact: "Theodore Ts'o" <tytso@mit.edu>
Description: Description:
The maximum number of megabytes the writeback code will The maximum number of megabytes the writeback code will
try to write out before move on to another inode. try to write out before move on to another inode.
What: /sys/fs/ext4/<disk>/extent_max_zeroout_kb
Date: August 2012
Contact: "Theodore Ts'o" <tytso@mit.edu>
Description:
The maximum number of kilobytes which will be zeroed
out in preference to creating a new uninitialized
extent when manipulating an inode's extent tree. Note
that using a larger value will increase the
variability of time necessary to complete a random
write operation (since a 4k random write might turn
into a much larger write due to the zeroout
operation).
...@@ -19,7 +19,11 @@ Date: September 2010 ...@@ -19,7 +19,11 @@ Date: September 2010
Contact: Richard Cochran <richardcochran@gmail.com> Contact: Richard Cochran <richardcochran@gmail.com>
Description: Description:
This file contains the name of the PTP hardware clock This file contains the name of the PTP hardware clock
as a human readable string. as a human readable string. The purpose of this
attribute is to provide the user with a "friendly
name" and to help distinguish PHY based devices from
MAC based ones. The string does not necessarily have
to be any kind of unique id.
What: /sys/class/ptp/ptpN/max_adjustment What: /sys/class/ptp/ptpN/max_adjustment
Date: September 2010 Date: September 2010
......
...@@ -17,3 +17,12 @@ Description: ...@@ -17,3 +17,12 @@ Description:
device, like 'tty1'. device, like 'tty1'.
The file supports poll() to detect virtual The file supports poll() to detect virtual
console switches. console switches.
What: /sys/class/tty/ttyS0/uartclk
Date: Sep 2012
Contact: Tomas Hlavacek <tmshlvck@gmail.com>
Description:
Shows the current uartclk value associated with the
UART port in serial_core, that is bound to TTY like ttyS0.
uartclk = 16 * baud_base
...@@ -454,6 +454,16 @@ The preferred style for long (multi-line) comments is: ...@@ -454,6 +454,16 @@ The preferred style for long (multi-line) comments is:
* with beginning and ending almost-blank lines. * with beginning and ending almost-blank lines.
*/ */
For files in net/ and drivers/net/ the preferred style for long (multi-line)
comments is a little different.
/* The preferred comment style for files in net/ and drivers/net
* looks like this.
*
* It is nearly the same as the generally preferred comment style,
* but there is no initial almost-blank line.
*/
It's also important to comment data, whether they are basic types or derived It's also important to comment data, whether they are basic types or derived
types. To this end, use just one data declaration per line (no commas for types. To this end, use just one data declaration per line (no commas for
multiple data declarations). This leaves you room for a small comment on each multiple data declarations). This leaves you room for a small comment on each
......
此差异已折叠。
...@@ -300,7 +300,7 @@ $(MEDIA_OBJ_DIR)/media-entities.tmpl: $(MEDIA_OBJ_DIR)/v4l2.xml ...@@ -300,7 +300,7 @@ $(MEDIA_OBJ_DIR)/media-entities.tmpl: $(MEDIA_OBJ_DIR)/v4l2.xml
@( \ @( \
for ident in $(IOCTLS) ; do \ for ident in $(IOCTLS) ; do \
entity=`echo $$ident | tr _ -` ; \ entity=`echo $$ident | tr _ -` ; \
id=`grep "<refname>$$ident" $(MEDIA_OBJ_DIR)/vidioc-*.xml | sed -r s,"^.*/(.*).xml.*","\1",` ; \ id=`grep "<refname>$$ident" $(MEDIA_OBJ_DIR)/vidioc-*.xml $(MEDIA_OBJ_DIR)/media-ioc-*.xml | sed -r s,"^.*/(.*).xml.*","\1",` ; \
echo "<!ENTITY $$entity \"<link" \ echo "<!ENTITY $$entity \"<link" \
"linkend='$$id'><constant>$$ident</constant></link>\">" \ "linkend='$$id'><constant>$$ident</constant></link>\">" \
>>$@ ; \ >>$@ ; \
......
<title>DVB Audio Device</title> <title>DVB Audio Device</title>
<para>The DVB audio device controls the MPEG2 audio decoder of the DVB hardware. It <para>The DVB audio device controls the MPEG2 audio decoder of the DVB hardware. It
can be accessed through <emphasis role="tt">/dev/dvb/adapter0/audio0</emphasis>. Data types and and can be accessed through <emphasis role="tt">/dev/dvb/adapter0/audio0</emphasis>. Data types and and
ioctl definitions can be accessed by including <emphasis role="tt">linux/dvb/video.h</emphasis> in your ioctl definitions can be accessed by including <emphasis role="tt">linux/dvb/audio.h</emphasis> in your
application. application.
</para> </para>
<para>Please note that some DVB cards don&#8217;t have their own MPEG decoder, which results in <para>Please note that some DVB cards don&#8217;t have their own MPEG decoder, which results in
the omission of the audio and video device. the omission of the audio and video device.
</para> </para>
<para>
These ioctls were also used by V4L2 to control MPEG decoders implemented in V4L2. The use
of these ioctls for that purpose has been made obsolete and proper V4L2 ioctls or controls
have been created to replace that functionality.</para>
<section id="audio_data_types"> <section id="audio_data_types">
<title>Audio Data Types</title> <title>Audio Data Types</title>
...@@ -558,6 +562,8 @@ role="subsection"><title>AUDIO_SELECT_SOURCE</title> ...@@ -558,6 +562,8 @@ role="subsection"><title>AUDIO_SELECT_SOURCE</title>
role="subsection"><title>AUDIO_SET_MUTE</title> role="subsection"><title>AUDIO_SET_MUTE</title>
<para>DESCRIPTION <para>DESCRIPTION
</para> </para>
<para>This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2
&VIDIOC-DECODER-CMD; with the <constant>V4L2_DEC_CMD_START_MUTE_AUDIO</constant> flag instead.</para>
<informaltable><tgroup cols="1"><tbody><row><entry <informaltable><tgroup cols="1"><tbody><row><entry
align="char"> align="char">
<para>This ioctl call asks the audio device to mute the stream that is currently being <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> ...@@ -730,6 +736,8 @@ role="subsection"><title>AUDIO_SET_BYPASS_MODE</title>
role="subsection"><title>AUDIO_CHANNEL_SELECT</title> role="subsection"><title>AUDIO_CHANNEL_SELECT</title>
<para>DESCRIPTION <para>DESCRIPTION
</para> </para>
<para>This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2
<constant>V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK</constant> control instead.</para>
<informaltable><tgroup cols="1"><tbody><row><entry <informaltable><tgroup cols="1"><tbody><row><entry
align="char"> align="char">
<para>This ioctl call asks the Audio Device to select the requested channel if possible.</para> <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,6 +780,109 @@ role="subsection"><title>AUDIO_CHANNEL_SELECT</title>
</row></tbody></tgroup></informaltable> </row></tbody></tgroup></informaltable>
&return-value-dvb; &return-value-dvb;
</section><section id="AUDIO_BILINGUAL_CHANNEL_SELECT"
role="subsection"><title>AUDIO_BILINGUAL_CHANNEL_SELECT</title>
<para>DESCRIPTION
</para>
<para>This ioctl is obsolete. Do not use in new drivers. It has been replaced by
the V4L2 <constant>V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK</constant> control
for MPEG decoders controlled through V4L2.</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl call asks the Audio Device to select the requested channel for bilingual streams if possible.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(int fd, int request =
AUDIO_BILINGUAL_CHANNEL_SELECT, audio_channel_select_t);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals AUDIO_BILINGUAL_CHANNEL_SELECT for this
command.</para>
</entry>
</row><row><entry
align="char">
<para>audio_channel_select_t
ch</para>
</entry><entry
align="char">
<para>Select the output format of the audio (mono left/right,
stereo).</para>
</entry>
</row>
</tbody></tgroup></informaltable>
&return-value-dvb;
</section><section id="AUDIO_GET_PTS"
role="subsection"><title>AUDIO_GET_PTS</title>
<para>DESCRIPTION
</para>
<para>This ioctl is obsolete. Do not use in new drivers. If you need this functionality,
then please contact the linux-media mailing list (&v4l-ml;).</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl call asks the Audio Device to return the current PTS timestamp.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(int fd, int request =
AUDIO_GET_PTS, __u64 *pts);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals AUDIO_GET_PTS for this
command.</para>
</entry>
</row><row><entry
align="char">
<para>__u64 *pts
</para>
</entry><entry
align="char">
<para>Returns the 33-bit timestamp as defined in ITU T-REC-H.222.0 / ISO/IEC 13818-1.
</para>
<para>
The PTS should belong to the currently played
frame if possible, but may also be a value close to it
like the PTS of the last decoded frame or the last PTS
extracted by the PES parser.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section><section id="AUDIO_GET_STATUS" </section><section id="AUDIO_GET_STATUS"
role="subsection"><title>AUDIO_GET_STATUS</title> role="subsection"><title>AUDIO_GET_STATUS</title>
<para>DESCRIPTION <para>DESCRIPTION
......
...@@ -226,4 +226,357 @@ typedef struct ca_pid { ...@@ -226,4 +226,357 @@ typedef struct ca_pid {
</entry> </entry>
</row></tbody></tgroup></informaltable> </row></tbody></tgroup></informaltable>
</section> </section>
<section id="CA_RESET"
role="subsection"><title>CA_RESET</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = CA_RESET);
</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals CA_RESET for this command.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
<section id="CA_GET_CAP"
role="subsection"><title>CA_GET_CAP</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = CA_GET_CAP,
ca_caps_t *);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals CA_GET_CAP for this command.</para>
</entry>
</row><row><entry
align="char">
<para>ca_caps_t *
</para>
</entry><entry
align="char">
<para>Undocumented.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
<section id="CA_GET_SLOT_INFO"
role="subsection"><title>CA_GET_SLOT_INFO</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = CA_GET_SLOT_INFO,
ca_slot_info_t *);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals CA_GET_SLOT_INFO for this command.</para>
</entry>
</row><row><entry
align="char">
<para>ca_slot_info_t *
</para>
</entry><entry
align="char">
<para>Undocumented.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
<section id="CA_GET_DESCR_INFO"
role="subsection"><title>CA_GET_DESCR_INFO</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = CA_GET_DESCR_INFO,
ca_descr_info_t *);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals CA_GET_DESCR_INFO for this command.</para>
</entry>
</row><row><entry
align="char">
<para>ca_descr_info_t *
</para>
</entry><entry
align="char">
<para>Undocumented.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
<section id="CA_GET_MSG"
role="subsection"><title>CA_GET_MSG</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = CA_GET_MSG,
ca_msg_t *);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals CA_GET_MSG for this command.</para>
</entry>
</row><row><entry
align="char">
<para>ca_msg_t *
</para>
</entry><entry
align="char">
<para>Undocumented.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
<section id="CA_SEND_MSG"
role="subsection"><title>CA_SEND_MSG</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = CA_SEND_MSG,
ca_msg_t *);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals CA_SEND_MSG for this command.</para>
</entry>
</row><row><entry
align="char">
<para>ca_msg_t *
</para>
</entry><entry
align="char">
<para>Undocumented.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
<section id="CA_SET_DESCR"
role="subsection"><title>CA_SET_DESCR</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = CA_SET_DESCR,
ca_descr_t *);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals CA_SET_DESCR for this command.</para>
</entry>
</row><row><entry
align="char">
<para>ca_descr_t *
</para>
</entry><entry
align="char">
<para>Undocumented.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
<section id="CA_SET_PID"
role="subsection"><title>CA_SET_PID</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = CA_SET_PID,
ca_pid_t *);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals CA_SET_PID for this command.</para>
</entry>
</row><row><entry
align="char">
<para>ca_pid_t *
</para>
</entry><entry
align="char">
<para>Undocumented.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
</section> </section>
...@@ -899,4 +899,232 @@ typedef enum { ...@@ -899,4 +899,232 @@ typedef enum {
<para>Invalid stc number.</para> <para>Invalid stc number.</para>
</entry> </entry>
</row></tbody></tgroup></informaltable> </row></tbody></tgroup></informaltable>
</section></section> </section>
<section id="DMX_GET_PES_PIDS"
role="subsection"><title>DMX_GET_PES_PIDS</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = DMX_GET_PES_PIDS,
__u16[5]);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals DMX_GET_PES_PIDS for this command.</para>
</entry>
</row><row><entry
align="char">
<para>__u16[5]
</para>
</entry><entry
align="char">
<para>Undocumented.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
<section id="DMX_GET_CAPS"
role="subsection"><title>DMX_GET_CAPS</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = DMX_GET_CAPS,
dmx_caps_t *);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals DMX_GET_CAPS for this command.</para>
</entry>
</row><row><entry
align="char">
<para>dmx_caps_t *
</para>
</entry><entry
align="char">
<para>Undocumented.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
<section id="DMX_SET_SOURCE"
role="subsection"><title>DMX_SET_SOURCE</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = DMX_SET_SOURCE,
dmx_source_t *);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals DMX_SET_SOURCE for this command.</para>
</entry>
</row><row><entry
align="char">
<para>dmx_source_t *
</para>
</entry><entry
align="char">
<para>Undocumented.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
<section id="DMX_ADD_PID"
role="subsection"><title>DMX_ADD_PID</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = DMX_ADD_PID,
__u16 *);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals DMX_ADD_PID for this command.</para>
</entry>
</row><row><entry
align="char">
<para>__u16 *
</para>
</entry><entry
align="char">
<para>Undocumented.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
<section id="DMX_REMOVE_PID"
role="subsection"><title>DMX_REMOVE_PID</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = DMX_REMOVE_PID,
__u16 *);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals DMX_REMOVE_PID for this command.</para>
</entry>
</row><row><entry
align="char">
<para>__u16 *
</para>
</entry><entry
align="char">
<para>Undocumented.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
</section>
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<holder>Convergence GmbH</holder> <holder>Convergence GmbH</holder>
</copyright> </copyright>
<copyright> <copyright>
<year>2009-2011</year> <year>2009-2012</year>
<holder>Mauro Carvalho Chehab</holder> <holder>Mauro Carvalho Chehab</holder>
</copyright> </copyright>
...@@ -84,7 +84,7 @@ Added ISDB-T test originally written by Patrick Boettcher ...@@ -84,7 +84,7 @@ Added ISDB-T test originally written by Patrick Boettcher
<title>LINUX DVB API</title> <title>LINUX DVB API</title>
<subtitle>Version 5.2</subtitle> <subtitle>Version 5.8</subtitle>
<!-- ADD THE CHAPTERS HERE --> <!-- ADD THE CHAPTERS HERE -->
<chapter id="dvb_introdution"> <chapter id="dvb_introdution">
&sub-intro; &sub-intro;
......
...@@ -194,6 +194,7 @@ get/set up to 64 properties. The actual meaning of each property is described on ...@@ -194,6 +194,7 @@ get/set up to 64 properties. The actual meaning of each property is described on
APSK_16, APSK_16,
APSK_32, APSK_32,
DQPSK, DQPSK,
QAM_4_NR,
} fe_modulation_t; } fe_modulation_t;
</programlisting> </programlisting>
</section> </section>
...@@ -265,6 +266,7 @@ typedef enum fe_code_rate { ...@@ -265,6 +266,7 @@ typedef enum fe_code_rate {
FEC_AUTO, FEC_AUTO,
FEC_3_5, FEC_3_5,
FEC_9_10, FEC_9_10,
FEC_2_5,
} fe_code_rate_t; } fe_code_rate_t;
</programlisting> </programlisting>
<para>which correspond to error correction rates of 1/2, 2/3, etc., <para>which correspond to error correction rates of 1/2, 2/3, etc.,
...@@ -351,7 +353,7 @@ typedef enum fe_delivery_system { ...@@ -351,7 +353,7 @@ typedef enum fe_delivery_system {
SYS_ISDBC, SYS_ISDBC,
SYS_ATSC, SYS_ATSC,
SYS_ATSCMH, SYS_ATSCMH,
SYS_DMBTH, SYS_DTMB,
SYS_CMMB, SYS_CMMB,
SYS_DAB, SYS_DAB,
SYS_DVBT2, SYS_DVBT2,
...@@ -567,28 +569,33 @@ typedef enum fe_delivery_system { ...@@ -567,28 +569,33 @@ typedef enum fe_delivery_system {
<title><constant>DTV_ATSCMH_RS_FRAME_MODE</constant></title> <title><constant>DTV_ATSCMH_RS_FRAME_MODE</constant></title>
<para>RS frame mode.</para> <para>RS frame mode.</para>
<para>Possible values are:</para> <para>Possible values are:</para>
<para id="atscmh-rs-frame-mode">
<programlisting> <programlisting>
typedef enum atscmh_rs_frame_mode { typedef enum atscmh_rs_frame_mode {
ATSCMH_RSFRAME_PRI_ONLY = 0, ATSCMH_RSFRAME_PRI_ONLY = 0,
ATSCMH_RSFRAME_PRI_SEC = 1, ATSCMH_RSFRAME_PRI_SEC = 1,
} atscmh_rs_frame_mode_t; } atscmh_rs_frame_mode_t;
</programlisting> </programlisting>
</para>
</section> </section>
<section id="DTV-ATSCMH-RS-FRAME-ENSEMBLE"> <section id="DTV-ATSCMH-RS-FRAME-ENSEMBLE">
<title><constant>DTV_ATSCMH_RS_FRAME_ENSEMBLE</constant></title> <title><constant>DTV_ATSCMH_RS_FRAME_ENSEMBLE</constant></title>
<para>RS frame ensemble.</para> <para>RS frame ensemble.</para>
<para>Possible values are:</para> <para>Possible values are:</para>
<para id="atscmh-rs-frame-ensemble">
<programlisting> <programlisting>
typedef enum atscmh_rs_frame_ensemble { typedef enum atscmh_rs_frame_ensemble {
ATSCMH_RSFRAME_ENS_PRI = 0, ATSCMH_RSFRAME_ENS_PRI = 0,
ATSCMH_RSFRAME_ENS_SEC = 1, ATSCMH_RSFRAME_ENS_SEC = 1,
} atscmh_rs_frame_ensemble_t; } atscmh_rs_frame_ensemble_t;
</programlisting> </programlisting>
</para>
</section> </section>
<section id="DTV-ATSCMH-RS-CODE-MODE-PRI"> <section id="DTV-ATSCMH-RS-CODE-MODE-PRI">
<title><constant>DTV_ATSCMH_RS_CODE_MODE_PRI</constant></title> <title><constant>DTV_ATSCMH_RS_CODE_MODE_PRI</constant></title>
<para>RS code mode (primary).</para> <para>RS code mode (primary).</para>
<para>Possible values are:</para> <para>Possible values are:</para>
<para id="atscmh-rs-code-mode">
<programlisting> <programlisting>
typedef enum atscmh_rs_code_mode { typedef enum atscmh_rs_code_mode {
ATSCMH_RSCODE_211_187 = 0, ATSCMH_RSCODE_211_187 = 0,
...@@ -596,6 +603,7 @@ typedef enum atscmh_rs_code_mode { ...@@ -596,6 +603,7 @@ typedef enum atscmh_rs_code_mode {
ATSCMH_RSCODE_235_187 = 2, ATSCMH_RSCODE_235_187 = 2,
} atscmh_rs_code_mode_t; } atscmh_rs_code_mode_t;
</programlisting> </programlisting>
</para>
</section> </section>
<section id="DTV-ATSCMH-RS-CODE-MODE-SEC"> <section id="DTV-ATSCMH-RS-CODE-MODE-SEC">
<title><constant>DTV_ATSCMH_RS_CODE_MODE_SEC</constant></title> <title><constant>DTV_ATSCMH_RS_CODE_MODE_SEC</constant></title>
...@@ -613,23 +621,27 @@ typedef enum atscmh_rs_code_mode { ...@@ -613,23 +621,27 @@ typedef enum atscmh_rs_code_mode {
<title><constant>DTV_ATSCMH_SCCC_BLOCK_MODE</constant></title> <title><constant>DTV_ATSCMH_SCCC_BLOCK_MODE</constant></title>
<para>Series Concatenated Convolutional Code Block Mode.</para> <para>Series Concatenated Convolutional Code Block Mode.</para>
<para>Possible values are:</para> <para>Possible values are:</para>
<para id="atscmh-sccc-block-mode">
<programlisting> <programlisting>
typedef enum atscmh_sccc_block_mode { typedef enum atscmh_sccc_block_mode {
ATSCMH_SCCC_BLK_SEP = 0, ATSCMH_SCCC_BLK_SEP = 0,
ATSCMH_SCCC_BLK_COMB = 1, ATSCMH_SCCC_BLK_COMB = 1,
} atscmh_sccc_block_mode_t; } atscmh_sccc_block_mode_t;
</programlisting> </programlisting>
</para>
</section> </section>
<section id="DTV-ATSCMH-SCCC-CODE-MODE-A"> <section id="DTV-ATSCMH-SCCC-CODE-MODE-A">
<title><constant>DTV_ATSCMH_SCCC_CODE_MODE_A</constant></title> <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_A</constant></title>
<para>Series Concatenated Convolutional Code Rate.</para> <para>Series Concatenated Convolutional Code Rate.</para>
<para>Possible values are:</para> <para>Possible values are:</para>
<para id="atscmh-sccc-code-mode">
<programlisting> <programlisting>
typedef enum atscmh_sccc_code_mode { typedef enum atscmh_sccc_code_mode {
ATSCMH_SCCC_CODE_HLF = 0, ATSCMH_SCCC_CODE_HLF = 0,
ATSCMH_SCCC_CODE_QTR = 1, ATSCMH_SCCC_CODE_QTR = 1,
} atscmh_sccc_code_mode_t; } atscmh_sccc_code_mode_t;
</programlisting> </programlisting>
</para>
</section> </section>
<section id="DTV-ATSCMH-SCCC-CODE-MODE-B"> <section id="DTV-ATSCMH-SCCC-CODE-MODE-B">
<title><constant>DTV_ATSCMH_SCCC_CODE_MODE_B</constant></title> <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_B</constant></title>
...@@ -725,6 +737,9 @@ typedef enum fe_guard_interval { ...@@ -725,6 +737,9 @@ typedef enum fe_guard_interval {
GUARD_INTERVAL_1_128, GUARD_INTERVAL_1_128,
GUARD_INTERVAL_19_128, GUARD_INTERVAL_19_128,
GUARD_INTERVAL_19_256, GUARD_INTERVAL_19_256,
GUARD_INTERVAL_PN420,
GUARD_INTERVAL_PN595,
GUARD_INTERVAL_PN945,
} fe_guard_interval_t; } fe_guard_interval_t;
</programlisting> </programlisting>
...@@ -733,6 +748,7 @@ typedef enum fe_guard_interval { ...@@ -733,6 +748,7 @@ typedef enum fe_guard_interval {
try to find the correct guard interval (if capable) and will use TMCC to fill try to find the correct guard interval (if capable) and will use TMCC to fill
in the missing parameters.</para> in the missing parameters.</para>
<para>2) Intervals 1/128, 19/128 and 19/256 are used only for DVB-T2 at present</para> <para>2) Intervals 1/128, 19/128 and 19/256 are used only for DVB-T2 at present</para>
<para>3) DTMB specifies PN420, PN595 and PN945.</para>
</section> </section>
<section id="DTV-TRANSMISSION-MODE"> <section id="DTV-TRANSMISSION-MODE">
<title><constant>DTV_TRANSMISSION_MODE</constant></title> <title><constant>DTV_TRANSMISSION_MODE</constant></title>
...@@ -749,6 +765,8 @@ typedef enum fe_transmit_mode { ...@@ -749,6 +765,8 @@ typedef enum fe_transmit_mode {
TRANSMISSION_MODE_1K, TRANSMISSION_MODE_1K,
TRANSMISSION_MODE_16K, TRANSMISSION_MODE_16K,
TRANSMISSION_MODE_32K, TRANSMISSION_MODE_32K,
TRANSMISSION_MODE_C1,
TRANSMISSION_MODE_C3780,
} fe_transmit_mode_t; } fe_transmit_mode_t;
</programlisting> </programlisting>
<para>Notes:</para> <para>Notes:</para>
...@@ -760,6 +778,7 @@ typedef enum fe_transmit_mode { ...@@ -760,6 +778,7 @@ typedef enum fe_transmit_mode {
use TMCC to fill in the missing parameters.</para> use TMCC to fill in the missing parameters.</para>
<para>3) DVB-T specifies 2K and 8K as valid sizes.</para> <para>3) DVB-T specifies 2K and 8K as valid sizes.</para>
<para>4) DVB-T2 specifies 1K, 2K, 4K, 8K, 16K and 32K.</para> <para>4) DVB-T2 specifies 1K, 2K, 4K, 8K, 16K and 32K.</para>
<para>5) DTMB specifies C1 and C3780.</para>
</section> </section>
<section id="DTV-HIERARCHY"> <section id="DTV-HIERARCHY">
<title><constant>DTV_HIERARCHY</constant></title> <title><constant>DTV_HIERARCHY</constant></title>
...@@ -774,17 +793,28 @@ typedef enum fe_hierarchy { ...@@ -774,17 +793,28 @@ typedef enum fe_hierarchy {
} fe_hierarchy_t; } fe_hierarchy_t;
</programlisting> </programlisting>
</section> </section>
<section id="DTV-ISDBS-TS-ID"> <section id="DTV-STREAM-ID">
<title><constant>DTV_ISDBS_TS_ID</constant></title> <title><constant>DTV_STREAM_ID</constant></title>
<para>Currently unused.</para> <para>DVB-S2, DVB-T2 and ISDB-S support the transmission of several
streams on a single transport stream.
This property enables the DVB driver to handle substream filtering,
when supported by the hardware.
By default, substream filtering is disabled.
</para><para>
For DVB-S2 and DVB-T2, the valid substream id range is from 0 to 255.
</para><para>
For ISDB, the valid substream id range is from 1 to 65535.
</para><para>
To disable it, you should use the special macro NO_STREAM_ID_FILTER.
</para><para>
Note: any value outside the id range also disables filtering.
</para>
</section> </section>
<section id="DTV-DVBT2-PLP-ID"> <section id="DTV-DVBT2-PLP-ID-LEGACY">
<title><constant>DTV_DVBT2_PLP_ID</constant></title> <title><constant>DTV_DVBT2_PLP_ID_LEGACY</constant></title>
<para>DVB-T2 supports Physical Layer Pipes (PLP) to allow transmission of <para>Obsolete, replaced with DTV_STREAM_ID.</para>
many data types via a single multiplex. The API will soon support this
at which point this section will be expanded.</para>
</section> </section>
<section id="DTV_ENUM_DELSYS"> <section id="DTV-ENUM-DELSYS">
<title><constant>DTV_ENUM_DELSYS</constant></title> <title><constant>DTV_ENUM_DELSYS</constant></title>
<para>A Multi standard frontend needs to advertise the delivery systems provided. <para>A Multi standard frontend needs to advertise the delivery systems provided.
Applications need to enumerate the provided delivery systems, before using Applications need to enumerate the provided delivery systems, before using
...@@ -796,6 +826,29 @@ typedef enum fe_hierarchy { ...@@ -796,6 +826,29 @@ typedef enum fe_hierarchy {
FE_GET_INFO. In the case of a legacy frontend, the result is just the same FE_GET_INFO. In the case of a legacy frontend, the result is just the same
as with FE_GET_INFO, but in a more structured format </para> as with FE_GET_INFO, but in a more structured format </para>
</section> </section>
<section id="DTV-INTERLEAVING">
<title><constant>DTV_INTERLEAVING</constant></title>
<para id="fe-interleaving">Interleaving mode</para>
<programlisting>
enum fe_interleaving {
INTERLEAVING_NONE,
INTERLEAVING_AUTO,
INTERLEAVING_240,
INTERLEAVING_720,
};
</programlisting>
</section>
<section id="DTV-LNA">
<title><constant>DTV_LNA</constant></title>
<para>Low-noise amplifier.</para>
<para>Hardware might offer controllable LNA which can be set manually
using that parameter. Usually LNA could be found only from
terrestrial devices if at all.</para>
<para>Possible values: 0, 1, LNA_AUTO</para>
<para>0, LNA off</para>
<para>1, LNA on</para>
<para>use the special macro LNA_AUTO to set LNA auto</para>
</section>
</section> </section>
<section id="frontend-property-terrestrial-systems"> <section id="frontend-property-terrestrial-systems">
<title>Properties used on terrestrial delivery systems</title> <title>Properties used on terrestrial delivery systems</title>
...@@ -816,6 +869,7 @@ typedef enum fe_hierarchy { ...@@ -816,6 +869,7 @@ typedef enum fe_hierarchy {
<listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem> <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem>
<listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem> <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem>
<listitem><para><link linkend="DTV-HIERARCHY"><constant>DTV_HIERARCHY</constant></link></para></listitem> <listitem><para><link linkend="DTV-HIERARCHY"><constant>DTV_HIERARCHY</constant></link></para></listitem>
<listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem>
</itemizedlist> </itemizedlist>
</section> </section>
<section id="dvbt2-params"> <section id="dvbt2-params">
...@@ -838,7 +892,8 @@ typedef enum fe_hierarchy { ...@@ -838,7 +892,8 @@ typedef enum fe_hierarchy {
<listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem> <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem>
<listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem> <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem>
<listitem><para><link linkend="DTV-HIERARCHY"><constant>DTV_HIERARCHY</constant></link></para></listitem> <listitem><para><link linkend="DTV-HIERARCHY"><constant>DTV_HIERARCHY</constant></link></para></listitem>
<listitem><para><link linkend="DTV-DVBT2-PLP-ID"><constant>DTV_DVBT2_PLP_ID</constant></link></para></listitem> <listitem><para><link linkend="DTV-STREAM-ID"><constant>DTV_STREAM_ID</constant></link></para></listitem>
<listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem>
</itemizedlist> </itemizedlist>
</section> </section>
<section id="isdbt"> <section id="isdbt">
...@@ -925,13 +980,32 @@ typedef enum fe_hierarchy { ...@@ -925,13 +980,32 @@ typedef enum fe_hierarchy {
<listitem><para><link linkend="DTV-ATSCMH-PRC"><constant>DTV_ATSCMH_PRC</constant></link></para></listitem> <listitem><para><link linkend="DTV-ATSCMH-PRC"><constant>DTV_ATSCMH_PRC</constant></link></para></listitem>
<listitem><para><link linkend="DTV-ATSCMH-RS-FRAME-MODE"><constant>DTV_ATSCMH_RS_FRAME_MODE</constant></link></para></listitem> <listitem><para><link linkend="DTV-ATSCMH-RS-FRAME-MODE"><constant>DTV_ATSCMH_RS_FRAME_MODE</constant></link></para></listitem>
<listitem><para><link linkend="DTV-ATSCMH-RS-FRAME-ENSEMBLE"><constant>DTV_ATSCMH_RS_FRAME_ENSEMBLE</constant></link></para></listitem> <listitem><para><link linkend="DTV-ATSCMH-RS-FRAME-ENSEMBLE"><constant>DTV_ATSCMH_RS_FRAME_ENSEMBLE</constant></link></para></listitem>
<listitem><para><link linkend="DTV-ATSCMH-CODE-MODE-PRI"><constant>DTV_ATSCMH_CODE_MODE_PRI</constant></link></para></listitem> <listitem><para><link linkend="DTV-ATSCMH-RS-CODE-MODE-PRI"><constant>DTV_ATSCMH_RS_CODE_MODE_PRI</constant></link></para></listitem>
<listitem><para><link linkend="DTV-ATSCMH-CODE-MODE-SEC"><constant>DTV_ATSCMH_CODE_MODE_SEC</constant></link></para></listitem> <listitem><para><link linkend="DTV-ATSCMH-RS-CODE-MODE-SEC"><constant>DTV_ATSCMH_RS_CODE_MODE_SEC</constant></link></para></listitem>
<listitem><para><link linkend="DTV-ATSCMH-SCCC-BLOCK-MODE"><constant>DTV_ATSCMH_SCCC_BLOCK_MODE</constant></link></para></listitem> <listitem><para><link linkend="DTV-ATSCMH-SCCC-BLOCK-MODE"><constant>DTV_ATSCMH_SCCC_BLOCK_MODE</constant></link></para></listitem>
<listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE_MODE-A"><constant>DTV_ATSCMH_SCCC_CODE_MODE_A</constant></link></para></listitem> <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-A"><constant>DTV_ATSCMH_SCCC_CODE_MODE_A</constant></link></para></listitem>
<listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE_MODE-B"><constant>DTV_ATSCMH_SCCC_CODE_MODE_B</constant></link></para></listitem> <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-B"><constant>DTV_ATSCMH_SCCC_CODE_MODE_B</constant></link></para></listitem>
<listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE_MODE-C"><constant>DTV_ATSCMH_SCCC_CODE_MODE_C</constant></link></para></listitem> <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-C"><constant>DTV_ATSCMH_SCCC_CODE_MODE_C</constant></link></para></listitem>
<listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE_MODE-D"><constant>DTV_ATSCMH_SCCC_CODE_MODE_D</constant></link></para></listitem> <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-D"><constant>DTV_ATSCMH_SCCC_CODE_MODE_D</constant></link></para></listitem>
</itemizedlist>
</section>
<section id="dtmb-params">
<title>DTMB delivery system</title>
<para>The following parameters are valid for DTMB:</para>
<itemizedlist mark='opencircle'>
<listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem>
<listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem>
<listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem>
<listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem>
<listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
<listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
<listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem>
<listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
<listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem>
<listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem>
<listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem>
<listitem><para><link linkend="DTV-INTERLEAVING"><constant>DTV_INTERLEAVING</constant></link></para></listitem>
<listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem>
</itemizedlist> </itemizedlist>
</section> </section>
</section> </section>
...@@ -952,6 +1026,7 @@ typedef enum fe_hierarchy { ...@@ -952,6 +1026,7 @@ typedef enum fe_hierarchy {
<listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
<listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem> <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem>
<listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem> <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem>
<listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem>
</itemizedlist> </itemizedlist>
</section> </section>
<section id="dvbc-annex-b-params"> <section id="dvbc-annex-b-params">
...@@ -966,6 +1041,7 @@ typedef enum fe_hierarchy { ...@@ -966,6 +1041,7 @@ typedef enum fe_hierarchy {
<listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem> <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
<listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
<listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
<listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem>
</itemizedlist> </itemizedlist>
</section> </section>
</section> </section>
...@@ -999,6 +1075,7 @@ typedef enum fe_hierarchy { ...@@ -999,6 +1075,7 @@ typedef enum fe_hierarchy {
<listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
<listitem><para><link linkend="DTV-PILOT"><constant>DTV_PILOT</constant></link></para></listitem> <listitem><para><link linkend="DTV-PILOT"><constant>DTV_PILOT</constant></link></para></listitem>
<listitem><para><link linkend="DTV-ROLLOFF"><constant>DTV_ROLLOFF</constant></link></para></listitem> <listitem><para><link linkend="DTV-ROLLOFF"><constant>DTV_ROLLOFF</constant></link></para></listitem>
<listitem><para><link linkend="DTV-STREAM-ID"><constant>DTV_STREAM_ID</constant></link></para></listitem>
</itemizedlist> </itemizedlist>
</section> </section>
<section id="turbo-params"> <section id="turbo-params">
...@@ -1021,7 +1098,7 @@ typedef enum fe_hierarchy { ...@@ -1021,7 +1098,7 @@ typedef enum fe_hierarchy {
<listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem> <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem>
<listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem> <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem>
<listitem><para><link linkend="DTV-VOLTAGE"><constant>DTV_VOLTAGE</constant></link></para></listitem> <listitem><para><link linkend="DTV-VOLTAGE"><constant>DTV_VOLTAGE</constant></link></para></listitem>
<listitem><para><link linkend="DTV-ISDBS-TS-ID"><constant>DTV_ISDBS_TS_ID</constant></link></para></listitem> <listitem><para><link linkend="DTV-STREAM-ID"><constant>DTV_STREAM_ID</constant></link></para></listitem>
</itemizedlist> </itemizedlist>
</section> </section>
</section> </section>
......
...@@ -66,7 +66,7 @@ supported via the new <link linkend="FE_GET_SET_PROPERTY">FE_GET_PROPERTY/FE_GET ...@@ -66,7 +66,7 @@ supported via the new <link linkend="FE_GET_SET_PROPERTY">FE_GET_PROPERTY/FE_GET
<para>The usage of this field is deprecated, as it doesn't report all supported standards, and <para>The usage of this field is deprecated, as it doesn't report all supported standards, and
will provide an incomplete information for frontends that support multiple delivery systems. will provide an incomplete information for frontends that support multiple delivery systems.
Please use <link linkend="DTV_ENUM_DELSYS">DTV_ENUM_DELSYS</link> instead.</para> Please use <link linkend="DTV-ENUM-DELSYS">DTV_ENUM_DELSYS</link> instead.</para>
</section> </section>
<section id="fe-caps-t"> <section id="fe-caps-t">
...@@ -101,6 +101,7 @@ a specific frontend type.</para> ...@@ -101,6 +101,7 @@ a specific frontend type.</para>
FE_CAN_8VSB = 0x200000, FE_CAN_8VSB = 0x200000,
FE_CAN_16VSB = 0x400000, FE_CAN_16VSB = 0x400000,
FE_HAS_EXTENDED_CAPS = 0x800000, FE_HAS_EXTENDED_CAPS = 0x800000,
FE_CAN_MULTISTREAM = 0x4000000,
FE_CAN_TURBO_FEC = 0x8000000, FE_CAN_TURBO_FEC = 0x8000000,
FE_CAN_2G_MODULATION = 0x10000000, FE_CAN_2G_MODULATION = 0x10000000,
FE_NEEDS_BENDING = 0x20000000, FE_NEEDS_BENDING = 0x20000000,
...@@ -207,18 +208,44 @@ spec.</para> ...@@ -207,18 +208,44 @@ spec.</para>
<para>Several functions of the frontend device use the fe_status data type defined <para>Several functions of the frontend device use the fe_status data type defined
by</para> by</para>
<programlisting> <programlisting>
typedef enum fe_status { typedef enum fe_status {
FE_HAS_SIGNAL = 0x01, /&#x22C6; found something above the noise level &#x22C6;/ FE_HAS_SIGNAL = 0x01,
FE_HAS_CARRIER = 0x02, /&#x22C6; found a DVB signal &#x22C6;/ FE_HAS_CARRIER = 0x02,
FE_HAS_VITERBI = 0x04, /&#x22C6; FEC is stable &#x22C6;/ FE_HAS_VITERBI = 0x04,
FE_HAS_SYNC = 0x08, /&#x22C6; found sync bytes &#x22C6;/ FE_HAS_SYNC = 0x08,
FE_HAS_LOCK = 0x10, /&#x22C6; everything's working... &#x22C6;/ FE_HAS_LOCK = 0x10,
FE_TIMEDOUT = 0x20, /&#x22C6; no lock within the last ~2 seconds &#x22C6;/ FE_TIMEDOUT = 0x20,
FE_REINIT = 0x40 /&#x22C6; frontend was reinitialized, &#x22C6;/ FE_REINIT = 0x40,
} fe_status_t; /&#x22C6; application is recommned to reset &#x22C6;/ } fe_status_t;
</programlisting> </programlisting>
<para>to indicate the current state and/or state changes of the frontend hardware. <para>to indicate the current state and/or state changes of the frontend hardware:
</para> </para>
<informaltable><tgroup cols="2"><tbody>
<row>
<entry align="char">FE_HAS_SIGNAL</entry>
<entry align="char">The frontend has found something above the noise level</entry>
</row><row>
<entry align="char">FE_HAS_CARRIER</entry>
<entry align="char">The frontend has found a DVB signal</entry>
</row><row>
<entry align="char">FE_HAS_VITERBI</entry>
<entry align="char">The frontend FEC code is stable</entry>
</row><row>
<entry align="char">FE_HAS_SYNC</entry>
<entry align="char">Syncronization bytes was found</entry>
</row><row>
<entry align="char">FE_HAS_LOCK</entry>
<entry align="char">The DVB were locked and everything is working</entry>
</row><row>
<entry align="char">FE_TIMEDOUT</entry>
<entry align="char">no lock within the last about 2 seconds</entry>
</row><row>
<entry align="char">FE_REINIT</entry>
<entry align="char">The frontend was reinitialized, application is
recommended to reset DiSEqC, tone and parameters</entry>
</row>
</tbody></tgroup></informaltable>
</section> </section>
...@@ -238,7 +265,7 @@ and to add newer delivery systems.</para> ...@@ -238,7 +265,7 @@ and to add newer delivery systems.</para>
<constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> instead, in <constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> instead, in
order to be able to support the newer System Delivery like DVB-S2, DVB-T2, order to be able to support the newer System Delivery like DVB-S2, DVB-T2,
DVB-C2, ISDB, etc.</para> DVB-C2, ISDB, etc.</para>
<para>All kinds of parameters are combined as an union in the FrontendParameters structure:</para> <para>All kinds of parameters are combined as an union in the FrontendParameters structure:
<programlisting> <programlisting>
struct dvb_frontend_parameters { struct dvb_frontend_parameters {
uint32_t frequency; /&#x22C6; (absolute) frequency in Hz for QAM/OFDM &#x22C6;/ uint32_t frequency; /&#x22C6; (absolute) frequency in Hz for QAM/OFDM &#x22C6;/
...@@ -251,12 +278,13 @@ struct dvb_frontend_parameters { ...@@ -251,12 +278,13 @@ struct dvb_frontend_parameters {
struct dvb_vsb_parameters vsb; struct dvb_vsb_parameters vsb;
} u; } u;
}; };
</programlisting> </programlisting></para>
<para>In the case of QPSK frontends the <constant>frequency</constant> field specifies the intermediate <para>In the case of QPSK frontends the <constant>frequency</constant> field specifies the intermediate
frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of
the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and
OFDM frontends the <constant>frequency</constant> specifies the absolute frequency and is given in Hz. OFDM frontends the <constant>frequency</constant> specifies the absolute frequency and is given in Hz.
</para> </para>
<section id="dvb-qpsk-parameters"> <section id="dvb-qpsk-parameters">
<title>QPSK parameters</title> <title>QPSK parameters</title>
<para>For satellite QPSK frontends you have to use the <constant>dvb_qpsk_parameters</constant> structure:</para> <para>For satellite QPSK frontends you have to use the <constant>dvb_qpsk_parameters</constant> structure:</para>
...@@ -321,8 +349,8 @@ itself. ...@@ -321,8 +349,8 @@ itself.
<section id="fe-code-rate-t"> <section id="fe-code-rate-t">
<title>frontend code rate</title> <title>frontend code rate</title>
<para>The possible values for the <constant>fec_inner</constant> field used on <para>The possible values for the <constant>fec_inner</constant> field used on
<link refend="dvb-qpsk-parameters"><constant>struct dvb_qpsk_parameters</constant></link> and <link linkend="dvb-qpsk-parameters"><constant>struct dvb_qpsk_parameters</constant></link> and
<link refend="dvb-qam-parameters"><constant>struct dvb_qam_parameters</constant></link> are: <link linkend="dvb-qam-parameters"><constant>struct dvb_qam_parameters</constant></link> are:
</para> </para>
<programlisting> <programlisting>
typedef enum fe_code_rate { typedef enum fe_code_rate {
...@@ -347,9 +375,9 @@ detection. ...@@ -347,9 +375,9 @@ detection.
<section id="fe-modulation-t"> <section id="fe-modulation-t">
<title>frontend modulation type for QAM, OFDM and VSB</title> <title>frontend modulation type for QAM, OFDM and VSB</title>
<para>For cable and terrestrial frontends, e. g. for <para>For cable and terrestrial frontends, e. g. for
<link refend="dvb-qam-parameters"><constant>struct dvb_qpsk_parameters</constant></link>, <link linkend="dvb-qam-parameters"><constant>struct dvb_qpsk_parameters</constant></link>,
<link refend="dvb-ofdm-parameters"><constant>struct dvb_qam_parameters</constant></link> and <link linkend="dvb-ofdm-parameters"><constant>struct dvb_qam_parameters</constant></link> and
<link refend="dvb-vsb-parameters"><constant>struct dvb_qam_parameters</constant></link>, <link linkend="dvb-vsb-parameters"><constant>struct dvb_qam_parameters</constant></link>,
it needs to specify the quadrature modulation mode which can be one of the following: it needs to specify the quadrature modulation mode which can be one of the following:
</para> </para>
<programlisting> <programlisting>
...@@ -370,8 +398,8 @@ it needs to specify the quadrature modulation mode which can be one of the follo ...@@ -370,8 +398,8 @@ it needs to specify the quadrature modulation mode which can be one of the follo
} fe_modulation_t; } fe_modulation_t;
</programlisting> </programlisting>
</section> </section>
<para>Finally, there are several more parameters for OFDM: <section>
</para> <title>More OFDM parameters</title>
<section id="fe-transmit-mode-t"> <section id="fe-transmit-mode-t">
<title>Number of carriers per channel</title> <title>Number of carriers per channel</title>
<programlisting> <programlisting>
...@@ -427,6 +455,7 @@ typedef enum fe_hierarchy { ...@@ -427,6 +455,7 @@ typedef enum fe_hierarchy {
} fe_hierarchy_t; } fe_hierarchy_t;
</programlisting> </programlisting>
</section> </section>
</section>
</section> </section>
......
...@@ -205,7 +205,7 @@ a partial path like:</para> ...@@ -205,7 +205,7 @@ a partial path like:</para>
additional include file <emphasis additional include file <emphasis
role="tt">linux/dvb/version.h</emphasis> exists, which defines the role="tt">linux/dvb/version.h</emphasis> exists, which defines the
constant <emphasis role="tt">DVB_API_VERSION</emphasis>. This document constant <emphasis role="tt">DVB_API_VERSION</emphasis>. This document
describes <emphasis role="tt">DVB_API_VERSION 5.4</emphasis>. describes <emphasis role="tt">DVB_API_VERSION 5.8</emphasis>.
</para> </para>
</section> </section>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<para>The kernel demux API defines a driver-internal interface for registering low-level, <para>The kernel demux API defines a driver-internal interface for registering low-level,
hardware specific driver to a hardware independent demux layer. It is only of interest for hardware specific driver to a hardware independent demux layer. It is only of interest for
DVB device driver writers. The header file for this API is named <emphasis role="tt">demux.h</emphasis> and located in DVB device driver writers. The header file for this API is named <emphasis role="tt">demux.h</emphasis> and located in
<emphasis role="tt">drivers/media/dvb/dvb-core</emphasis>. <emphasis role="tt">drivers/media/dvb-core</emphasis>.
</para> </para>
<para>Maintainer note: This section must be reviewed. It is probably out of date. <para>Maintainer note: This section must be reviewed. It is probably out of date.
</para> </para>
......
...@@ -26,4 +26,131 @@ struct dvb_net_if { ...@@ -26,4 +26,131 @@ struct dvb_net_if {
<title>DVB net Function Calls</title> <title>DVB net Function Calls</title>
<para>To be written&#x2026; <para>To be written&#x2026;
</para> </para>
<section id="NET_ADD_IF"
role="subsection"><title>NET_ADD_IF</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = NET_ADD_IF,
struct dvb_net_if *if);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals NET_ADD_IF for this command.</para>
</entry>
</row><row><entry
align="char">
<para>struct dvb_net_if *if
</para>
</entry><entry
align="char">
<para>Undocumented.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
<section id="NET_REMOVE_IF"
role="subsection"><title>NET_REMOVE_IF</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = NET_REMOVE_IF);
</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals NET_REMOVE_IF for this command.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
<section id="NET_GET_IF"
role="subsection"><title>NET_GET_IF</title>
<para>DESCRIPTION
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>This ioctl is undocumented. Documentation is welcome.</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>SYNOPSIS
</para>
<informaltable><tgroup cols="1"><tbody><row><entry
align="char">
<para>int ioctl(fd, int request = NET_GET_IF,
struct dvb_net_if *if);</para>
</entry>
</row></tbody></tgroup></informaltable>
<para>PARAMETERS
</para>
<informaltable><tgroup cols="2"><tbody><row><entry
align="char">
<para>int fd</para>
</entry><entry
align="char">
<para>File descriptor returned by a previous call to open().</para>
</entry>
</row><row><entry
align="char">
<para>int request</para>
</entry><entry
align="char">
<para>Equals NET_GET_IF for this command.</para>
</entry>
</row><row><entry
align="char">
<para>struct dvb_net_if *if
</para>
</entry><entry
align="char">
<para>Undocumented.</para>
</entry>
</row></tbody></tgroup></informaltable>
&return-value-dvb;
</section>
</section> </section>
...@@ -178,23 +178,23 @@ Signal - NTSC for Studio Applications"</title> ...@@ -178,23 +178,23 @@ Signal - NTSC for Studio Applications"</title>
1125-Line High-Definition Production"</title> 1125-Line High-Definition Production"</title>
</biblioentry> </biblioentry>
<biblioentry id="en50067"> <biblioentry id="iec62106">
<abbrev>EN&nbsp;50067</abbrev> <abbrev>IEC&nbsp;62106</abbrev>
<authorgroup> <authorgroup>
<corpauthor>European Committee for Electrotechnical Standardization <corpauthor>International Electrotechnical Commission
(<ulink url="http://www.cenelec.eu">http://www.cenelec.eu</ulink>)</corpauthor> (<ulink url="http://www.iec.ch">http://www.iec.ch</ulink>)</corpauthor>
</authorgroup> </authorgroup>
<title>Specification of the radio data system (RDS) for VHF/FM sound broadcasting <title>Specification of the radio data system (RDS) for VHF/FM sound broadcasting
in the frequency range from 87,5 to 108,0 MHz</title> in the frequency range from 87,5 to 108,0 MHz</title>
</biblioentry> </biblioentry>
<biblioentry id="nrsc4"> <biblioentry id="nrsc4">
<abbrev>NRSC-4</abbrev> <abbrev>NRSC-4-B</abbrev>
<authorgroup> <authorgroup>
<corpauthor>National Radio Systems Committee <corpauthor>National Radio Systems Committee
(<ulink url="http://www.nrscstandards.org">http://www.nrscstandards.org</ulink>)</corpauthor> (<ulink url="http://www.nrscstandards.org">http://www.nrscstandards.org</ulink>)</corpauthor>
</authorgroup> </authorgroup>
<title>NRSC-4: United States RBDS Standard</title> <title>NRSC-4-B: United States RBDS Standard</title>
</biblioentry> </biblioentry>
<biblioentry id="iso12232"> <biblioentry id="iso12232">
...@@ -226,4 +226,44 @@ in the frequency range from 87,5 to 108,0 MHz</title> ...@@ -226,4 +226,44 @@ in the frequency range from 87,5 to 108,0 MHz</title>
<title>VESA and Industry Standards and Guidelines for Computer Display Monitor Timing (DMT)</title> <title>VESA and Industry Standards and Guidelines for Computer Display Monitor Timing (DMT)</title>
</biblioentry> </biblioentry>
<biblioentry id="vesaedid">
<abbrev>EDID</abbrev>
<authorgroup>
<corpauthor>Video Electronics Standards Association
(<ulink url="http://www.vesa.org">http://www.vesa.org</ulink>)</corpauthor>
</authorgroup>
<title>VESA Enhanced Extended Display Identification Data Standard</title>
<subtitle>Release A, Revision 2</subtitle>
</biblioentry>
<biblioentry id="hdcp">
<abbrev>HDCP</abbrev>
<authorgroup>
<corpauthor>Digital Content Protection LLC
(<ulink url="http://www.digital-cp.com">http://www.digital-cp.com</ulink>)</corpauthor>
</authorgroup>
<title>High-bandwidth Digital Content Protection System</title>
<subtitle>Revision 1.3</subtitle>
</biblioentry>
<biblioentry id="hdmi">
<abbrev>HDMI</abbrev>
<authorgroup>
<corpauthor>HDMI Licensing LLC
(<ulink url="http://www.hdmi.org">http://www.hdmi.org</ulink>)</corpauthor>
</authorgroup>
<title>High-Definition Multimedia Interface</title>
<subtitle>Specification Version 1.4a</subtitle>
</biblioentry>
<biblioentry id="dp">
<abbrev>DP</abbrev>
<authorgroup>
<corpauthor>Video Electronics Standards Association
(<ulink url="http://www.vesa.org">http://www.vesa.org</ulink>)</corpauthor>
</authorgroup>
<title>VESA DisplayPort Standard</title>
<subtitle>Version 1, Revision 2</subtitle>
</biblioentry>
</bibliography> </bibliography>
...@@ -564,7 +564,7 @@ automatically.</para> ...@@ -564,7 +564,7 @@ automatically.</para>
<para>To query and select the standard used by the current video <para>To query and select the standard used by the current video
input or output applications call the &VIDIOC-G-STD; and input or output applications call the &VIDIOC-G-STD; and
&VIDIOC-S-STD; ioctl, respectively. The <emphasis>received</emphasis> &VIDIOC-S-STD; ioctl, respectively. The <emphasis>received</emphasis>
standard 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> standard 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>
<para>An alternative to the current scheme is to use pointers <para>An alternative to the current scheme is to use pointers
to indices as arguments of <constant>VIDIOC_G_STD</constant> and to indices as arguments of <constant>VIDIOC_G_STD</constant> and
<constant>VIDIOC_S_STD</constant>, the &v4l2-input; and <constant>VIDIOC_S_STD</constant>, the &v4l2-input; and
...@@ -588,30 +588,28 @@ switch to a standard by &v4l2-std-id;.</para> ...@@ -588,30 +588,28 @@ switch to a standard by &v4l2-std-id;.</para>
</footnote> Drivers must implement all video standard ioctls </footnote> Drivers must implement all video standard ioctls
when the device has one or more video inputs or outputs.</para> when the device has one or more video inputs or outputs.</para>
<para>Special rules apply to USB cameras where the notion of video <para>Special rules apply to devices such as USB cameras where the notion of video
standards makes little sense. More generally any capture device, standards makes little sense. More generally for any capture or output device
output devices accordingly, which is <itemizedlist> which is: <itemizedlist>
<listitem> <listitem>
<para>incapable of capturing fields or frames at the nominal <para>incapable of capturing fields or frames at the nominal
rate of the video standard, or</para> rate of the video standard, or</para>
</listitem> </listitem>
<listitem> <listitem>
<para>where <link linkend="buffer">timestamps</link> refer <para>that does not support the video standard formats at all.</para>
to the instant the field or frame was received by the driver, not the
capture time, or</para>
</listitem>
<listitem>
<para>where <link linkend="buffer">sequence numbers</link>
refer to the frames received by the driver, not the captured
frames.</para>
</listitem> </listitem>
</itemizedlist> Here the driver shall set the </itemizedlist> Here the driver shall set the
<structfield>std</structfield> field of &v4l2-input; and &v4l2-output; <structfield>std</structfield> field of &v4l2-input; and &v4l2-output;
to zero, the <constant>VIDIOC_G_STD</constant>, to zero and the <constant>VIDIOC_G_STD</constant>,
<constant>VIDIOC_S_STD</constant>, <constant>VIDIOC_S_STD</constant>,
<constant>VIDIOC_QUERYSTD</constant> and <constant>VIDIOC_QUERYSTD</constant> and
<constant>VIDIOC_ENUMSTD</constant> ioctls shall return the <constant>VIDIOC_ENUMSTD</constant> ioctls shall return the
&EINVAL;.<footnote> &ENOTTY;.<footnote>
<para>See <xref linkend="buffer" /> for a rationale.</para>
<para>Applications can make use of the <xref linkend="input-capabilities" /> and
<xref linkend="output-capabilities"/> flags to determine whether the video standard ioctls
are available for the device.</para>
&ENOTTY;.
<para>See <xref linkend="buffer" /> for a rationale. Probably <para>See <xref linkend="buffer" /> for a rationale. Probably
even USB cameras follow some well known video standard. It might have even USB cameras follow some well known video standard. It might have
been better to explicitly indicate elsewhere if a device cannot live been better to explicitly indicate elsewhere if a device cannot live
...@@ -626,9 +624,9 @@ up to normal expectations, instead of this exception.</para> ...@@ -626,9 +624,9 @@ up to normal expectations, instead of this exception.</para>
&v4l2-standard; standard; &v4l2-standard; standard;
if (-1 == ioctl (fd, &VIDIOC-G-STD;, &amp;std_id)) { if (-1 == ioctl (fd, &VIDIOC-G-STD;, &amp;std_id)) {
/* Note when VIDIOC_ENUMSTD always returns EINVAL this /* Note when VIDIOC_ENUMSTD always returns ENOTTY this
is no video device or it falls under the USB exception, is no video device or it falls under the USB exception,
and VIDIOC_G_STD returning EINVAL is no error. */ and VIDIOC_G_STD returning ENOTTY is no error. */
perror ("VIDIOC_G_STD"); perror ("VIDIOC_G_STD");
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
......
...@@ -1476,7 +1476,7 @@ follows.<informaltable> ...@@ -1476,7 +1476,7 @@ follows.<informaltable>
</row> </row>
<row> <row>
<entry><constant>V4L2_BUF_TYPE_PRIVATE_BASE</constant></entry> <entry><constant>V4L2_BUF_TYPE_PRIVATE_BASE</constant></entry>
<entry><constant>V4L2_BUF_TYPE_PRIVATE</constant></entry> <entry><constant>V4L2_BUF_TYPE_PRIVATE</constant> (but this is deprecated)</entry>
</row> </row>
</tbody> </tbody>
</tgroup> </tgroup>
...@@ -2468,21 +2468,9 @@ that used it. It was originally scheduled for removal in 2.6.35. ...@@ -2468,21 +2468,9 @@ that used it. It was originally scheduled for removal in 2.6.35.
<structfield>reserved2</structfield> and removed <structfield>reserved2</structfield> and removed
<constant>V4L2_BUF_FLAG_INPUT</constant>.</para> <constant>V4L2_BUF_FLAG_INPUT</constant>.</para>
</listitem> </listitem>
</orderedlist>
</section>
<section>
<title>V4L2 in Linux 3.6</title>
<orderedlist>
<listitem> <listitem>
<para>Added V4L2_CAP_VIDEO_M2M and V4L2_CAP_VIDEO_M2M_MPLANE capabilities.</para> <para>Added V4L2_CAP_VIDEO_M2M and V4L2_CAP_VIDEO_M2M_MPLANE capabilities.</para>
</listitem> </listitem>
</orderedlist>
</section>
<section>
<title>V4L2 in Linux 3.6</title>
<orderedlist>
<listitem> <listitem>
<para>Added support for frequency band enumerations: &VIDIOC-ENUM-FREQ-BANDS;.</para> <para>Added support for frequency band enumerations: &VIDIOC-ENUM-FREQ-BANDS;.</para>
</listitem> </listitem>
...@@ -2567,29 +2555,6 @@ and may change in the future.</para> ...@@ -2567,29 +2555,6 @@ and may change in the future.</para>
<para>Video Output Overlay (OSD) Interface, <xref <para>Video Output Overlay (OSD) Interface, <xref
linkend="osd" />.</para> linkend="osd" />.</para>
</listitem> </listitem>
<listitem>
<para><constant>V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY</constant>,
&v4l2-buf-type;, <xref linkend="v4l2-buf-type" />.</para>
</listitem>
<listitem>
<para><constant>V4L2_CAP_VIDEO_OUTPUT_OVERLAY</constant>,
&VIDIOC-QUERYCAP; ioctl, <xref linkend="device-capabilities" />.</para>
</listitem>
<listitem>
<para>&VIDIOC-ENUM-FRAMESIZES; and
&VIDIOC-ENUM-FRAMEINTERVALS; ioctls.</para>
</listitem>
<listitem>
<para>&VIDIOC-G-ENC-INDEX; ioctl.</para>
</listitem>
<listitem>
<para>&VIDIOC-ENCODER-CMD; and &VIDIOC-TRY-ENCODER-CMD;
ioctls.</para>
</listitem>
<listitem>
<para>&VIDIOC-DECODER-CMD; and &VIDIOC-TRY-DECODER-CMD;
ioctls.</para>
</listitem>
<listitem> <listitem>
<para>&VIDIOC-DBG-G-REGISTER; and &VIDIOC-DBG-S-REGISTER; <para>&VIDIOC-DBG-G-REGISTER; and &VIDIOC-DBG-S-REGISTER;
ioctls.</para> ioctls.</para>
...@@ -2614,10 +2579,6 @@ ioctls.</para> ...@@ -2614,10 +2579,6 @@ ioctls.</para>
<para>Sub-device selection API: &VIDIOC-SUBDEV-G-SELECTION; <para>Sub-device selection API: &VIDIOC-SUBDEV-G-SELECTION;
and &VIDIOC-SUBDEV-S-SELECTION; ioctls.</para> and &VIDIOC-SUBDEV-S-SELECTION; ioctls.</para>
</listitem> </listitem>
<listitem>
<para><link linkend="v4l2-auto-focus-area"><constant>
V4L2_CID_AUTO_FOCUS_AREA</constant></link> control.</para>
</listitem>
<listitem> <listitem>
<para>Support for frequency band enumeration: &VIDIOC-ENUM-FREQ-BANDS; ioctl.</para> <para>Support for frequency band enumeration: &VIDIOC-ENUM-FREQ-BANDS; ioctl.</para>
</listitem> </listitem>
......
<title>Video Output Overlay Interface</title> <title>Video Output Overlay Interface</title>
<subtitle>Also known as On-Screen Display (OSD)</subtitle> <subtitle>Also known as On-Screen Display (OSD)</subtitle>
<note>
<title>Experimental</title>
<para>This is an <link linkend="experimental">experimental</link>
interface and may change in the future.</para>
</note>
<para>Some video output devices can overlay a framebuffer image onto <para>Some video output devices can overlay a framebuffer image onto
the outgoing video signal. Applications can set up such an overlay the outgoing video signal. Applications can set up such an overlay
using this interface, which borrows structures and ioctls of the <link using this interface, which borrows structures and ioctls of the <link
......
...@@ -6,7 +6,7 @@ information, on an inaudible audio subcarrier of a radio program. This ...@@ -6,7 +6,7 @@ information, on an inaudible audio subcarrier of a radio program. This
interface is aimed at devices capable of receiving and/or transmitting RDS interface is aimed at devices capable of receiving and/or transmitting RDS
information.</para> information.</para>
<para>For more information see the core RDS standard <xref linkend="en50067" /> <para>For more information see the core RDS standard <xref linkend="iec62106" />
and the RBDS standard <xref linkend="nrsc4" />.</para> and the RBDS standard <xref linkend="nrsc4" />.</para>
<para>Note that the RBDS standard as is used in the USA is almost identical <para>Note that the RBDS standard as is used in the USA is almost identical
......
...@@ -374,29 +374,29 @@ ...@@ -374,29 +374,29 @@
rectangle --- if it is supported by the hardware.</para> rectangle --- if it is supported by the hardware.</para>
<orderedlist> <orderedlist>
<listitem>Sink pad format. The user configures the sink pad <listitem><para>Sink pad format. The user configures the sink pad
format. This format defines the parameters of the image the format. This format defines the parameters of the image the
entity receives through the pad for further processing.</listitem> entity receives through the pad for further processing.</para></listitem>
<listitem>Sink pad actual crop selection. The sink pad crop <listitem><para>Sink pad actual crop selection. The sink pad crop
defines the crop performed to the sink pad format.</listitem> defines the crop performed to the sink pad format.</para></listitem>
<listitem>Sink pad actual compose selection. The size of the <listitem><para>Sink pad actual compose selection. The size of the
sink pad compose rectangle defines the scaling ratio compared sink pad compose rectangle defines the scaling ratio compared
to the size of the sink pad crop rectangle. The location of to the size of the sink pad crop rectangle. The location of
the compose rectangle specifies the location of the actual the compose rectangle specifies the location of the actual
sink compose rectangle in the sink compose bounds sink compose rectangle in the sink compose bounds
rectangle.</listitem> rectangle.</para></listitem>
<listitem>Source pad actual crop selection. Crop on the source <listitem><para>Source pad actual crop selection. Crop on the source
pad defines crop performed to the image in the sink compose pad defines crop performed to the image in the sink compose
bounds rectangle.</listitem> bounds rectangle.</para></listitem>
<listitem>Source pad format. The source pad format defines the <listitem><para>Source pad format. The source pad format defines the
output pixel format of the subdev, as well as the other output pixel format of the subdev, as well as the other
parameters with the exception of the image width and height. parameters with the exception of the image width and height.
Width and height are defined by the size of the source pad Width and height are defined by the size of the source pad
actual crop selection.</listitem> actual crop selection.</para></listitem>
</orderedlist> </orderedlist>
<para>Accessing any of the above rectangles not supported by the <para>Accessing any of the above rectangles not supported by the
......
...@@ -6,6 +6,15 @@ ...@@ -6,6 +6,15 @@
&cs-str; &cs-str;
<tbody valign="top"> <tbody valign="top">
<!-- Keep it ordered alphabetically --> <!-- Keep it ordered alphabetically -->
<row>
<entry>EAGAIN (aka EWOULDBLOCK)</entry>
<entry>The ioctl can't be handled because the device is in state where
it can't perform it. This could happen for example in case where
device is sleeping and ioctl is performed to query statistics.
It is also returned when the ioctl would need to wait
for an event, but the device was opened in non-blocking mode.
</entry>
</row>
<row> <row>
<entry>EBADF</entry> <entry>EBADF</entry>
<entry>The file descriptor is not a valid.</entry> <entry>The file descriptor is not a valid.</entry>
...@@ -50,22 +59,12 @@ ...@@ -50,22 +59,12 @@
that this request would overcommit the usb bandwidth reserved that this request would overcommit the usb bandwidth reserved
for periodic transfers (up to 80% of the USB bandwidth).</entry> for periodic transfers (up to 80% of the USB bandwidth).</entry>
</row> </row>
<row>
<entry>ENOSYS or EOPNOTSUPP</entry>
<entry>Function not available for this device (dvb API only. Will likely
be replaced anytime soon by ENOTTY).</entry>
</row>
<row> <row>
<entry>EPERM</entry> <entry>EPERM</entry>
<entry>Permission denied. Can be returned if the device needs write <entry>Permission denied. Can be returned if the device needs write
permission, or some special capabilities is needed permission, or some special capabilities is needed
(e. g. root)</entry> (e. g. root)</entry>
</row> </row>
<row>
<entry>EWOULDBLOCK</entry>
<entry>Operation would block. Used when the ioctl would need to wait
for an event, but the device was opened in non-blocking mode.</entry>
</row>
</tbody> </tbody>
</tgroup> </tgroup>
</table> </table>
......
...@@ -613,8 +613,8 @@ field is independent of the <structfield>timestamp</structfield> and ...@@ -613,8 +613,8 @@ field is independent of the <structfield>timestamp</structfield> and
<entry>__u32</entry> <entry>__u32</entry>
<entry><structfield>sequence</structfield></entry> <entry><structfield>sequence</structfield></entry>
<entry></entry> <entry></entry>
<entry>Set by the driver, counting the frames in the <entry>Set by the driver, counting the frames (not fields!) in
sequence.</entry> sequence. This field is set for both input and output devices.</entry>
</row> </row>
<row> <row>
<entry spanname="hspan"><para>In <link <entry spanname="hspan"><para>In <link
...@@ -685,18 +685,14 @@ memory, set by the application. See <xref linkend="userp" /> for details. ...@@ -685,18 +685,14 @@ memory, set by the application. See <xref linkend="userp" /> for details.
<entry>__u32</entry> <entry>__u32</entry>
<entry><structfield>reserved2</structfield></entry> <entry><structfield>reserved2</structfield></entry>
<entry></entry> <entry></entry>
<entry>A place holder for future extensions and custom <entry>A place holder for future extensions. Applications
(driver defined) buffer types
<constant>V4L2_BUF_TYPE_PRIVATE</constant> and higher. Applications
should set this to 0.</entry> should set this to 0.</entry>
</row> </row>
<row> <row>
<entry>__u32</entry> <entry>__u32</entry>
<entry><structfield>reserved</structfield></entry> <entry><structfield>reserved</structfield></entry>
<entry></entry> <entry></entry>
<entry>A place holder for future extensions and custom <entry>A place holder for future extensions. Applications
(driver defined) buffer types
<constant>V4L2_BUF_TYPE_PRIVATE</constant> and higher. Applications
should set this to 0.</entry> should set this to 0.</entry>
</row> </row>
</tbody> </tbody>
...@@ -827,14 +823,7 @@ should set this to 0.</entry> ...@@ -827,14 +823,7 @@ should set this to 0.</entry>
<entry><constant>V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY</constant></entry> <entry><constant>V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY</constant></entry>
<entry>8</entry> <entry>8</entry>
<entry>Buffer for video output overlay (OSD), see <xref <entry>Buffer for video output overlay (OSD), see <xref
linkend="osd" />. Status: <link linkend="osd" />.</entry>
linkend="experimental">Experimental</link>.</entry>
</row>
<row>
<entry><constant>V4L2_BUF_TYPE_PRIVATE</constant></entry>
<entry>0x80</entry>
<entry>This and higher values are reserved for custom
(driver defined) buffer types.</entry>
</row> </row>
</tbody> </tbody>
</tgroup> </tgroup>
......
...@@ -22,8 +22,7 @@ ...@@ -22,8 +22,7 @@
with 10 bits per colour compressed to 8 bits each, using DPCM with 10 bits per colour compressed to 8 bits each, using DPCM
compression. DPCM, differential pulse-code modulation, is lossy. compression. DPCM, differential pulse-code modulation, is lossy.
Each colour component consumes 8 bits of memory. In other respects Each colour component consumes 8 bits of memory. In other respects
this format is similar to <xref this format is similar to <xref linkend="pixfmt-srggb10" />.</para>
linkend="pixfmt-srggb10">.</xref></para>
</refsect1> </refsect1>
</refentry> </refentry>
此差异已折叠。
...@@ -708,6 +708,7 @@ information.</para> ...@@ -708,6 +708,7 @@ information.</para>
&sub-y41p; &sub-y41p;
&sub-yuv420; &sub-yuv420;
&sub-yuv420m; &sub-yuv420m;
&sub-yvu420m;
&sub-yuv410; &sub-yuv410;
&sub-yuv422p; &sub-yuv422p;
&sub-yuv411p; &sub-yuv411p;
......
...@@ -49,13 +49,6 @@ ...@@ -49,13 +49,6 @@
<refsect1> <refsect1>
<title>Description</title> <title>Description</title>
<note>
<title>Experimental</title>
<para>This is an <link linkend="experimental">experimental</link>
interface and may change in the future.</para>
</note>
<para>These ioctls control an audio/video (usually MPEG-) decoder. <para>These ioctls control an audio/video (usually MPEG-) decoder.
<constant>VIDIOC_DECODER_CMD</constant> sends a command to the <constant>VIDIOC_DECODER_CMD</constant> sends a command to the
decoder, <constant>VIDIOC_TRY_DECODER_CMD</constant> can be used to decoder, <constant>VIDIOC_TRY_DECODER_CMD</constant> can be used to
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册