mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-17 02:36:21 +00:00
ASoC: Fixes for v4.2
A lot of small fixes here, a few to the core: - Fix for binding DAPM stream widgets on devices with prefixes assigned to them - Minor fixes for the newly added topology interfaces - Locking and memory leak fixes for DAPM - Driver specific fixes -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJVsnNFAAoJECTWi3JdVIfQH9cH/1ddueDFikvXSCyntuJcHAwJ a7X5kCVdegMnaMK5fnAbTlJBpDIX/F1UBvsFQQ38eKWeneP44XnkXeh/32fGJzQO L730dqy0tkgQdWJkQg0yxaP5/k0BfhnXeRc3ATUG3LBgUBrWRYLTIvaM+G+H3Kf5 K88QL7cKmeY0Kt6+cms3nnBj9x5oFgbHIW7Y3K/pza+XPVecZ7N3/5gpV+VQDUXh Oz3cZOsC5h4+IpxkOrLXY7zgLvrt/HfRTO2QF/3Ntub81anAk190pVAquM+r/CTn tQ3sPNGLglQ4VRXNP6yBKJOp5CUTBLt5XWlJ+Kg9p2OiiuOPla4wkhuGDS5AM64= =nJJl -----END PGP SIGNATURE----- Merge tag 'asoc-fix-v4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v4.2 A lot of small fixes here, a few to the core: - Fix for binding DAPM stream widgets on devices with prefixes assigned to them - Minor fixes for the newly added topology interfaces - Locking and memory leak fixes for DAPM - Driver specific fixes
This commit is contained in:
commit
43cbf02e7a
8
.mailmap
8
.mailmap
@ -84,6 +84,7 @@ Mayuresh Janorkar <mayur@ti.com>
|
||||
Michael Buesch <m@bues.ch>
|
||||
Michel Dänzer <michel@tungstengraphics.com>
|
||||
Mitesh shah <mshah@teja.com>
|
||||
Mohit Kumar <mohit.kumar@st.com> <mohit.kumar.dhaka@gmail.com>
|
||||
Morten Welinder <terra@gnome.org>
|
||||
Morten Welinder <welinder@anemone.rentec.com>
|
||||
Morten Welinder <welinder@darter.rentec.com>
|
||||
@ -95,10 +96,12 @@ Patrick Mochel <mochel@digitalimplant.org>
|
||||
Peter A Jonsson <pj@ludd.ltu.se>
|
||||
Peter Oruba <peter@oruba.de>
|
||||
Peter Oruba <peter.oruba@amd.com>
|
||||
Pratyush Anand <pratyush.anand@gmail.com> <pratyush.anand@st.com>
|
||||
Praveen BP <praveenbp@ti.com>
|
||||
Rajesh Shah <rajesh.shah@intel.com>
|
||||
Ralf Baechle <ralf@linux-mips.org>
|
||||
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
||||
Randy Dunlap <rdunlap@infradead.org> <rdunlap@xenotime.net>
|
||||
Rémi Denis-Courmont <rdenis@simphalempin.com>
|
||||
Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
|
||||
Rudolf Marek <R.Marek@sh.cvut.cz>
|
||||
@ -113,6 +116,7 @@ Shiraz Hashim <shiraz.linux.kernel@gmail.com> <shiraz.hashim@st.com>
|
||||
Simon Kelley <simon@thekelleys.org.uk>
|
||||
Stéphane Witzmann <stephane.witzmann@ubpmes.univ-bpclermont.fr>
|
||||
Stephen Hemminger <shemminger@osdl.org>
|
||||
Sudeep Holla <sudeep.holla@arm.com> Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
|
||||
Sumit Semwal <sumit.semwal@ti.com>
|
||||
Tejun Heo <htejun@gmail.com>
|
||||
Thomas Graf <tgraf@suug.ch>
|
||||
@ -122,7 +126,9 @@ Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
|
||||
Uwe Kleine-König <ukl@pengutronix.de>
|
||||
Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
|
||||
Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
|
||||
Viresh Kumar <viresh.linux@gmail.com> <viresh.kumar@st.com>
|
||||
Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>
|
||||
Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>
|
||||
Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
|
||||
Takashi YOSHII <takashi.yoshii.zj@renesas.com>
|
||||
Yusuke Goda <goda.yusuke@renesas.com>
|
||||
Gustavo Padovan <gustavo@las.ic.unicamp.br>
|
||||
|
9
CREDITS
9
CREDITS
@ -2740,6 +2740,10 @@ S: C/ Mieses 20, 9-B
|
||||
S: Valladolid 47009
|
||||
S: Spain
|
||||
|
||||
N: Jens Osterkamp
|
||||
E: jens@de.ibm.com
|
||||
D: Maintainer of Spidernet network driver for Cell
|
||||
|
||||
N: Gadi Oxman
|
||||
E: gadio@netvision.net.il
|
||||
D: Original author and maintainer of IDE/ATAPI floppy/tape drivers
|
||||
@ -3219,11 +3223,6 @@ N: Dipankar Sarma
|
||||
E: dipankar@in.ibm.com
|
||||
D: RCU
|
||||
|
||||
N: Yoshinori Sato
|
||||
E: ysato@users.sourceforge.jp
|
||||
D: uClinux for Renesas H8/300 (H8300)
|
||||
D: http://uclinux-h8.sourceforge.jp/
|
||||
|
||||
N: Hannu Savolainen
|
||||
E: hannu@opensound.com
|
||||
D: Maintainer of the sound drivers until 2.1.x days.
|
||||
|
11
Documentation/ABI/stable/sysfs-bus-w1
Normal file
11
Documentation/ABI/stable/sysfs-bus-w1
Normal file
@ -0,0 +1,11 @@
|
||||
What: /sys/bus/w1/devices/.../w1_master_timeout_us
|
||||
Date: April 2015
|
||||
Contact: Dmitry Khromov <dk@icelogic.net>
|
||||
Description: Bus scanning interval, microseconds component.
|
||||
Some of 1-Wire devices commonly associated with physical access
|
||||
control systems are attached/generate presence for as short as
|
||||
100 ms - hence the tens-to-hundreds milliseconds scan intervals
|
||||
are required.
|
||||
see Documentation/w1/w1.generic for detailed information.
|
||||
Users: any user space application which wants to know bus scanning
|
||||
interval
|
6
Documentation/ABI/stable/sysfs-driver-w1_ds28ea00
Normal file
6
Documentation/ABI/stable/sysfs-driver-w1_ds28ea00
Normal file
@ -0,0 +1,6 @@
|
||||
What: /sys/bus/w1/devices/.../w1_seq
|
||||
Date: Apr 2015
|
||||
Contact: Matt Campbell <mattrcampbell@gmail.com>
|
||||
Description: Support for the DS28EA00 chain sequence function
|
||||
see Documentation/w1/slaves/w1_therm for detailed information
|
||||
Users: any user space application which wants to communicate with DS28EA00
|
@ -1,7 +1,7 @@
|
||||
What: /config/pcie-gadget
|
||||
Date: Feb 2011
|
||||
KernelVersion: 2.6.37
|
||||
Contact: Pratyush Anand <pratyush.anand@st.com>
|
||||
Contact: Pratyush Anand <pratyush.anand@gmail.com>
|
||||
Description:
|
||||
|
||||
Interface is used to configure selected dual mode PCIe controller
|
||||
|
@ -98,4 +98,13 @@ Description: The /dev/kmsg character device node provides userspace access
|
||||
logic is used internally when messages are printed to the
|
||||
console, /proc/kmsg or the syslog() syscall.
|
||||
|
||||
By default, kernel tries to avoid fragments by concatenating
|
||||
when it can and fragments are rare; however, when extended
|
||||
console support is enabled, the in-kernel concatenation is
|
||||
disabled and /dev/kmsg output will contain more fragments. If
|
||||
the log consumer performs concatenation, the end result
|
||||
should be the same. In the future, the in-kernel concatenation
|
||||
may be removed entirely and /dev/kmsg users are recommended to
|
||||
implement fragment handling.
|
||||
|
||||
Users: dmesg(1), userspace kernel log consumers
|
||||
|
@ -20,17 +20,19 @@ Description:
|
||||
action: measure | dont_measure | appraise | dont_appraise | audit
|
||||
condition:= base | lsm [option]
|
||||
base: [[func=] [mask=] [fsmagic=] [fsuuid=] [uid=]
|
||||
[fowner]]
|
||||
[euid=] [fowner=]]
|
||||
lsm: [[subj_user=] [subj_role=] [subj_type=]
|
||||
[obj_user=] [obj_role=] [obj_type=]]
|
||||
option: [[appraise_type=]] [permit_directio]
|
||||
|
||||
base: func:= [BPRM_CHECK][MMAP_CHECK][FILE_CHECK][MODULE_CHECK]
|
||||
[FIRMWARE_CHECK]
|
||||
mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC]
|
||||
mask:= [[^]MAY_READ] [[^]MAY_WRITE] [[^]MAY_APPEND]
|
||||
[[^]MAY_EXEC]
|
||||
fsmagic:= hex value
|
||||
fsuuid:= file system UUID (e.g 8bcbe394-4f13-4144-be8e-5aa9ea2ce2f6)
|
||||
uid:= decimal value
|
||||
euid:= decimal value
|
||||
fowner:=decimal value
|
||||
lsm: are LSM specific
|
||||
option: appraise_type:= [imasig]
|
||||
@ -49,11 +51,25 @@ Description:
|
||||
dont_measure fsmagic=0x01021994
|
||||
dont_appraise fsmagic=0x01021994
|
||||
# RAMFS_MAGIC
|
||||
dont_measure fsmagic=0x858458f6
|
||||
dont_appraise fsmagic=0x858458f6
|
||||
# DEVPTS_SUPER_MAGIC
|
||||
dont_measure fsmagic=0x1cd1
|
||||
dont_appraise fsmagic=0x1cd1
|
||||
# BINFMTFS_MAGIC
|
||||
dont_measure fsmagic=0x42494e4d
|
||||
dont_appraise fsmagic=0x42494e4d
|
||||
# SECURITYFS_MAGIC
|
||||
dont_measure fsmagic=0x73636673
|
||||
dont_appraise fsmagic=0x73636673
|
||||
# SELINUX_MAGIC
|
||||
dont_measure fsmagic=0xf97cff8c
|
||||
dont_appraise fsmagic=0xf97cff8c
|
||||
# CGROUP_SUPER_MAGIC
|
||||
dont_measure fsmagic=0x27e0eb
|
||||
dont_appraise fsmagic=0x27e0eb
|
||||
# NSFS_MAGIC
|
||||
dont_measure fsmagic=0x6e736673
|
||||
dont_appraise fsmagic=0x6e736673
|
||||
|
||||
measure func=BPRM_CHECK
|
||||
measure func=FILE_MMAP mask=MAY_EXEC
|
||||
@ -70,10 +86,6 @@ Description:
|
||||
Examples of LSM specific definitions:
|
||||
|
||||
SELinux:
|
||||
# SELINUX_MAGIC
|
||||
dont_measure fsmagic=0xf97cff8c
|
||||
dont_appraise fsmagic=0xf97cff8c
|
||||
|
||||
dont_measure obj_type=var_log_t
|
||||
dont_appraise obj_type=var_log_t
|
||||
dont_measure obj_type=auditd_log_t
|
||||
|
@ -90,6 +90,17 @@ gscr
|
||||
130: SATA_PMP_GSCR_SII_GPIO
|
||||
Only valid if the device is a PM.
|
||||
|
||||
trim
|
||||
|
||||
Shows the DSM TRIM mode currently used by the device. Valid
|
||||
values are:
|
||||
unsupported: Drive does not support DSM TRIM
|
||||
unqueued: Drive supports unqueued DSM TRIM only
|
||||
queued: Drive supports queued DSM TRIM
|
||||
forced_unqueued: Drive's queued DSM support is known to be
|
||||
buggy and only unqueued TRIM commands
|
||||
are sent
|
||||
|
||||
spdn_cnt
|
||||
|
||||
Number of time libata decided to lower the speed of link due to errors.
|
||||
|
450
Documentation/ABI/testing/sysfs-bus-coresight-devices-etm4x
Normal file
450
Documentation/ABI/testing/sysfs-bus-coresight-devices-etm4x
Normal file
@ -0,0 +1,450 @@
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/enable_source
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Enable/disable tracing on this specific trace entiry.
|
||||
Enabling a source implies the source has been configured
|
||||
properly and a sink has been identidifed for it. The path
|
||||
of coresight components linking the source to the sink is
|
||||
configured and managed automatically by the coresight framework.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/cpu
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) The CPU this tracing entity is associated with.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/nr_pe_cmp
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Indicates the number of PE comparator inputs that are
|
||||
available for tracing.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/nr_addr_cmp
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Indicates the number of address comparator pairs that are
|
||||
available for tracing.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/nr_cntr
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Indicates the number of counters that are available for
|
||||
tracing.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/nr_ext_inp
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Indicates how many external inputs are implemented.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/numcidc
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Indicates the number of Context ID comparators that are
|
||||
available for tracing.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/numvmidc
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Indicates the number of VMID comparators that are available
|
||||
for tracing.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/nrseqstate
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Indicates the number of sequencer states that are
|
||||
implemented.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/nr_resource
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Indicates the number of resource selection pairs that are
|
||||
available for tracing.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/nr_ss_cmp
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Indicates the number of single-shot comparator controls that
|
||||
are available for tracing.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/reset
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (W) Cancels all configuration on a trace unit and set it back
|
||||
to its boot configuration.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/mode
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Controls various modes supported by this ETM, for example
|
||||
P0 instruction tracing, branch broadcast, cycle counting and
|
||||
context ID tracing.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/pe
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Controls which PE to trace.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/event
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Controls the tracing of arbitrary events from bank 0 to 3.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/event_instren
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Controls the behavior of the events in bank 0 to 3.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/event_ts
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Controls the insertion of global timestamps in the trace
|
||||
streams.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/syncfreq
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Controls how often trace synchronization requests occur.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/cyc_threshold
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Sets the threshold value for cycle counting.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/bb_ctrl
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Controls which regions in the memory map are enabled to
|
||||
use branch broadcasting.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/event_vinst
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Controls instruction trace filtering.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/s_exlevel_vinst
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) In Secure state, each bit controls whether instruction
|
||||
tracing is enabled for the corresponding exception level.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/ns_exlevel_vinst
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) In non-secure state, each bit controls whether instruction
|
||||
tracing is enabled for the corresponding exception level.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/addr_idx
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Select which address comparator or pair (of comparators) to
|
||||
work with.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/addr_instdatatype
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Controls what type of comparison the trace unit performs.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/addr_single
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Used to setup single address comparator values.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/addr_range
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Used to setup address range comparator values.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/seq_idx
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Select which sequensor.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/seq_state
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Use this to set, or read, the sequencer state.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/seq_event
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Moves the sequencer state to a specific state.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/seq_reset_event
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Moves the sequencer to state 0 when a programmed event
|
||||
occurs.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/cntr_idx
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Select which counter unit to work with.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/cntrldvr
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) This sets or returns the reload count value of the
|
||||
specific counter.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/cntr_val
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) This sets or returns the current count value of the
|
||||
specific counter.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/cntr_ctrl
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Controls the operation of the selected counter.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/res_idx
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Select which resource selection unit to work with.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/res_ctrl
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Controls the selection of the resources in the trace unit.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/ctxid_idx
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Select which context ID comparator to work with.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/ctxid_val
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Get/Set the context ID comparator value to trigger on.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/ctxid_masks
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Mask for all 8 context ID comparator value
|
||||
registers (if implemented).
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/vmid_idx
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Select which virtual machine ID comparator to work with.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/vmid_val
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Get/Set the virtual machine ID comparator value to
|
||||
trigger on.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/vmid_masks
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Mask for all 8 virtual machine ID comparator value
|
||||
registers (if implemented).
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcoslsr
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Print the content of the OS Lock Status Register (0x304).
|
||||
The value it taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcpdcr
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Print the content of the Power Down Control Register
|
||||
(0x310). The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcpdsr
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Print the content of the Power Down Status Register
|
||||
(0x314). The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trclsr
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Print the content of the SW Lock Status Register
|
||||
(0xFB4). The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcauthstatus
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Print the content of the Authentication Status Register
|
||||
(0xFB8). The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcdevid
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Print the content of the Device ID Register
|
||||
(0xFC8). The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcdevtype
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Print the content of the Device Type Register
|
||||
(0xFCC). The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcpidr0
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Print the content of the Peripheral ID0 Register
|
||||
(0xFE0). The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcpidr1
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Print the content of the Peripheral ID1 Register
|
||||
(0xFE4). The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcpidr2
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Print the content of the Peripheral ID2 Register
|
||||
(0xFE8). The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/mgmt/trcpidr3
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Print the content of the Peripheral ID3 Register
|
||||
(0xFEC). The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr0
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Returns the tracing capabilities of the trace unit (0x1E0).
|
||||
The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr1
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Returns the tracing capabilities of the trace unit (0x1E4).
|
||||
The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr2
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Returns the maximum size of the data value, data address,
|
||||
VMID, context ID and instuction address in the trace unit
|
||||
(0x1E8). The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr3
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Returns the value associated with various resources
|
||||
available to the trace unit. See the Trace Macrocell
|
||||
architecture specification for more details (0x1E8).
|
||||
The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr4
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Returns how many resources the trace unit supports (0x1F0).
|
||||
The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr5
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Returns how many resources the trace unit supports (0x1F4).
|
||||
The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr8
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Returns the maximum speculation depth of the instruction
|
||||
trace stream. (0x180). The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr9
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Returns the number of P0 right-hand keys that the trace unit
|
||||
can use (0x184). The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr10
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Returns the number of P1 right-hand keys that the trace unit
|
||||
can use (0x188). The value is taken directly from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr11
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Returns the number of special P1 right-hand keys that the
|
||||
trace unit can use (0x18C). The value is taken directly from
|
||||
the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr12
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Returns the number of conditional P1 right-hand keys that
|
||||
the trace unit can use (0x190). The value is taken directly
|
||||
from the HW.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etm/trcidr/trcidr13
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (R) Returns the number of special conditional P1 right-hand keys
|
||||
that the trace unit can use (0x194). The value is taken
|
||||
directly from the HW.
|
@ -32,7 +32,7 @@ Description: 'FCoE Controller' instances on the fcoe bus.
|
||||
|
||||
Attributes:
|
||||
|
||||
fcf_dev_loss_tmo: Device loss timeout peroid (see below). Changing
|
||||
fcf_dev_loss_tmo: Device loss timeout period (see below). Changing
|
||||
this value will change the dev_loss_tmo for all
|
||||
FCFs discovered by this controller.
|
||||
|
||||
@ -61,7 +61,7 @@ Attributes:
|
||||
lesb/err_block: Link Error Status Block (LESB) block error count.
|
||||
|
||||
lesb/fcs_error: Link Error Status Block (LESB) Fibre Channel
|
||||
Serivces error count.
|
||||
Services error count.
|
||||
|
||||
Notes: ctlr_X (global increment starting at 0)
|
||||
|
||||
@ -85,7 +85,7 @@ Attributes:
|
||||
fabric.
|
||||
|
||||
selected: 1 indicates that the switch has been selected for use;
|
||||
0 indicates that the swich will not be used.
|
||||
0 indicates that the switch will not be used.
|
||||
|
||||
fc_map: The Fibre Channel MAP
|
||||
|
||||
@ -93,7 +93,7 @@ Attributes:
|
||||
|
||||
mac: The FCF's MAC address
|
||||
|
||||
fka_peroid: The FIP Keep-Alive peroid
|
||||
fka_period: The FIP Keep-Alive period
|
||||
|
||||
fabric_state: The internal kernel state
|
||||
"Unknown" - Initialization value
|
||||
@ -101,9 +101,9 @@ Attributes:
|
||||
"Connected" - Host is connected to the FCF
|
||||
"Deleted" - FCF is being removed from the system
|
||||
|
||||
dev_loss_tmo: The device loss timeout peroid for this FCF.
|
||||
dev_loss_tmo: The device loss timeout period for this FCF.
|
||||
|
||||
Notes: A device loss infrastructre similar to the FC Transport's
|
||||
Notes: A device loss infrastructure similar to the FC Transport's
|
||||
is present in fcoe_sysfs. It is nice to have so that a
|
||||
link flapping adapter doesn't continually advance the count
|
||||
used to identify the discovered FCF. FCFs will exist in a
|
||||
|
@ -71,6 +71,8 @@ Description:
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_supply_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_i_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_q_raw
|
||||
KernelVersion: 2.6.35
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
@ -81,6 +83,11 @@ Description:
|
||||
unique to allow association with event codes. Units after
|
||||
application of scale and offset are millivolts.
|
||||
|
||||
Channels with 'i' and 'q' modifiers always exist in pairs and both
|
||||
channels refer to the same signal. The 'i' channel contains the in-phase
|
||||
component of the signal while the 'q' channel contains the quadrature
|
||||
component.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY-voltageZ_raw
|
||||
KernelVersion: 2.6.35
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
@ -246,8 +253,16 @@ What: /sys/bus/iio/devices/iio:deviceX/in_accel_y_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_accel_z_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_i_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_q_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage_q_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage_i_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentY_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_current_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentY_i_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentY_q_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_current_q_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_current_i_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_tempY_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_temp_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_pressureY_offset
|
||||
@ -273,14 +288,22 @@ Description:
|
||||
to the _raw output.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_i_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_q_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_supply_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage_i_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage_q_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage-voltage_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/out_voltageY_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/out_altvoltageY_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentY_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentY_supply_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_current_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentY_i_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentY_q_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_current_i_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_current_q_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_accel_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_accel_peak_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_anglvel_scale
|
||||
@ -328,6 +351,10 @@ Description:
|
||||
|
||||
What /sys/bus/iio/devices/iio:deviceX/in_voltageY_calibscale
|
||||
What /sys/bus/iio/devices/iio:deviceX/in_voltageY_supply_calibscale
|
||||
What /sys/bus/iio/devices/iio:deviceX/in_voltageY_i_calibscale
|
||||
What /sys/bus/iio/devices/iio:deviceX/in_voltageY_q_calibscale
|
||||
What /sys/bus/iio/devices/iio:deviceX/in_voltage_i_calibscale
|
||||
What /sys/bus/iio/devices/iio:deviceX/in_voltage_q_calibscale
|
||||
What /sys/bus/iio/devices/iio:deviceX/in_voltage_calibscale
|
||||
What /sys/bus/iio/devices/iio:deviceX/in_accel_x_calibscale
|
||||
What /sys/bus/iio/devices/iio:deviceX/in_accel_y_calibscale
|
||||
@ -420,6 +447,16 @@ Description:
|
||||
to the underlying data channel, then this parameter
|
||||
gives the 3dB frequency of the filter in Hz.
|
||||
|
||||
What: /sys/.../in_accel_filter_high_pass_3db_frequency
|
||||
What: /sys/.../in_anglvel_filter_high_pass_3db_frequency
|
||||
What: /sys/.../in_magn_filter_high_pass_3db_frequency
|
||||
KernelVersion: 4.2
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
If a known or controllable high pass filter is applied
|
||||
to the underlying data channel, then this parameter
|
||||
gives the 3dB frequency of the filter in Hz.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/out_voltageY_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/out_altvoltageY_raw
|
||||
KernelVersion: 2.6.37
|
||||
@ -880,6 +917,26 @@ Description:
|
||||
met before an event is generated. If direction is not
|
||||
specified then this period applies to both directions.
|
||||
|
||||
What: /sys/.../events/in_accel_thresh_rising_low_pass_filter_3db
|
||||
What: /sys/.../events/in_anglvel_thresh_rising_low_pass_filter_3db
|
||||
What: /sys/.../events/in_magn_thresh_rising_low_pass_filter_3db
|
||||
KernelVersion: 4.2
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
If a low pass filter can be applied to the event generation
|
||||
this property gives its 3db frequency in Hz.
|
||||
A value of zero disables the filter.
|
||||
|
||||
What: /sys/.../events/in_accel_thresh_rising_high_pass_filter_3db
|
||||
What: /sys/.../events/in_anglvel_thresh_rising_high_pass_filter_3db
|
||||
What: /sys/.../events/in_magn_thresh_rising_high_pass_filter_3db
|
||||
KernelVersion: 4.2
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
If a high pass filter can be applied to the event generation
|
||||
this property gives its 3db frequency in Hz.
|
||||
A value of zero disables the filter.
|
||||
|
||||
What: /sys/.../events/in_activity_still_thresh_rising_en
|
||||
What: /sys/.../events/in_activity_still_thresh_falling_en
|
||||
What: /sys/.../events/in_activity_walking_thresh_rising_en
|
||||
@ -1016,6 +1073,10 @@ What: /sys/.../iio:deviceX/scan_elements/in_timestamp_en
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltageY_supply_en
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltageY_en
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltageY-voltageZ_en
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltageY_i_en
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltageY_q_en
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltage_i_en
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltage_q_en
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_incli_x_en
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_incli_y_en
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_pressureY_en
|
||||
@ -1034,6 +1095,10 @@ What: /sys/.../iio:deviceX/scan_elements/in_incli_type
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltageY_type
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltage_type
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltageY_supply_type
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltageY_i_type
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltageY_q_type
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltage_i_type
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltage_q_type
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_timestamp_type
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_pressureY_type
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_pressure_type
|
||||
@ -1071,6 +1136,10 @@ Description:
|
||||
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltageY_index
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltageY_supply_index
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltageY_i_index
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltageY_q_index
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltage_i_index
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_voltage_q_index
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_accel_x_index
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_accel_y_index
|
||||
What: /sys/.../iio:deviceX/scan_elements/in_accel_z_index
|
||||
@ -1165,10 +1234,8 @@ Description:
|
||||
object is near the sensor, usually be observing
|
||||
reflectivity of infrared or ultrasound emitted.
|
||||
Often these sensors are unit less and as such conversion
|
||||
to SI units is not possible. Where it is, the units should
|
||||
be meters. If such a conversion is not possible, the reported
|
||||
values should behave in the same way as a distance, i.e. lower
|
||||
values indicate something is closer to the sensor.
|
||||
to SI units is not possible. Higher proximity measurements
|
||||
indicate closer objects, and vice versa.
|
||||
|
||||
What: /sys/.../iio:deviceX/in_illuminance_input
|
||||
What: /sys/.../iio:deviceX/in_illuminance_raw
|
||||
@ -1230,6 +1297,8 @@ Description:
|
||||
or without compensation from tilt sensors.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentX_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentX_i_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentX_q_raw
|
||||
KernelVersion: 3.18
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
@ -1238,6 +1307,11 @@ Description:
|
||||
present, output should be considered as processed with the
|
||||
unit in milliamps.
|
||||
|
||||
Channels with 'i' and 'q' modifiers always exist in pairs and both
|
||||
channels refer to the same signal. The 'i' channel contains the in-phase
|
||||
component of the signal while the 'q' channel contains the quadrature
|
||||
component.
|
||||
|
||||
What: /sys/.../iio:deviceX/in_energy_en
|
||||
What: /sys/.../iio:deviceX/in_distance_en
|
||||
What: /sys/.../iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_en
|
||||
@ -1364,3 +1438,26 @@ Description:
|
||||
hwfifo_watermak_min but not equal to any of the values in this
|
||||
list, the driver will chose an appropriate value for the
|
||||
hardware fifo watermark level.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_temp_calibemissivity
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_tempX_calibemissivity
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_temp_object_calibemissivity
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_tempX_object_calibemissivity
|
||||
KernelVersion: 4.1
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
The emissivity ratio of the surface in the field of view of the
|
||||
contactless temperature sensor. Emissivity varies from 0 to 1,
|
||||
with 1 being the emissivity of a black body.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_magn_x_oversampling_ratio
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_magn_y_oversampling_ratio
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_magn_z_oversampling_ratio
|
||||
KernelVersion: 4.2
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Hardware applied number of measurements for acquiring one
|
||||
data point. The HW will do <type>[_name]_oversampling_ratio
|
||||
measurements and return the average value as output data. Each
|
||||
value resulted from <type>[_name]_oversampling_ratio measurements
|
||||
is considered as one sample for <type>[_name]_sampling_frequency.
|
||||
|
7
Documentation/ABI/testing/sysfs-bus-iio-vf610
Normal file
7
Documentation/ABI/testing/sysfs-bus-iio-vf610
Normal file
@ -0,0 +1,7 @@
|
||||
What: /sys/bus/iio/devices/iio:deviceX/conversion_mode
|
||||
KernelVersion: 4.2
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Specifies the hardware conversion mode used. The three
|
||||
available modes are "normal", "high-speed" and "low-power",
|
||||
where the last is the default mode.
|
@ -4,4 +4,18 @@ KernelVersion: 3.10
|
||||
Contact: Samuel Ortiz <sameo@linux.intel.com>
|
||||
linux-mei@linux.intel.com
|
||||
Description: Stores the same MODALIAS value emitted by uevent
|
||||
Format: mei:<mei device name>
|
||||
Format: mei:<mei device name>:<device uuid>:
|
||||
|
||||
What: /sys/bus/mei/devices/.../name
|
||||
Date: May 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||
Description: Stores mei client device name
|
||||
Format: string
|
||||
|
||||
What: /sys/bus/mei/devices/.../uuid
|
||||
Date: May 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Tomas Winkler <tomas.winkler@intel.com>
|
||||
Description: Stores mei client device uuid
|
||||
Format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
||||
|
@ -0,0 +1,8 @@
|
||||
What: /sys/bus/pci/drivers/janz-cmodio/.../modulbus_number
|
||||
Date: May 2010
|
||||
KernelVersion: 2.6.35
|
||||
Contact: Ira W. Snyder <ira.snyder@gmail.com>
|
||||
Description:
|
||||
Value representing the HEX switch S2 of the janz carrier board CMOD-IO or CAN-PCI2
|
||||
|
||||
Read-only: value of the configuration switch (0..15)
|
@ -4,14 +4,14 @@ driver is bound with root hub device.
|
||||
|
||||
What: /sys/bus/usb/devices/.../get_dev_desc
|
||||
Date: March 2014
|
||||
Contact: Pratyush Anand <pratyush.anand@st.com>
|
||||
Contact: Pratyush Anand <pratyush.anand@gmail.com>
|
||||
Description:
|
||||
Write to this node to issue "Get Device Descriptor"
|
||||
for Link Layer Validation device. It is needed for TD.7.06.
|
||||
|
||||
What: /sys/bus/usb/devices/.../u1_timeout
|
||||
Date: March 2014
|
||||
Contact: Pratyush Anand <pratyush.anand@st.com>
|
||||
Contact: Pratyush Anand <pratyush.anand@gmail.com>
|
||||
Description:
|
||||
Set "U1 timeout" for the downstream port where Link Layer
|
||||
Validation device is connected. Timeout value must be between 0
|
||||
@ -19,7 +19,7 @@ Description:
|
||||
|
||||
What: /sys/bus/usb/devices/.../u2_timeout
|
||||
Date: March 2014
|
||||
Contact: Pratyush Anand <pratyush.anand@st.com>
|
||||
Contact: Pratyush Anand <pratyush.anand@gmail.com>
|
||||
Description:
|
||||
Set "U2 timeout" for the downstream port where Link Layer
|
||||
Validation device is connected. Timeout value must be between 0
|
||||
@ -27,21 +27,21 @@ Description:
|
||||
|
||||
What: /sys/bus/usb/devices/.../hot_reset
|
||||
Date: March 2014
|
||||
Contact: Pratyush Anand <pratyush.anand@st.com>
|
||||
Contact: Pratyush Anand <pratyush.anand@gmail.com>
|
||||
Description:
|
||||
Write to this node to issue "Reset" for Link Layer Validation
|
||||
device. It is needed for TD.7.29, TD.7.31, TD.7.34 and TD.7.35.
|
||||
|
||||
What: /sys/bus/usb/devices/.../u3_entry
|
||||
Date: March 2014
|
||||
Contact: Pratyush Anand <pratyush.anand@st.com>
|
||||
Contact: Pratyush Anand <pratyush.anand@gmail.com>
|
||||
Description:
|
||||
Write to this node to issue "U3 entry" for Link Layer
|
||||
Validation device. It is needed for TD.7.35 and TD.7.36.
|
||||
|
||||
What: /sys/bus/usb/devices/.../u3_exit
|
||||
Date: March 2014
|
||||
Contact: Pratyush Anand <pratyush.anand@st.com>
|
||||
Contact: Pratyush Anand <pratyush.anand@gmail.com>
|
||||
Description:
|
||||
Write to this node to issue "U3 exit" for Link Layer
|
||||
Validation device. It is needed for TD.7.36.
|
||||
|
@ -6,6 +6,17 @@ Example: The real path of the attribute /sys/class/cxl/afu0.0s/irqs_max is
|
||||
|
||||
Slave contexts (eg. /sys/class/cxl/afu0.0s):
|
||||
|
||||
What: /sys/class/cxl/<afu>/afu_err_buf
|
||||
Date: September 2014
|
||||
Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
AFU Error Buffer contents. The contents of this file are
|
||||
application specific and depends on the AFU being used.
|
||||
Applications interacting with the AFU can use this attribute
|
||||
to know about the current error condition and take appropriate
|
||||
action like logging the event etc.
|
||||
|
||||
|
||||
What: /sys/class/cxl/<afu>/irqs_max
|
||||
Date: September 2014
|
||||
Contact: linuxppc-dev@lists.ozlabs.org
|
||||
@ -15,6 +26,7 @@ Description: read/write
|
||||
that hardware can support (eg. 2037). Write values will limit
|
||||
userspace applications to that many userspace interrupts. Must
|
||||
be >= irqs_min.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<afu>/irqs_min
|
||||
Date: September 2014
|
||||
@ -24,6 +36,7 @@ Description: read only
|
||||
userspace must request on a CXL_START_WORK ioctl. Userspace may
|
||||
omit the num_interrupts field in the START_WORK IOCTL to get
|
||||
this minimum automatically.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<afu>/mmio_size
|
||||
Date: September 2014
|
||||
@ -31,6 +44,7 @@ Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
Decimal value of the size of the MMIO space that may be mmaped
|
||||
by userspace.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<afu>/modes_supported
|
||||
Date: September 2014
|
||||
@ -38,6 +52,7 @@ Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
List of the modes this AFU supports. One per line.
|
||||
Valid entries are: "dedicated_process" and "afu_directed"
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<afu>/mode
|
||||
Date: September 2014
|
||||
@ -46,6 +61,7 @@ Description: read/write
|
||||
The current mode the AFU is using. Will be one of the modes
|
||||
given in modes_supported. Writing will change the mode
|
||||
provided that no user contexts are attached.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
|
||||
What: /sys/class/cxl/<afu>/prefault_mode
|
||||
@ -59,6 +75,7 @@ Description: read/write
|
||||
descriptor as an effective address and
|
||||
prefault what it points to.
|
||||
all: all segments process calling START_WORK maps.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<afu>/reset
|
||||
Date: September 2014
|
||||
@ -66,12 +83,14 @@ Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: write only
|
||||
Writing 1 here will reset the AFU provided there are not
|
||||
contexts active on the AFU.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<afu>/api_version
|
||||
Date: September 2014
|
||||
Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
Decimal value of the current version of the kernel/user API.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<afu>/api_version_compatible
|
||||
Date: September 2014
|
||||
@ -79,6 +98,7 @@ Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
Decimal value of the the lowest version of the userspace API
|
||||
this this kernel supports.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
|
||||
AFU configuration records (eg. /sys/class/cxl/afu0.0/cr0):
|
||||
@ -92,6 +112,7 @@ Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
Hexadecimal value of the vendor ID found in this AFU
|
||||
configuration record.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<afu>/cr<config num>/device
|
||||
Date: February 2015
|
||||
@ -99,6 +120,7 @@ Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
Hexadecimal value of the device ID found in this AFU
|
||||
configuration record.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<afu>/cr<config num>/class
|
||||
Date: February 2015
|
||||
@ -106,6 +128,7 @@ Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
Hexadecimal value of the class code found in this AFU
|
||||
configuration record.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<afu>/cr<config num>/config
|
||||
Date: February 2015
|
||||
@ -115,6 +138,7 @@ Description: read only
|
||||
record. The format is expected to match the either the standard
|
||||
or extended configuration space defined by the PCIe
|
||||
specification.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
|
||||
|
||||
@ -126,18 +150,21 @@ Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
Decimal value of the size of the MMIO space that may be mmaped
|
||||
by userspace. This includes all slave contexts space also.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<afu>m/pp_mmio_len
|
||||
Date: September 2014
|
||||
Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
Decimal value of the Per Process MMIO space length.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<afu>m/pp_mmio_off
|
||||
Date: September 2014
|
||||
Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
Decimal value of the Per Process MMIO space offset.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
|
||||
Card info (eg. /sys/class/cxl/card0)
|
||||
@ -147,12 +174,14 @@ Date: September 2014
|
||||
Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
Identifies the CAIA Version the card implements.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<card>/psl_revision
|
||||
Date: September 2014
|
||||
Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
Identifies the revision level of the PSL.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<card>/base_image
|
||||
Date: September 2014
|
||||
@ -162,6 +191,7 @@ Description: read only
|
||||
that support loadable PSLs. For FPGAs this field identifies
|
||||
the image contained in the on-adapter flash which is loaded
|
||||
during the initial program load.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<card>/image_loaded
|
||||
Date: September 2014
|
||||
@ -169,6 +199,7 @@ Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: read only
|
||||
Will return "user" or "factory" depending on the image loaded
|
||||
onto the card.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<card>/load_image_on_perst
|
||||
Date: December 2014
|
||||
@ -183,6 +214,7 @@ Description: read/write
|
||||
user or factory image to be loaded.
|
||||
Default is to reload on PERST whichever image the card has
|
||||
loaded.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
||||
What: /sys/class/cxl/<card>/reset
|
||||
Date: October 2014
|
||||
@ -190,3 +222,4 @@ Contact: linuxppc-dev@lists.ozlabs.org
|
||||
Description: write only
|
||||
Writing 1 will issue a PERST to card which may cause the card
|
||||
to reload the FPGA depending on load_image_on_perst.
|
||||
Users: https://github.com/ibm-capi/libcxl
|
||||
|
@ -39,6 +39,25 @@ Description:
|
||||
Format is a string, e.g: 00:11:22:33:44:55 for an Ethernet MAC
|
||||
address.
|
||||
|
||||
What: /sys/class/net/<bridge iface>/bridge/group_fwd_mask
|
||||
Date: January 2012
|
||||
KernelVersion: 3.2
|
||||
Contact: netdev@vger.kernel.org
|
||||
Description:
|
||||
Bitmask to allow forwarding of link local frames with address
|
||||
01-80-C2-00-00-0X on a bridge device. Only values that set bits
|
||||
not matching BR_GROUPFWD_RESTRICTED in net/bridge/br_private.h
|
||||
allowed.
|
||||
Default value 0 does not forward any link local frames.
|
||||
|
||||
Restricted bits:
|
||||
0: 01-80-C2-00-00-00 Bridge Group Address used for STP
|
||||
1: 01-80-C2-00-00-01 (MAC Control) 802.3 used for MAC PAUSE
|
||||
2: 01-80-C2-00-00-02 (Link Aggregation) 802.3ad
|
||||
|
||||
Any values not setting these bits can be used. Take special
|
||||
care when forwarding control frames e.g. 802.1X-PAE or LLDP.
|
||||
|
||||
What: /sys/class/net/<iface>/broadcast
|
||||
Date: April 2005
|
||||
KernelVersion: 2.6.12
|
||||
|
19
Documentation/ABI/testing/sysfs-class-net-janz-ican3
Normal file
19
Documentation/ABI/testing/sysfs-class-net-janz-ican3
Normal file
@ -0,0 +1,19 @@
|
||||
What: /sys/class/net/<iface>/termination
|
||||
Date: May 2010
|
||||
KernelVersion: 2.6.35
|
||||
Contact: Ira W. Snyder <ira.snyder@gmail.com>
|
||||
Description:
|
||||
Value representing the can bus termination
|
||||
|
||||
Default: 1 (termination active)
|
||||
Reading: get actual termination state
|
||||
Writing: set actual termination state (0=no termination, 1=termination active)
|
||||
|
||||
What: /sys/class/net/<iface>/fwinfo
|
||||
Date: May 2015
|
||||
KernelVersion: 3.19
|
||||
Contact: Andreas Gröger <andreas24groeger@gmail.com>
|
||||
Description:
|
||||
Firmware stamp of ican3 module
|
||||
Read-only: 32 byte string identification of the ICAN3 module
|
||||
(known values: "JANZ-ICAN3 ICANOS 1.xx", "JANZ-ICAN3 CAL/CANopen 1.xx")
|
109
Documentation/ABI/testing/sysfs-class-scsi_tape
Normal file
109
Documentation/ABI/testing/sysfs-class-scsi_tape
Normal file
@ -0,0 +1,109 @@
|
||||
What: /sys/class/scsi_tape/*/stats/in_flight
|
||||
Date: Apr 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Shane Seymour <shane.seymour@hp.com>
|
||||
Description:
|
||||
Show the number of I/Os currently in-flight between the st
|
||||
module and the SCSI mid-layer.
|
||||
Users:
|
||||
|
||||
|
||||
What: /sys/class/scsi_tape/*/stats/io_ns
|
||||
Date: Apr 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Shane Seymour <shane.seymour@hp.com>
|
||||
Description:
|
||||
Shows the total amount of time spent waiting for all I/O
|
||||
to and from the tape drive to complete. This includes all
|
||||
reads, writes, and other SCSI commands issued to the tape
|
||||
drive. An example of other SCSI commands would be tape
|
||||
movement such as a rewind when a rewind tape device is
|
||||
closed. This item is measured in nanoseconds.
|
||||
|
||||
To determine the amount of time spent waiting for other I/O
|
||||
to complete subtract read_ns and write_ns from this value.
|
||||
Users:
|
||||
|
||||
|
||||
What: /sys/class/scsi_tape/*/stats/other_cnt
|
||||
Date: Apr 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Shane Seymour <shane.seymour@hp.com>
|
||||
Description:
|
||||
The number of I/O requests issued to the tape drive other
|
||||
than SCSI read/write requests.
|
||||
Users:
|
||||
|
||||
|
||||
What: /sys/class/scsi_tape/*/stats/read_byte_cnt
|
||||
Date: Apr 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Shane Seymour <shane.seymour@hp.com>
|
||||
Description:
|
||||
Shows the total number of bytes requested from the tape drive.
|
||||
This value is presented in bytes because tape drives support
|
||||
variable length block sizes.
|
||||
Users:
|
||||
|
||||
|
||||
What: /sys/class/scsi_tape/*/stats/read_cnt
|
||||
Date: Apr 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Shane Seymour <shane.seymour@hp.com>
|
||||
Description:
|
||||
Shows the total number of read requests issued to the tape
|
||||
drive.
|
||||
Users:
|
||||
|
||||
|
||||
What: /sys/class/scsi_tape/*/stats/read_ns
|
||||
Date: Apr 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Shane Seymour <shane.seymour@hp.com>
|
||||
Description:
|
||||
Shows the total amount of time in nanoseconds waiting for
|
||||
read I/O requests to complete.
|
||||
Users:
|
||||
|
||||
|
||||
What: /sys/class/scsi_tape/*/stats/write_byte_cnt
|
||||
Date: Apr 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Shane Seymour <shane.seymour@hp.com>
|
||||
Description:
|
||||
Shows the total number of bytes written to the tape drive.
|
||||
This value is presented in bytes because tape drives support
|
||||
variable length block sizes.
|
||||
Users:
|
||||
|
||||
|
||||
What: /sys/class/scsi_tape/*/stats/write_cnt
|
||||
Date: Apr 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Shane Seymour <shane.seymour@hp.com>
|
||||
Description:
|
||||
Shows the total number of write requests issued to the tape
|
||||
drive.
|
||||
Users:
|
||||
|
||||
|
||||
What: /sys/class/scsi_tape/*/stats/write_ms
|
||||
Date: Apr 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Shane Seymour <shane.seymour@hp.com>
|
||||
Description:
|
||||
Shows the total amount of time in nanoseconds waiting for
|
||||
write I/O requests to complete.
|
||||
Users:
|
||||
|
||||
|
||||
What: /sys/class/scsi_tape/*/stats/resid_cnt
|
||||
Date: Apr 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Shane Seymour <shane.seymour@hp.com>
|
||||
Description:
|
||||
Shows the number of times we found that a residual >0
|
||||
was found when the SCSI midlayer indicated that there was
|
||||
an error. For reads this may be a case of someone issuing
|
||||
reads greater than the block size.
|
||||
Users:
|
24
Documentation/ABI/testing/sysfs-class-zram
Normal file
24
Documentation/ABI/testing/sysfs-class-zram
Normal file
@ -0,0 +1,24 @@
|
||||
What: /sys/class/zram-control/
|
||||
Date: August 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
||||
Description:
|
||||
The zram-control/ class sub-directory belongs to zram
|
||||
device class
|
||||
|
||||
What: /sys/class/zram-control/hot_add
|
||||
Date: August 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
||||
Description:
|
||||
RO attribute. Read operation will cause zram to add a new
|
||||
device and return its device id back to user (so one can
|
||||
use /dev/zram<id>), or error code.
|
||||
|
||||
What: /sys/class/zram-control/hot_remove
|
||||
Date: August 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
||||
Description:
|
||||
WO attribute. Remove a specific /dev/zramX device, where X
|
||||
is a device_id provided by user.
|
@ -243,7 +243,7 @@ Description: Parameters for the CPU cache attributes
|
||||
coherency_line_size: the minimum amount of data in bytes that gets
|
||||
transferred from memory to cache
|
||||
|
||||
level: the cache hierarcy in the multi-level cache configuration
|
||||
level: the cache hierarchy in the multi-level cache configuration
|
||||
|
||||
number_of_sets: total number of sets in the cache, a set is a
|
||||
collection of cache lines with the same cache index
|
||||
|
@ -1,7 +1,7 @@
|
||||
What: /sys/module/hid_logitech/drivers/hid:logitech/<dev>/range.
|
||||
What: /sys/bus/hid/drivers/logitech/<dev>/range
|
||||
Date: July 2011
|
||||
KernelVersion: 3.2
|
||||
Contact: Michal Malý <madcatxster@gmail.com>
|
||||
Contact: Michal Malý <madcatxster@devoid-pointer.net>
|
||||
Description: Display minimum, maximum and current range of the steering
|
||||
wheel. Writing a value within min and max boundaries sets the
|
||||
range of the wheel.
|
||||
@ -9,7 +9,7 @@ Description: Display minimum, maximum and current range of the steering
|
||||
What: /sys/bus/hid/drivers/logitech/<dev>/alternate_modes
|
||||
Date: Feb 2015
|
||||
KernelVersion: 4.1
|
||||
Contact: Michal Malý <madcatxster@gmail.com>
|
||||
Contact: Michal Malý <madcatxster@devoid-pointer.net>
|
||||
Description: Displays a set of alternate modes supported by a wheel. Each
|
||||
mode is listed as follows:
|
||||
Tag: Mode Name
|
||||
@ -45,7 +45,7 @@ Description: Displays a set of alternate modes supported by a wheel. Each
|
||||
What: /sys/bus/hid/drivers/logitech/<dev>/real_id
|
||||
Date: Feb 2015
|
||||
KernelVersion: 4.1
|
||||
Contact: Michal Malý <madcatxster@gmail.com>
|
||||
Contact: Michal Malý <madcatxster@devoid-pointer.net>
|
||||
Description: Displays the real model of the wheel regardless of any
|
||||
alternate mode the wheel might be switched to.
|
||||
It is a read-only value.
|
||||
|
20
Documentation/ABI/testing/sysfs-driver-toshiba_haps
Normal file
20
Documentation/ABI/testing/sysfs-driver-toshiba_haps
Normal file
@ -0,0 +1,20 @@
|
||||
What: /sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS620A:00/protection_level
|
||||
Date: August 16, 2014
|
||||
KernelVersion: 3.17
|
||||
Contact: Azael Avalos <coproscefalo@gmail.com>
|
||||
Description: This file controls the built-in accelerometer protection level,
|
||||
valid values are:
|
||||
* 0 -> Disabled
|
||||
* 1 -> Low
|
||||
* 2 -> Medium
|
||||
* 3 -> High
|
||||
The default potection value is set to 2 (Medium).
|
||||
Users: KToshiba
|
||||
|
||||
What: /sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS620A:00/reset_protection
|
||||
Date: August 16, 2014
|
||||
KernelVersion: 3.17
|
||||
Contact: Azael Avalos <coproscefalo@gmail.com>
|
||||
Description: This file turns off the built-in accelerometer for a few
|
||||
seconds and then restore normal operation. Accepting 1 as the
|
||||
only parameter.
|
@ -1,4 +1,4 @@
|
||||
What: /sys/firmware/dmi/
|
||||
What: /sys/firmware/dmi/entries/
|
||||
Date: February 2011
|
||||
Contact: Mike Waychison <mikew@google.com>
|
||||
Description:
|
22
Documentation/ABI/testing/sysfs-firmware-dmi-tables
Normal file
22
Documentation/ABI/testing/sysfs-firmware-dmi-tables
Normal file
@ -0,0 +1,22 @@
|
||||
What: /sys/firmware/dmi/tables/
|
||||
Date: April 2015
|
||||
Contact: Ivan Khoronzhuk <ivan.khoronzhuk@globallogic.com>
|
||||
Description:
|
||||
The firmware provides DMI structures as a packed list of
|
||||
data referenced by a SMBIOS table entry point. The SMBIOS
|
||||
entry point contains general information, like SMBIOS
|
||||
version, DMI table size, etc. The structure, content and
|
||||
size of SMBIOS entry point is dependent on SMBIOS version.
|
||||
The format of SMBIOS entry point and DMI structures
|
||||
can be read in SMBIOS specification.
|
||||
|
||||
The dmi/tables provides raw SMBIOS entry point and DMI tables
|
||||
through sysfs as an alternative to utilities reading them
|
||||
from /dev/mem. The raw SMBIOS entry point and DMI table are
|
||||
presented as binary attributes and are accessible via:
|
||||
|
||||
/sys/firmware/dmi/tables/smbios_entry_point
|
||||
/sys/firmware/dmi/tables/DMI
|
||||
|
||||
The complete DMI information can be obtained using these two
|
||||
tables.
|
@ -18,3 +18,13 @@ Contact: Dave Young <dyoung@redhat.com>
|
||||
Description: It shows the physical address of config table entry in the EFI
|
||||
system table.
|
||||
Users: Kexec
|
||||
|
||||
What: /sys/firmware/efi/systab
|
||||
Date: April 2005
|
||||
Contact: linux-efi@vger.kernel.org
|
||||
Description: Displays the physical addresses of all EFI Configuration
|
||||
Tables found via the EFI System Table. The order in
|
||||
which the tables are printed forms an ABI and newer
|
||||
versions are always printed first, i.e. ACPI20 comes
|
||||
before ACPI.
|
||||
Users: dmidecode
|
||||
|
81
Documentation/ABI/testing/sysfs-firmware-efi-esrt
Normal file
81
Documentation/ABI/testing/sysfs-firmware-efi-esrt
Normal file
@ -0,0 +1,81 @@
|
||||
What: /sys/firmware/efi/esrt/
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: Provides userland access to read the EFI System Resource Table
|
||||
(ESRT), a catalog of firmware for which can be updated with
|
||||
the UEFI UpdateCapsule mechanism described in section 7.5 of
|
||||
the UEFI Standard.
|
||||
Users: fwupdate - https://github.com/rhinstaller/fwupdate
|
||||
|
||||
What: /sys/firmware/efi/esrt/fw_resource_count
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: The number of entries in the ESRT
|
||||
|
||||
What: /sys/firmware/efi/esrt/fw_resource_count_max
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: The maximum number of entries that /could/ be registered
|
||||
in the allocation the table is currently in. This is
|
||||
really only useful to the system firmware itself.
|
||||
|
||||
What: /sys/firmware/efi/esrt/fw_resource_version
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: The version of the ESRT structure provided by the firmware.
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: Each ESRT entry is identified by a GUID, and each gets a
|
||||
subdirectory under entries/ .
|
||||
example: /sys/firmware/efi/esrt/entries/entry0/
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/fw_type
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: What kind of firmware entry this is:
|
||||
0 - Unknown
|
||||
1 - System Firmware
|
||||
2 - Device Firmware
|
||||
3 - UEFI Driver
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/fw_class
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: This is the entry's guid, and will match the directory name.
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/fw_version
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: The version of the firmware currently installed. This is a
|
||||
32-bit unsigned integer.
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/lowest_supported_fw_version
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: The lowest version of the firmware that can be installed.
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/capsule_flags
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: Flags that must be passed to UpdateCapsule()
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/last_attempt_version
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: The last firmware version for which an update was attempted.
|
||||
|
||||
What: /sys/firmware/efi/esrt/entries/entry$N/last_attempt_status
|
||||
Date: February 2015
|
||||
Contact: Peter Jones <pjones@redhat.com>
|
||||
Description: The result of the last firmware update attempt for the
|
||||
firmware resource entry.
|
||||
0 - Success
|
||||
1 - Insufficient resources
|
||||
2 - Incorrect version
|
||||
3 - Invalid format
|
||||
4 - Authentication error
|
||||
5 - AC power event
|
||||
6 - Battery power event
|
||||
|
8
Documentation/ABI/testing/sysfs-platform-twl4030-usb
Normal file
8
Documentation/ABI/testing/sysfs-platform-twl4030-usb
Normal file
@ -0,0 +1,8 @@
|
||||
What: /sys/bus/platform/devices/*twl4030-usb/vbus
|
||||
Description:
|
||||
Read-only status reporting if VBUS (approx 5V)
|
||||
is being supplied by the USB bus.
|
||||
|
||||
Possible values: "on", "off".
|
||||
|
||||
Changes are notified via select/poll.
|
@ -670,7 +670,7 @@ functions:
|
||||
typeof(x) ret; \
|
||||
ret = calc_ret(x); \
|
||||
(ret); \
|
||||
)}
|
||||
})
|
||||
|
||||
ret is a common name for a local variable - __foo_ret is less likely
|
||||
to collide with an existing variable.
|
||||
|
@ -25,13 +25,18 @@ physical addresses. These are the addresses in /proc/iomem. The physical
|
||||
address is not directly useful to a driver; it must use ioremap() to map
|
||||
the space and produce a virtual address.
|
||||
|
||||
I/O devices use a third kind of address: a "bus address" or "DMA address".
|
||||
If a device has registers at an MMIO address, or if it performs DMA to read
|
||||
or write system memory, the addresses used by the device are bus addresses.
|
||||
In some systems, bus addresses are identical to CPU physical addresses, but
|
||||
in general they are not. IOMMUs and host bridges can produce arbitrary
|
||||
I/O devices use a third kind of address: a "bus address". If a device has
|
||||
registers at an MMIO address, or if it performs DMA to read or write system
|
||||
memory, the addresses used by the device are bus addresses. In some
|
||||
systems, bus addresses are identical to CPU physical addresses, but in
|
||||
general they are not. IOMMUs and host bridges can produce arbitrary
|
||||
mappings between physical and bus addresses.
|
||||
|
||||
From a device's point of view, DMA uses the bus address space, but it may
|
||||
be restricted to a subset of that space. For example, even if a system
|
||||
supports 64-bit addresses for main memory and PCI BARs, it may use an IOMMU
|
||||
so devices only need to use 32-bit DMA addresses.
|
||||
|
||||
Here's a picture and some examples:
|
||||
|
||||
CPU CPU Bus
|
||||
@ -72,11 +77,11 @@ can use virtual address X to access the buffer, but the device itself
|
||||
cannot because DMA doesn't go through the CPU virtual memory system.
|
||||
|
||||
In some simple systems, the device can do DMA directly to physical address
|
||||
Y. But in many others, there is IOMMU hardware that translates bus
|
||||
Y. But in many others, there is IOMMU hardware that translates DMA
|
||||
addresses to physical addresses, e.g., it translates Z to Y. This is part
|
||||
of the reason for the DMA API: the driver can give a virtual address X to
|
||||
an interface like dma_map_single(), which sets up any required IOMMU
|
||||
mapping and returns the bus address Z. The driver then tells the device to
|
||||
mapping and returns the DMA address Z. The driver then tells the device to
|
||||
do DMA to Z, and the IOMMU maps it to the buffer at address Y in system
|
||||
RAM.
|
||||
|
||||
@ -98,7 +103,7 @@ First of all, you should make sure
|
||||
#include <linux/dma-mapping.h>
|
||||
|
||||
is in your driver, which provides the definition of dma_addr_t. This type
|
||||
can hold any valid DMA or bus address for the platform and should be used
|
||||
can hold any valid DMA address for the platform and should be used
|
||||
everywhere you hold a DMA address returned from the DMA mapping functions.
|
||||
|
||||
What memory is DMA'able?
|
||||
@ -240,7 +245,7 @@ the case would look like this:
|
||||
|
||||
if (!dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64))) {
|
||||
using_dac = 1;
|
||||
consistent_using_dac = 1;
|
||||
consistent_using_dac = 1;
|
||||
} else if (!dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32))) {
|
||||
using_dac = 0;
|
||||
consistent_using_dac = 0;
|
||||
@ -316,7 +321,7 @@ There are two types of DMA mappings:
|
||||
Think of "consistent" as "synchronous" or "coherent".
|
||||
|
||||
The current default is to return consistent memory in the low 32
|
||||
bits of the bus space. However, for future compatibility you should
|
||||
bits of the DMA space. However, for future compatibility you should
|
||||
set the consistent mask even if this default is fine for your
|
||||
driver.
|
||||
|
||||
@ -353,7 +358,7 @@ There are two types of DMA mappings:
|
||||
transfer, unmapped right after it (unless you use dma_sync_* below)
|
||||
and for which hardware can optimize for sequential accesses.
|
||||
|
||||
This of "streaming" as "asynchronous" or "outside the coherency
|
||||
Think of "streaming" as "asynchronous" or "outside the coherency
|
||||
domain".
|
||||
|
||||
Good examples of what to use streaming mappings for are:
|
||||
@ -403,7 +408,7 @@ dma_alloc_coherent() returns two values: the virtual address which you
|
||||
can use to access it from the CPU and dma_handle which you pass to the
|
||||
card.
|
||||
|
||||
The CPU virtual address and the DMA bus address are both
|
||||
The CPU virtual address and the DMA address are both
|
||||
guaranteed to be aligned to the smallest PAGE_SIZE order which
|
||||
is greater than or equal to the requested size. This invariant
|
||||
exists (for example) to guarantee that if you allocate a chunk
|
||||
@ -645,8 +650,8 @@ PLEASE NOTE: The 'nents' argument to the dma_unmap_sg call must be
|
||||
dma_map_sg call.
|
||||
|
||||
Every dma_map_{single,sg}() call should have its dma_unmap_{single,sg}()
|
||||
counterpart, because the bus address space is a shared resource and
|
||||
you could render the machine unusable by consuming all bus addresses.
|
||||
counterpart, because the DMA address space is a shared resource and
|
||||
you could render the machine unusable by consuming all DMA addresses.
|
||||
|
||||
If you need to use the same streaming DMA region multiple times and touch
|
||||
the data in between the DMA transfers, the buffer needs to be synced
|
||||
|
@ -18,10 +18,10 @@ Part I - dma_ API
|
||||
To get the dma_ API, you must #include <linux/dma-mapping.h>. This
|
||||
provides dma_addr_t and the interfaces described below.
|
||||
|
||||
A dma_addr_t can hold any valid DMA or bus address for the platform. It
|
||||
can be given to a device to use as a DMA source or target. A CPU cannot
|
||||
reference a dma_addr_t directly because there may be translation between
|
||||
its physical address space and the bus address space.
|
||||
A dma_addr_t can hold any valid DMA address for the platform. It can be
|
||||
given to a device to use as a DMA source or target. A CPU cannot reference
|
||||
a dma_addr_t directly because there may be translation between its physical
|
||||
address space and the DMA address space.
|
||||
|
||||
Part Ia - Using large DMA-coherent buffers
|
||||
------------------------------------------
|
||||
@ -42,7 +42,7 @@ It returns a pointer to the allocated region (in the processor's virtual
|
||||
address space) or NULL if the allocation failed.
|
||||
|
||||
It also returns a <dma_handle> which may be cast to an unsigned integer the
|
||||
same width as the bus and given to the device as the bus address base of
|
||||
same width as the bus and given to the device as the DMA address base of
|
||||
the region.
|
||||
|
||||
Note: consistent memory can be expensive on some platforms, and the
|
||||
@ -193,7 +193,7 @@ dma_map_single(struct device *dev, void *cpu_addr, size_t size,
|
||||
enum dma_data_direction direction)
|
||||
|
||||
Maps a piece of processor virtual memory so it can be accessed by the
|
||||
device and returns the bus address of the memory.
|
||||
device and returns the DMA address of the memory.
|
||||
|
||||
The direction for both APIs may be converted freely by casting.
|
||||
However the dma_ API uses a strongly typed enumerator for its
|
||||
@ -212,20 +212,20 @@ contiguous piece of memory. For this reason, memory to be mapped by
|
||||
this API should be obtained from sources which guarantee it to be
|
||||
physically contiguous (like kmalloc).
|
||||
|
||||
Further, the bus address of the memory must be within the
|
||||
Further, the DMA address of the memory must be within the
|
||||
dma_mask of the device (the dma_mask is a bit mask of the
|
||||
addressable region for the device, i.e., if the bus address of
|
||||
the memory ANDed with the dma_mask is still equal to the bus
|
||||
addressable region for the device, i.e., if the DMA address of
|
||||
the memory ANDed with the dma_mask is still equal to the DMA
|
||||
address, then the device can perform DMA to the memory). To
|
||||
ensure that the memory allocated by kmalloc is within the dma_mask,
|
||||
the driver may specify various platform-dependent flags to restrict
|
||||
the bus address range of the allocation (e.g., on x86, GFP_DMA
|
||||
guarantees to be within the first 16MB of available bus addresses,
|
||||
the DMA address range of the allocation (e.g., on x86, GFP_DMA
|
||||
guarantees to be within the first 16MB of available DMA addresses,
|
||||
as required by ISA devices).
|
||||
|
||||
Note also that the above constraints on physical contiguity and
|
||||
dma_mask may not apply if the platform has an IOMMU (a device which
|
||||
maps an I/O bus address to a physical memory address). However, to be
|
||||
maps an I/O DMA address to a physical memory address). However, to be
|
||||
portable, device driver writers may *not* assume that such an IOMMU
|
||||
exists.
|
||||
|
||||
@ -296,7 +296,7 @@ reduce current DMA mapping usage or delay and try again later).
|
||||
dma_map_sg(struct device *dev, struct scatterlist *sg,
|
||||
int nents, enum dma_data_direction direction)
|
||||
|
||||
Returns: the number of bus address segments mapped (this may be shorter
|
||||
Returns: the number of DMA address segments mapped (this may be shorter
|
||||
than <nents> passed in if some elements of the scatter/gather list are
|
||||
physically or virtually adjacent and an IOMMU maps them with a single
|
||||
entry).
|
||||
@ -340,7 +340,7 @@ must be the same as those and passed in to the scatter/gather mapping
|
||||
API.
|
||||
|
||||
Note: <nents> must be the number you passed in, *not* the number of
|
||||
bus address entries returned.
|
||||
DMA address entries returned.
|
||||
|
||||
void
|
||||
dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size,
|
||||
@ -507,7 +507,7 @@ it's asked for coherent memory for this device.
|
||||
phys_addr is the CPU physical address to which the memory is currently
|
||||
assigned (this will be ioremapped so the CPU can access the region).
|
||||
|
||||
device_addr is the bus address the device needs to be programmed
|
||||
device_addr is the DMA address the device needs to be programmed
|
||||
with to actually address this memory (this will be handed out as the
|
||||
dma_addr_t in dma_alloc_coherent()).
|
||||
|
||||
|
@ -119,7 +119,7 @@
|
||||
|
||||
<para>
|
||||
Note: The terms "transformation" and cipher algorithm are used
|
||||
interchangably.
|
||||
interchangeably.
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
@ -536,8 +536,8 @@
|
||||
|
||||
<para>
|
||||
For other use cases of AEAD ciphers, the ASCII art applies as
|
||||
well, but the caller may not use the GIVCIPHER interface. In
|
||||
this case, the caller must generate the IV.
|
||||
well, but the caller may not use the AEAD cipher with a separate
|
||||
IV generator. In this case, the caller must generate the IV.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -584,8 +584,8 @@ kernel crypto API | IPSEC Layer
|
||||
|
|
||||
+-----------+ |
|
||||
| | (1)
|
||||
| givcipher | <----------------------------------- esp_output
|
||||
| (seqiv) | ---+
|
||||
| aead | <----------------------------------- esp_output
|
||||
| (seqniv) | ---+
|
||||
+-----------+ |
|
||||
| (2)
|
||||
+-----------+ |
|
||||
@ -620,8 +620,8 @@ kernel crypto API | IPSEC Layer
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
esp_output() invokes crypto_aead_givencrypt() to trigger an encryption
|
||||
operation of the GIVCIPHER implementation.
|
||||
esp_output() invokes crypto_aead_encrypt() to trigger an encryption
|
||||
operation of the AEAD cipher with IV generator.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
@ -1563,7 +1563,7 @@ struct sockaddr_alg sa = {
|
||||
|
||||
<sect1><title>Zero-Copy Interface</title>
|
||||
<para>
|
||||
In addition to the send/write/read/recv system call familty, the AF_ALG
|
||||
In addition to the send/write/read/recv system call family, the AF_ALG
|
||||
interface can be accessed with the zero-copy interface of splice/vmsplice.
|
||||
As the name indicates, the kernel tries to avoid a copy operation into
|
||||
kernel space.
|
||||
@ -1669,9 +1669,19 @@ read(opfd, out, outlen);
|
||||
</chapter>
|
||||
|
||||
<chapter id="API"><title>Programming Interface</title>
|
||||
<para>
|
||||
Please note that the kernel crypto API contains the AEAD givcrypt
|
||||
API (crypto_aead_giv* and aead_givcrypt_* function calls in
|
||||
include/crypto/aead.h). This API is obsolete and will be removed
|
||||
in the future. To obtain the functionality of an AEAD cipher with
|
||||
internal IV generation, use the IV generator as a regular cipher.
|
||||
For example, rfc4106(gcm(aes)) is the AEAD cipher with external
|
||||
IV generation and seqniv(rfc4106(gcm(aes))) implies that the kernel
|
||||
crypto API generates the IV. Different IV generators are available.
|
||||
</para>
|
||||
<sect1><title>Block Cipher Context Data Structures</title>
|
||||
!Pinclude/linux/crypto.h Block Cipher Context Data Structures
|
||||
!Finclude/linux/crypto.h aead_request
|
||||
!Finclude/crypto/aead.h aead_request
|
||||
</sect1>
|
||||
<sect1><title>Block Cipher Algorithm Definitions</title>
|
||||
!Pinclude/linux/crypto.h Block Cipher Algorithm Definitions
|
||||
@ -1680,7 +1690,7 @@ read(opfd, out, outlen);
|
||||
!Finclude/linux/crypto.h aead_alg
|
||||
!Finclude/linux/crypto.h blkcipher_alg
|
||||
!Finclude/linux/crypto.h cipher_alg
|
||||
!Finclude/linux/crypto.h rng_alg
|
||||
!Finclude/crypto/rng.h rng_alg
|
||||
</sect1>
|
||||
<sect1><title>Asynchronous Block Cipher API</title>
|
||||
!Pinclude/linux/crypto.h Asynchronous Block Cipher API
|
||||
@ -1704,26 +1714,27 @@ read(opfd, out, outlen);
|
||||
!Finclude/linux/crypto.h ablkcipher_request_set_crypt
|
||||
</sect1>
|
||||
<sect1><title>Authenticated Encryption With Associated Data (AEAD) Cipher API</title>
|
||||
!Pinclude/linux/crypto.h Authenticated Encryption With Associated Data (AEAD) Cipher API
|
||||
!Finclude/linux/crypto.h crypto_alloc_aead
|
||||
!Finclude/linux/crypto.h crypto_free_aead
|
||||
!Finclude/linux/crypto.h crypto_aead_ivsize
|
||||
!Finclude/linux/crypto.h crypto_aead_authsize
|
||||
!Finclude/linux/crypto.h crypto_aead_blocksize
|
||||
!Finclude/linux/crypto.h crypto_aead_setkey
|
||||
!Finclude/linux/crypto.h crypto_aead_setauthsize
|
||||
!Finclude/linux/crypto.h crypto_aead_encrypt
|
||||
!Finclude/linux/crypto.h crypto_aead_decrypt
|
||||
!Pinclude/crypto/aead.h Authenticated Encryption With Associated Data (AEAD) Cipher API
|
||||
!Finclude/crypto/aead.h crypto_alloc_aead
|
||||
!Finclude/crypto/aead.h crypto_free_aead
|
||||
!Finclude/crypto/aead.h crypto_aead_ivsize
|
||||
!Finclude/crypto/aead.h crypto_aead_authsize
|
||||
!Finclude/crypto/aead.h crypto_aead_blocksize
|
||||
!Finclude/crypto/aead.h crypto_aead_setkey
|
||||
!Finclude/crypto/aead.h crypto_aead_setauthsize
|
||||
!Finclude/crypto/aead.h crypto_aead_encrypt
|
||||
!Finclude/crypto/aead.h crypto_aead_decrypt
|
||||
</sect1>
|
||||
<sect1><title>Asynchronous AEAD Request Handle</title>
|
||||
!Pinclude/linux/crypto.h Asynchronous AEAD Request Handle
|
||||
!Finclude/linux/crypto.h crypto_aead_reqsize
|
||||
!Finclude/linux/crypto.h aead_request_set_tfm
|
||||
!Finclude/linux/crypto.h aead_request_alloc
|
||||
!Finclude/linux/crypto.h aead_request_free
|
||||
!Finclude/linux/crypto.h aead_request_set_callback
|
||||
!Finclude/linux/crypto.h aead_request_set_crypt
|
||||
!Finclude/linux/crypto.h aead_request_set_assoc
|
||||
!Pinclude/crypto/aead.h Asynchronous AEAD Request Handle
|
||||
!Finclude/crypto/aead.h crypto_aead_reqsize
|
||||
!Finclude/crypto/aead.h aead_request_set_tfm
|
||||
!Finclude/crypto/aead.h aead_request_alloc
|
||||
!Finclude/crypto/aead.h aead_request_free
|
||||
!Finclude/crypto/aead.h aead_request_set_callback
|
||||
!Finclude/crypto/aead.h aead_request_set_crypt
|
||||
!Finclude/crypto/aead.h aead_request_set_assoc
|
||||
!Finclude/crypto/aead.h aead_request_set_ad
|
||||
</sect1>
|
||||
<sect1><title>Synchronous Block Cipher API</title>
|
||||
!Pinclude/linux/crypto.h Synchronous Block Cipher API
|
||||
|
@ -2439,6 +2439,18 @@ void intel_crt_init(struct drm_device *dev)
|
||||
<title>Tile group</title>
|
||||
!Pdrivers/gpu/drm/drm_crtc.c Tile group
|
||||
</sect2>
|
||||
<sect2>
|
||||
<title>Bridges</title>
|
||||
<sect3>
|
||||
<title>Overview</title>
|
||||
!Pdrivers/gpu/drm/drm_bridge.c overview
|
||||
</sect3>
|
||||
<sect3>
|
||||
<title>Default bridge callback sequence</title>
|
||||
!Pdrivers/gpu/drm/drm_bridge.c bridge callbacks
|
||||
</sect3>
|
||||
!Edrivers/gpu/drm/drm_bridge.c
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<!-- Internals: kms properties -->
|
||||
@ -2573,7 +2585,22 @@ void intel_crt_init(struct drm_device *dev)
|
||||
<td valign="top" >Description/Restrictions</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="36" valign="top" >DRM</td>
|
||||
<td rowspan="37" valign="top" >DRM</td>
|
||||
<td valign="top" >Generic</td>
|
||||
<td valign="top" >“rotation”</td>
|
||||
<td valign="top" >BITMASK</td>
|
||||
<td valign="top" >{ 0, "rotate-0" },
|
||||
{ 1, "rotate-90" },
|
||||
{ 2, "rotate-180" },
|
||||
{ 3, "rotate-270" },
|
||||
{ 4, "reflect-x" },
|
||||
{ 5, "reflect-y" }</td>
|
||||
<td valign="top" >CRTC, Plane</td>
|
||||
<td valign="top" >rotate-(degrees) rotates the image by the specified amount in degrees
|
||||
in counter clockwise direction. reflect-x and reflect-y reflects the
|
||||
image along the specified axis prior to rotation</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="5" valign="top" >Connector</td>
|
||||
<td valign="top" >“EDID”</td>
|
||||
<td valign="top" >BLOB | IMMUTABLE</td>
|
||||
@ -2834,7 +2861,7 @@ void intel_crt_init(struct drm_device *dev)
|
||||
<td valign="top" >TBD</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="21" valign="top" >i915</td>
|
||||
<td rowspan="20" valign="top" >i915</td>
|
||||
<td rowspan="2" valign="top" >Generic</td>
|
||||
<td valign="top" >"Broadcast RGB"</td>
|
||||
<td valign="top" >ENUM</td>
|
||||
@ -2850,14 +2877,6 @@ void intel_crt_init(struct drm_device *dev)
|
||||
<td valign="top" >TBD</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="1" valign="top" >Plane</td>
|
||||
<td valign="top" >“rotation”</td>
|
||||
<td valign="top" >BITMASK</td>
|
||||
<td valign="top" >{ 0, "rotate-0" }, { 2, "rotate-180" }</td>
|
||||
<td valign="top" >Plane</td>
|
||||
<td valign="top" >TBD</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="17" valign="top" >SDVO-TV</td>
|
||||
<td valign="top" >“mode”</td>
|
||||
<td valign="top" >ENUM</td>
|
||||
@ -3364,20 +3383,8 @@ void intel_crt_init(struct drm_device *dev)
|
||||
<td valign="top" >TBD</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2" valign="top" >omap</td>
|
||||
<td rowspan="2" valign="top" >Generic</td>
|
||||
<td valign="top" >“rotation”</td>
|
||||
<td valign="top" >BITMASK</td>
|
||||
<td valign="top" >{ 0, "rotate-0" },
|
||||
{ 1, "rotate-90" },
|
||||
{ 2, "rotate-180" },
|
||||
{ 3, "rotate-270" },
|
||||
{ 4, "reflect-x" },
|
||||
{ 5, "reflect-y" }</td>
|
||||
<td valign="top" >CRTC, Plane</td>
|
||||
<td valign="top" >TBD</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" >omap</td>
|
||||
<td valign="top" >Generic</td>
|
||||
<td valign="top" >“zorder”</td>
|
||||
<td valign="top" >RANGE</td>
|
||||
<td valign="top" >Min=0, Max=3</td>
|
||||
@ -4067,7 +4074,7 @@ int num_ioctls;</synopsis>
|
||||
<title>DPIO</title>
|
||||
!Pdrivers/gpu/drm/i915/i915_reg.h DPIO
|
||||
<table id="dpiox2">
|
||||
<title>Dual channel PHY (VLV/CHV)</title>
|
||||
<title>Dual channel PHY (VLV/CHV/BXT)</title>
|
||||
<tgroup cols="8">
|
||||
<colspec colname="c0" />
|
||||
<colspec colname="c1" />
|
||||
@ -4118,7 +4125,7 @@ int num_ioctls;</synopsis>
|
||||
</tgroup>
|
||||
</table>
|
||||
<table id="dpiox1">
|
||||
<title>Single channel PHY (CHV)</title>
|
||||
<title>Single channel PHY (CHV/BXT)</title>
|
||||
<tgroup cols="4">
|
||||
<colspec colname="c0" />
|
||||
<colspec colname="c1" />
|
||||
@ -4153,6 +4160,12 @@ int num_ioctls;</synopsis>
|
||||
</tgroup>
|
||||
</table>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>CSR firmware support for DMC</title>
|
||||
!Pdrivers/gpu/drm/i915/intel_csr.c csr support for dmc
|
||||
!Idrivers/gpu/drm/i915/intel_csr.c
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
@ -4204,7 +4217,6 @@ int num_ioctls;</synopsis>
|
||||
!Idrivers/gpu/drm/i915/i915_gem_shrinker.c
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title> Tracing </title>
|
||||
<para>
|
||||
|
@ -954,6 +954,8 @@ printk(KERN_INFO "my ip: %pI4\n", &ipaddress);
|
||||
<function>MODULE_LICENSE()</function> that specifies a GPL
|
||||
compatible license. It implies that the function is considered
|
||||
an internal implementation issue, and not really an interface.
|
||||
Some maintainers and developers may however
|
||||
require EXPORT_SYMBOL_GPL() when adding any new APIs or functionality.
|
||||
</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
1
Documentation/DocBook/media/.gitignore
vendored
Normal file
1
Documentation/DocBook/media/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
!*.svg
|
@ -65,29 +65,31 @@ IOCTLS = \
|
||||
$(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/dvb/video.h) \
|
||||
$(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/media.h) \
|
||||
$(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/v4l2-subdev.h) \
|
||||
VIDIOC_SUBDEV_G_FRAME_INTERVAL \
|
||||
VIDIOC_SUBDEV_S_FRAME_INTERVAL \
|
||||
VIDIOC_SUBDEV_ENUM_MBUS_CODE \
|
||||
VIDIOC_SUBDEV_ENUM_FRAME_SIZE \
|
||||
VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL \
|
||||
VIDIOC_SUBDEV_G_SELECTION \
|
||||
VIDIOC_SUBDEV_S_SELECTION \
|
||||
|
||||
DEFINES = \
|
||||
$(shell perl -ne 'print "$$1 " if /\#define\s+(DTV_[^\s]+)\s+/' $(srctree)/include/uapi/linux/dvb/frontend.h) \
|
||||
|
||||
TYPES = \
|
||||
$(shell perl -ne 'print "$$1 " if /^typedef\s+[^\s]+\s+([^\s]+)\;/' $(srctree)/include/uapi/linux/videodev2.h) \
|
||||
$(shell perl -ne 'print "$$1 " if /^}\s+([a-z0-9_]+_t)/' $(srctree)/include/uapi/linux/dvb/frontend.h)
|
||||
$(shell perl -ne 'print "$$1 " if /^typedef\s+.*\s+(\S+)\;/' $(srctree)/include/uapi/linux/videodev2.h) \
|
||||
$(shell perl -ne 'print "$$1 " if /^typedef\s+.*\s+(\S+)\;/' $(srctree)/include/uapi/linux/dvb/frontend.h)
|
||||
|
||||
ENUMS = \
|
||||
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/videodev2.h) \
|
||||
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/dvb/audio.h) \
|
||||
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/dvb/ca.h) \
|
||||
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/dvb/dmx.h) \
|
||||
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/dvb/frontend.h) \
|
||||
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/dvb/net.h) \
|
||||
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/dvb/video.h) \
|
||||
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/media.h) \
|
||||
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/v4l2-mediabus.h) \
|
||||
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/v4l2-subdev.h)
|
||||
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' \
|
||||
$(srctree)/include/uapi/linux/videodev2.h \
|
||||
$(srctree)/include/uapi/linux/dvb/audio.h \
|
||||
$(srctree)/include/uapi/linux/dvb/ca.h \
|
||||
$(srctree)/include/uapi/linux/dvb/dmx.h \
|
||||
$(srctree)/include/uapi/linux/dvb/frontend.h \
|
||||
$(srctree)/include/uapi/linux/dvb/net.h \
|
||||
$(srctree)/include/uapi/linux/dvb/video.h \
|
||||
$(srctree)/include/uapi/linux/media.h \
|
||||
$(srctree)/include/uapi/linux/v4l2-mediabus.h \
|
||||
$(srctree)/include/uapi/linux/v4l2-subdev.h)
|
||||
|
||||
ENUM_DEFS = \
|
||||
$(shell perl -e 'open IN,"cat @ARGV| cpp -fpreprocessed |"; while (<IN>) { if ($$enum) {print "$$1\n" if (/\s*([A-Z]\S+)\b/); } $$enum = 0 if ($$enum && /^\}/); $$enum = 1 if(/^\s*enum\s/); }; close IN;' \
|
||||
$(srctree)/include/uapi/linux/dvb/dmx.h \
|
||||
$(srctree)/include/uapi/linux/dvb/frontend.h)
|
||||
|
||||
STRUCTS = \
|
||||
$(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/videodev2.h) \
|
||||
@ -95,7 +97,7 @@ STRUCTS = \
|
||||
$(shell perl -ne 'print "$$1 " if (/^struct\s+([^\s]+)\s+/)' $(srctree)/include/uapi/linux/dvb/ca.h) \
|
||||
$(shell perl -ne 'print "$$1 " if (/^struct\s+([^\s]+)\s+/)' $(srctree)/include/uapi/linux/dvb/dmx.h) \
|
||||
$(shell perl -ne 'print "$$1 " if (!/dtv\_cmds\_h/ && /^struct\s+([^\s]+)\s+/)' $(srctree)/include/uapi/linux/dvb/frontend.h) \
|
||||
$(shell perl -ne 'print "$$1 " if (/^struct\s+([A-Z][^\s]+)\s+/)' $(srctree)/include/uapi/linux/dvb/net.h) \
|
||||
$(shell perl -ne 'print "$$1 " if (/^struct\s+([^\s]+)\s+/ && !/_old/)' $(srctree)/include/uapi/linux/dvb/net.h) \
|
||||
$(shell perl -ne 'print "$$1 " if (/^struct\s+([^\s]+)\s+/)' $(srctree)/include/uapi/linux/dvb/video.h) \
|
||||
$(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/media.h) \
|
||||
$(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/v4l2-subdev.h) \
|
||||
@ -179,7 +181,6 @@ DOCUMENTED = \
|
||||
-e "s/v4l2\-mpeg\-vbi\-ITV0/v4l2-mpeg-vbi-itv0-1/g"
|
||||
|
||||
DVB_DOCUMENTED = \
|
||||
-e "s/\(linkend\=\"\)FE_SET_PROPERTY/\1FE_GET_PROPERTY/g" \
|
||||
-e "s,\(struct\s\+\)\([a-z0-9_]\+\)\(\s\+{\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
|
||||
-e "s,\(}\s\+\)\([a-z0-9_]\+_t\+\),\1\<link linkend=\"\2\">\2\<\/link\>,g" \
|
||||
-e "s,\(define\s\+\)\(DTV_[A-Z0-9_]\+\)\(\s\+[0-9]\+\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
|
||||
@ -188,14 +189,17 @@ DVB_DOCUMENTED = \
|
||||
-e "s,\(audio-mixer\|audio-karaoke\|audio-status\|ca-slot-info\|ca-descr-info\|ca-caps\|ca-msg\|ca-descr\|ca-pid\|dmx-filter\|dmx-caps\|video-system\|video-highlight\|video-spu\|video-spu-palette\|video-navi-pack\)-t,\1,g" \
|
||||
-e "s,DTV-ISDBT-LAYER[A-C],DTV-ISDBT-LAYER,g" \
|
||||
-e "s,\(define\s\+\)\([A-Z0-9_]\+\)\(\s\+_IO\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
|
||||
-e "s,\(define\s\+\)\(DTV_[A-Z0-9_]\+\)\(\s\+\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
|
||||
-e "s,<link\s\+linkend=\".*\">\(__.*_OLD\)<\/link>,\1,g" \
|
||||
-e "s/\(linkend\=\"\)FE_SET_PROPERTY/\1FE_GET_PROPERTY/g" \
|
||||
-e "s,<link\s\+linkend=\".*\">\(DTV_ISDBS_TS_ID_LEGACY\|DTV_MAX_COMMAND\|DTV_IOCTL_MAX_MSGS\)<\/link>,\1,g" \
|
||||
|
||||
#
|
||||
# Media targets and dependencies
|
||||
#
|
||||
|
||||
install_media_images = \
|
||||
$(Q)-cp $(OBJIMGFILES) $(MEDIA_SRC_DIR)/v4l/*.svg $(MEDIA_OBJ_DIR)/media_api
|
||||
$(Q)-cp $(OBJIMGFILES) $(MEDIA_SRC_DIR)/*.svg $(MEDIA_SRC_DIR)/v4l/*.svg $(MEDIA_OBJ_DIR)/media_api
|
||||
|
||||
$(MEDIA_OBJ_DIR)/%: $(MEDIA_SRC_DIR)/%.b64
|
||||
$(Q)base64 -d $< >$@
|
||||
@ -243,9 +247,14 @@ $(MEDIA_OBJ_DIR)/dmx.h.xml: $(srctree)/include/uapi/linux/dvb/dmx.h $(MEDIA_OBJ_
|
||||
@( \
|
||||
echo "<programlisting>") > $@
|
||||
@( \
|
||||
for ident in $(ENUM_DEFS) ; do \
|
||||
entity=`echo $$ident | tr _ -` ; \
|
||||
r="$$r s/([^\w\-])$$ident([^\w\-])/\1\&$$entity\;\2/g;";\
|
||||
done; \
|
||||
expand --tabs=8 < $< | \
|
||||
sed $(ESCAPE) $(DVB_DOCUMENTED) | \
|
||||
sed 's/i\.e\./&ie;/') >> $@
|
||||
sed 's/i\.e\./&ie;/' | \
|
||||
perl -ne "$$r print $$_;") >> $@
|
||||
@( \
|
||||
echo "</programlisting>") >> $@
|
||||
|
||||
@ -254,9 +263,14 @@ $(MEDIA_OBJ_DIR)/frontend.h.xml: $(srctree)/include/uapi/linux/dvb/frontend.h $(
|
||||
@( \
|
||||
echo "<programlisting>") > $@
|
||||
@( \
|
||||
for ident in $(ENUM_DEFS) ; do \
|
||||
entity=`echo $$ident | tr _ -` ; \
|
||||
r="$$r s/([^\w\-])$$ident([^\w\-])/\1\&$$entity\;\2/g;";\
|
||||
done; \
|
||||
expand --tabs=8 < $< | \
|
||||
sed $(ESCAPE) $(DVB_DOCUMENTED) | \
|
||||
sed 's/i\.e\./&ie;/') >> $@
|
||||
sed 's/i\.e\./&ie;/' | \
|
||||
perl -ne "$$r print $$_;") >> $@
|
||||
@( \
|
||||
echo "</programlisting>") >> $@
|
||||
|
||||
@ -298,11 +312,22 @@ $(MEDIA_OBJ_DIR)/media-entities.tmpl: $(MEDIA_OBJ_DIR)/v4l2.xml
|
||||
@( \
|
||||
echo -e "\n<!-- Ioctls -->") >>$@
|
||||
@( \
|
||||
for ident in $(IOCTLS) ; do \
|
||||
for ident in `echo $(IOCTLS) | sed -e "s,VIDIOC_RESERVED,,"`; do\
|
||||
entity=`echo $$ident | tr _ -` ; \
|
||||
id=`grep "<refname>$$ident" $(MEDIA_OBJ_DIR)/vidioc-*.xml $(MEDIA_OBJ_DIR)/media-ioc-*.xml | sed -r s,"^.*/(.*).xml.*","\1",` ; \
|
||||
echo "<!ENTITY $$entity \"<link" \
|
||||
id=`grep -e "<refname>$$ident" -e "<section id=\"$$ident\"" $$(find $(MEDIA_SRC_DIR) -name *.xml -type f)| sed -r s,"^.*/(.*).xml.*","\1",` ; \
|
||||
if [ "$$id" != "" ]; then echo "<!ENTITY $$entity \"<link" \
|
||||
"linkend='$$id'><constant>$$ident</constant></link>\">" \
|
||||
>>$@ ; else \
|
||||
echo "Warning: undocumented ioctl: $$ident. Please document it at the media DocBook!" >&2; \
|
||||
fi; \
|
||||
done)
|
||||
@( \
|
||||
echo -e "\n<!-- Defines -->") >>$@
|
||||
@( \
|
||||
for ident in $(DEFINES) ; do \
|
||||
entity=`echo $$ident | tr _ -` ; \
|
||||
echo "<!ENTITY $$entity \"<link" \
|
||||
"linkend='$$entity'><constant>$$ident</constant></link>\">" \
|
||||
>>$@ ; \
|
||||
done)
|
||||
@( \
|
||||
@ -322,6 +347,15 @@ $(MEDIA_OBJ_DIR)/media-entities.tmpl: $(MEDIA_OBJ_DIR)/v4l2.xml
|
||||
"linkend='$$entity'>$$ident</link>\">" >>$@ ; \
|
||||
done)
|
||||
@( \
|
||||
echo -e "\n<!-- Enum definitions -->") >>$@
|
||||
@( \
|
||||
for ident in $(ENUM_DEFS) ; do \
|
||||
entity=`echo $$ident | tr _ -` ; \
|
||||
echo "<!ENTITY $$entity \"<link" \
|
||||
"linkend='$$entity'><constant>$$ident</constant></link>\">" \
|
||||
>>$@ ; \
|
||||
done)
|
||||
@( \
|
||||
echo -e "\n<!-- Structures -->") >>$@
|
||||
@( \
|
||||
for ident in $(STRUCTS) ; do \
|
||||
|
@ -1,7 +1,7 @@
|
||||
<title>DVB Audio Device</title>
|
||||
<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
|
||||
ioctl definitions can be accessed by including <emphasis role="tt">linux/dvb/audio.h</emphasis> in your
|
||||
can be accessed through <constant>/dev/dvb/adapter?/audio?</constant>. Data types and and
|
||||
ioctl definitions can be accessed by including <constant>linux/dvb/audio.h</constant> in your
|
||||
application.
|
||||
</para>
|
||||
<para>Please note that some DVB cards don’t have their own MPEG decoder, which results in
|
||||
@ -32,7 +32,7 @@ typedef enum {
|
||||
</programlisting>
|
||||
<para>AUDIO_SOURCE_DEMUX selects the demultiplexer (fed either by the frontend or the
|
||||
DVR device) as the source of the video stream. If AUDIO_SOURCE_MEMORY
|
||||
is selected the stream comes from the application through the <emphasis role="tt">write()</emphasis> system
|
||||
is selected the stream comes from the application through the <constant>write()</constant> system
|
||||
call.
|
||||
</para>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<title>DVB CA Device</title>
|
||||
<para>The DVB CA device controls the conditional access hardware. It can be accessed through
|
||||
<emphasis role="tt">/dev/dvb/adapter0/ca0</emphasis>. Data types and and ioctl definitions can be accessed by
|
||||
including <emphasis role="tt">linux/dvb/ca.h</emphasis> in your application.
|
||||
<constant>/dev/dvb/adapter?/ca?</constant>. Data types and and ioctl definitions can be accessed by
|
||||
including <constant>linux/dvb/ca.h</constant> in your application.
|
||||
</para>
|
||||
|
||||
<section id="ca_data_types">
|
||||
|
@ -1,33 +1,50 @@
|
||||
<title>DVB Demux Device</title>
|
||||
|
||||
<para>The DVB demux device controls the filters of the DVB hardware/software. It can be
|
||||
accessed through <emphasis role="tt">/dev/adapter0/demux0</emphasis>. Data types and and ioctl definitions can be
|
||||
accessed by including <emphasis role="tt">linux/dvb/dmx.h</emphasis> in your application.
|
||||
accessed through <constant>/dev/adapter?/demux?</constant>. Data types and and ioctl definitions can be
|
||||
accessed by including <constant>linux/dvb/dmx.h</constant> in your application.
|
||||
</para>
|
||||
<section id="dmx_types">
|
||||
<title>Demux Data Types</title>
|
||||
|
||||
<section id="dmx-output-t">
|
||||
<title>dmx_output_t</title>
|
||||
<programlisting>
|
||||
typedef enum
|
||||
{
|
||||
DMX_OUT_DECODER, /⋆ Streaming directly to decoder. ⋆/
|
||||
DMX_OUT_TAP, /⋆ Output going to a memory buffer ⋆/
|
||||
/⋆ (to be retrieved via the read command).⋆/
|
||||
DMX_OUT_TS_TAP, /⋆ Output multiplexed into a new TS ⋆/
|
||||
/⋆ (to be retrieved by reading from the ⋆/
|
||||
/⋆ logical DVR device). ⋆/
|
||||
DMX_OUT_TSDEMUX_TAP /⋆ Like TS_TAP but retrieved from the DMX device ⋆/
|
||||
} dmx_output_t;
|
||||
</programlisting>
|
||||
<para><emphasis role="tt">DMX_OUT_TAP</emphasis> delivers the stream output to the demux device on which the ioctl is
|
||||
called.
|
||||
</para>
|
||||
<para><emphasis role="tt">DMX_OUT_TS_TAP</emphasis> routes output to the logical DVR device <emphasis role="tt">/dev/dvb/adapter0/dvr0</emphasis>,
|
||||
which delivers a TS multiplexed from all filters for which <emphasis role="tt">DMX_OUT_TS_TAP</emphasis> was
|
||||
specified.
|
||||
</para>
|
||||
<title>Output for the demux</title>
|
||||
|
||||
<table pgwide="1" frame="none" id="dmx-output">
|
||||
<title>enum dmx_output</title>
|
||||
<tgroup cols="2">
|
||||
&cs-def;
|
||||
<thead>
|
||||
<row>
|
||||
<entry>ID</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry align="char" id="DMX-OUT-DECODER">DMX_OUT_DECODER</entry>
|
||||
<entry>Streaming directly to decoder.</entry>
|
||||
</row><row>
|
||||
<entry align="char" id="DMX-OUT-TAP">DMX_OUT_TAP</entry>
|
||||
<entry>Output going to a memory buffer (to be retrieved via the
|
||||
read command). Delivers the stream output to the demux
|
||||
device on which the ioctl is called.</entry>
|
||||
</row><row>
|
||||
<entry align="char" id="DMX-OUT-TS-TAP">DMX_OUT_TS_TAP</entry>
|
||||
<entry>Output multiplexed into a new TS (to be retrieved by
|
||||
reading from the logical DVR device). Routes output to the
|
||||
logical DVR device <constant>/dev/dvb/adapter?/dvr?</constant>,
|
||||
which delivers a TS multiplexed from all filters for which
|
||||
<constant>DMX_OUT_TS_TAP</constant> was specified.</entry>
|
||||
</row><row>
|
||||
<entry align="char" id="DMX-OUT-TSDEMUX-TAP">DMX_OUT_TSDEMUX_TAP</entry>
|
||||
<entry>Like &DMX-OUT-TS-TAP; but retrieved from the DMX
|
||||
device.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
</section>
|
||||
|
||||
<section id="dmx-input-t">
|
||||
|
@ -28,12 +28,22 @@
|
||||
<holder>Convergence GmbH</holder>
|
||||
</copyright>
|
||||
<copyright>
|
||||
<year>2009-2014</year>
|
||||
<year>2009-2015</year>
|
||||
<holder>Mauro Carvalho Chehab</holder>
|
||||
</copyright>
|
||||
|
||||
<revhistory>
|
||||
<!-- Put document revisions here, newest first. -->
|
||||
<revision>
|
||||
<revnumber>2.1.0</revnumber>
|
||||
<date>2015-05-29</date>
|
||||
<authorinitials>mcc</authorinitials>
|
||||
<revremark>
|
||||
DocBook improvements and cleanups, in order to document the
|
||||
system calls on a more standard way and provide more description
|
||||
about the current DVB API.
|
||||
</revremark>
|
||||
</revision>
|
||||
<revision>
|
||||
<revnumber>2.0.4</revnumber>
|
||||
<date>2011-05-06</date>
|
||||
@ -95,18 +105,26 @@ Added ISDB-T test originally written by Patrick Boettcher
|
||||
<chapter id="dvb_demux">
|
||||
&sub-demux;
|
||||
</chapter>
|
||||
<chapter id="dvb_video">
|
||||
&sub-video;
|
||||
</chapter>
|
||||
<chapter id="dvb_audio">
|
||||
&sub-audio;
|
||||
</chapter>
|
||||
<chapter id="dvb_ca">
|
||||
&sub-ca;
|
||||
</chapter>
|
||||
<chapter id="dvb_net">
|
||||
<chapter id="net">
|
||||
&sub-net;
|
||||
</chapter>
|
||||
<chapter id="legacy_dvb_apis">
|
||||
<title>DVB Deprecated APIs</title>
|
||||
<para>The APIs described here are kept only for historical reasons. There's
|
||||
just one driver for a very legacy hardware that uses this API. No
|
||||
modern drivers should use it. Instead, audio and video should be using
|
||||
the V4L2 and ALSA APIs, and the pipelines should be set using the
|
||||
Media Controller API</para>
|
||||
<section id="dvb_video">
|
||||
&sub-video;
|
||||
</section>
|
||||
<section id="dvb_audio">
|
||||
&sub-audio;
|
||||
</section>
|
||||
</chapter>
|
||||
<chapter id="dvb_kdapi">
|
||||
&sub-kdapi;
|
||||
</chapter>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,10 @@
|
||||
<title>Examples</title>
|
||||
<para>In this section we would like to present some examples for using the DVB API.
|
||||
</para>
|
||||
<para>Maintainer note: This section is out of date. Please refer to the sample programs packaged
|
||||
with the driver distribution from <ulink url="http://linuxtv.org/hg/dvb-apps" />.
|
||||
<para>NOTE: This section is out of date, and the code below won't even
|
||||
compile. Please refer to the
|
||||
<ulink url="http://linuxtv.org/docs/libdvbv5/index.html">libdvbv5</ulink>
|
||||
for updated/recommended examples.
|
||||
</para>
|
||||
|
||||
<section id="tuning">
|
||||
|
@ -0,0 +1,78 @@
|
||||
<refentry id="FE_DISEQC_RECV_SLAVE_REPLY">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl FE_DISEQC_RECV_SLAVE_REPLY</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>FE_DISEQC_RECV_SLAVE_REPLY</refname>
|
||||
<refpurpose>Receives reply from a DiSEqC 2.0 command</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>ioctl</function></funcdef>
|
||||
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||
<paramdef>int <parameter>request</parameter></paramdef>
|
||||
<paramdef>struct dvb_diseqc_slave_reply *<parameter>argp</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>&fe_fd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>FE_DISEQC_RECV_SLAVE_REPLY</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>argp</parameter></term>
|
||||
<listitem>
|
||||
<para>pointer to &dvb-diseqc-slave-reply;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>Receives reply from a DiSEqC 2.0 command.</para>
|
||||
&return-value-dvb;
|
||||
|
||||
<table pgwide="1" frame="none" id="dvb-diseqc-slave-reply">
|
||||
<title>struct <structname>dvb_diseqc_slave_reply</structname></title>
|
||||
<tgroup cols="3">
|
||||
&cs-str;
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry>uint8_t</entry>
|
||||
<entry>msg[4]</entry>
|
||||
<entry>DiSEqC message (framing, data[3])</entry>
|
||||
</row><row>
|
||||
<entry>uint8_t</entry>
|
||||
<entry>msg_len</entry>
|
||||
<entry>Length of the DiSEqC message. Valid values are 0 to 4,
|
||||
where 0 means no msg</entry>
|
||||
</row><row>
|
||||
<entry>int</entry>
|
||||
<entry>timeout</entry>
|
||||
<entry>Return from ioctl after timeout ms with errorcode when no
|
||||
message was received</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
</refsect1>
|
||||
</refentry>
|
51
Documentation/DocBook/media/dvb/fe-diseqc-reset-overload.xml
Normal file
51
Documentation/DocBook/media/dvb/fe-diseqc-reset-overload.xml
Normal file
@ -0,0 +1,51 @@
|
||||
<refentry id="FE_DISEQC_RESET_OVERLOAD">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl FE_DISEQC_RESET_OVERLOAD</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>FE_DISEQC_RESET_OVERLOAD</refname>
|
||||
<refpurpose>Restores the power to the antenna subsystem, if it was powered
|
||||
off due to power overload.</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>ioctl</function></funcdef>
|
||||
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||
<paramdef>int <parameter>request</parameter></paramdef>
|
||||
<paramdef>NULL</paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>&fe_fd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>FE_DISEQC_RESET_OVERLOAD</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>If the bus has been automatically powered off due to power overload, this ioctl
|
||||
call restores the power to the bus. The call requires read/write access to the
|
||||
device. This call has no effect if the device is manually powered off. Not all
|
||||
DVB adapters support this ioctl.</para>
|
||||
&return-value-dvb;
|
||||
</refsect1>
|
||||
</refentry>
|
89
Documentation/DocBook/media/dvb/fe-diseqc-send-burst.xml
Normal file
89
Documentation/DocBook/media/dvb/fe-diseqc-send-burst.xml
Normal file
@ -0,0 +1,89 @@
|
||||
<refentry id="FE_DISEQC_SEND_BURST">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl FE_DISEQC_SEND_BURST</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>FE_DISEQC_SEND_BURST</refname>
|
||||
<refpurpose>Sends a 22KHz tone burst for 2x1 mini DiSEqC satellite selection.</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>ioctl</function></funcdef>
|
||||
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||
<paramdef>int <parameter>request</parameter></paramdef>
|
||||
<paramdef>enum fe_sec_mini_cmd *<parameter>tone</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>&fe_fd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>FE_DISEQC_SEND_BURST</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>tone</parameter></term>
|
||||
<listitem>
|
||||
<para>pointer to &fe-sec-mini-cmd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>This ioctl is used to set the generation of a 22kHz tone burst for mini
|
||||
DiSEqC satellite
|
||||
selection for 2x1 switches.
|
||||
This call requires read/write permissions.</para>
|
||||
<para>It provides support for what's specified at
|
||||
<ulink url="http://www.eutelsat.com/files/contributed/satellites/pdf/Diseqc/associated%20docs/simple_tone_burst_detec.pdf">Digital Satellite Equipment Control
|
||||
(DiSEqC) - Simple "ToneBurst" Detection Circuit specification.</ulink>
|
||||
</para>
|
||||
&return-value-dvb;
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="fe-sec-mini-cmd-t">
|
||||
<title>enum fe_sec_mini_cmd</title>
|
||||
|
||||
<table pgwide="1" frame="none" id="fe-sec-mini-cmd">
|
||||
<title>enum fe_sec_mini_cmd</title>
|
||||
<tgroup cols="2">
|
||||
&cs-def;
|
||||
<thead>
|
||||
<row>
|
||||
<entry>ID</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry align="char" id="SEC-MINI-A"><constant>SEC_MINI_A</constant></entry>
|
||||
<entry align="char">Sends a mini-DiSEqC 22kHz '0' Tone Burst to
|
||||
select satellite-A</entry>
|
||||
</row><row>
|
||||
<entry align="char" id="SEC-MINI-B"><constant>SEC_MINI_B</constant></entry>
|
||||
<entry align="char">Sends a mini-DiSEqC 22kHz '1' Data Burst to
|
||||
select satellite-B</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
@ -0,0 +1,72 @@
|
||||
<refentry id="FE_DISEQC_SEND_MASTER_CMD">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl FE_DISEQC_SEND_MASTER_CMD</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>FE_DISEQC_SEND_MASTER_CMD</refname>
|
||||
<refpurpose>Sends a DiSEqC command</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>ioctl</function></funcdef>
|
||||
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||
<paramdef>int <parameter>request</parameter></paramdef>
|
||||
<paramdef>struct dvb_diseqc_master_cmd *<parameter>argp</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>&fe_fd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>FE_DISEQC_SEND_MASTER_CMD</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>argp</parameter></term>
|
||||
<listitem>
|
||||
<para>pointer to &dvb-diseqc-master-cmd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>Sends a DiSEqC command to the antenna subsystem.</para>
|
||||
&return-value-dvb;
|
||||
|
||||
<table pgwide="1" frame="none" id="dvb-diseqc-master-cmd">
|
||||
<title>struct <structname>dvb_diseqc_master_cmd</structname></title>
|
||||
<tgroup cols="3">
|
||||
&cs-str;
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry>uint8_t</entry>
|
||||
<entry>msg[6]</entry>
|
||||
<entry>DiSEqC message (framing, address, command, data[3])</entry>
|
||||
</row><row>
|
||||
<entry>uint8_t</entry>
|
||||
<entry>msg_len</entry>
|
||||
<entry>Length of the DiSEqC message. Valid values are 3 to 6</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
</refsect1>
|
||||
</refentry>
|
@ -0,0 +1,61 @@
|
||||
<refentry id="FE_ENABLE_HIGH_LNB_VOLTAGE">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl FE_ENABLE_HIGH_LNB_VOLTAGE</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>FE_ENABLE_HIGH_LNB_VOLTAGE</refname>
|
||||
<refpurpose>Select output DC level between normal LNBf voltages or higher
|
||||
LNBf voltages.</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>ioctl</function></funcdef>
|
||||
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||
<paramdef>int <parameter>request</parameter></paramdef>
|
||||
<paramdef>unsigned int <parameter>high</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>&fe_fd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>FE_ENABLE_HIGH_LNB_VOLTAGE</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>high</parameter></term>
|
||||
<listitem>
|
||||
<para>Valid flags:</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>0 - normal 13V and 18V.</para></listitem>
|
||||
<listitem><para>>0 - enables slightly higher voltages instead of
|
||||
13/18V, in order to compensate for long antenna cables.</para></listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>Select output DC level between normal LNBf voltages or higher
|
||||
LNBf voltages between 0 (normal) or a value grater than 0 for higher
|
||||
voltages.</para>
|
||||
&return-value-dvb;
|
||||
</refsect1>
|
||||
</refentry>
|
266
Documentation/DocBook/media/dvb/fe-get-info.xml
Normal file
266
Documentation/DocBook/media/dvb/fe-get-info.xml
Normal file
@ -0,0 +1,266 @@
|
||||
<refentry id="FE_GET_INFO">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl FE_GET_INFO</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>FE_GET_INFO</refname>
|
||||
<refpurpose>Query DVB frontend capabilities and returns information about
|
||||
the front-end. This call only requires read-only access to the device</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>ioctl</function></funcdef>
|
||||
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||
<paramdef>int <parameter>request</parameter></paramdef>
|
||||
<paramdef>struct dvb_frontend_info *<parameter>argp</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>&fe_fd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>FE_GET_INFO</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>argp</parameter></term>
|
||||
<listitem>
|
||||
<para>pointer to struct &dvb-frontend-info;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>All DVB frontend devices support the
|
||||
<constant>FE_GET_INFO</constant> ioctl. It is used to identify
|
||||
kernel devices compatible with this specification and to obtain
|
||||
information about driver and hardware capabilities. The ioctl takes a
|
||||
pointer to dvb_frontend_info which is filled by the driver. When the
|
||||
driver is not compatible with this specification the ioctl returns an error.
|
||||
</para>
|
||||
&return-value-dvb;
|
||||
|
||||
<table pgwide="1" frame="none" id="dvb-frontend-info">
|
||||
<title>struct <structname>dvb_frontend_info</structname></title>
|
||||
<tgroup cols="3">
|
||||
&cs-str;
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry>char</entry>
|
||||
<entry>name[128]</entry>
|
||||
<entry>Name of the frontend</entry>
|
||||
</row><row>
|
||||
<entry>fe_type_t</entry>
|
||||
<entry>type</entry>
|
||||
<entry><emphasis role="bold">DEPRECATED</emphasis>. DVBv3 type. Should not be used on modern programs, as a
|
||||
frontend may have more than one type. So, the DVBv5 API should
|
||||
be used instead to enumerate and select the frontend type.</entry>
|
||||
</row><row>
|
||||
<entry>uint32_t</entry>
|
||||
<entry>frequency_min</entry>
|
||||
<entry>Minimal frequency supported by the frontend</entry>
|
||||
</row><row>
|
||||
<entry>uint32_t</entry>
|
||||
<entry>frequency_max</entry>
|
||||
<entry>Maximal frequency supported by the frontend</entry>
|
||||
</row><row>
|
||||
<entry>uint32_t</entry>
|
||||
<entry>frequency_stepsize</entry>
|
||||
<entry>Frequency step - all frequencies are multiple of this value</entry>
|
||||
</row><row>
|
||||
<entry>uint32_t</entry>
|
||||
<entry>frequency_tolerance</entry>
|
||||
<entry>Tolerance of the frequency</entry>
|
||||
</row><row>
|
||||
<entry>uint32_t</entry>
|
||||
<entry>symbol_rate_min</entry>
|
||||
<entry>Minimal symbol rate (for Cable/Satellite systems), in bauds</entry>
|
||||
</row><row>
|
||||
<entry>uint32_t</entry>
|
||||
<entry>symbol_rate_max</entry>
|
||||
<entry>Maximal symbol rate (for Cable/Satellite systems), in bauds</entry>
|
||||
</row><row>
|
||||
<entry>uint32_t</entry>
|
||||
<entry>symbol_rate_tolerance</entry>
|
||||
<entry>Maximal symbol rate tolerance, in ppm</entry>
|
||||
</row><row>
|
||||
<entry>uint32_t</entry>
|
||||
<entry>notifier_delay</entry>
|
||||
<entry><emphasis role="bold">DEPRECATED</emphasis>. Not used by any driver.</entry>
|
||||
</row><row>
|
||||
<entry>&fe-caps;</entry>
|
||||
<entry>caps</entry>
|
||||
<entry>Capabilities supported by the frontend</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>NOTE: The frequencies are specified in Hz for Terrestrial and Cable
|
||||
systems. They're specified in kHz for Satellite systems</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="fe-caps-t">
|
||||
<title>frontend capabilities</title>
|
||||
|
||||
<para>Capabilities describe what a frontend can do. Some capabilities are
|
||||
supported only on some specific frontend types.</para>
|
||||
|
||||
<table pgwide="1" frame="none" id="fe-caps">
|
||||
<title>enum fe_caps</title>
|
||||
<tgroup cols="2">
|
||||
&cs-def;
|
||||
<thead>
|
||||
<row>
|
||||
<entry>ID</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry id="FE-IS-STUPID"><constant>FE_IS_STUPID</constant></entry>
|
||||
<entry>There's something wrong at the frontend, and it can't
|
||||
report its capabilities</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-INVERSION-AUTO"><constant>FE_CAN_INVERSION_AUTO</constant></entry>
|
||||
<entry>The frontend is capable of auto-detecting inversion</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-FEC-1-2"><constant>FE_CAN_FEC_1_2</constant></entry>
|
||||
<entry>The frontend supports FEC 1/2</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-FEC-2-3"><constant>FE_CAN_FEC_2_3</constant></entry>
|
||||
<entry>The frontend supports FEC 2/3</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-FEC-3-4"><constant>FE_CAN_FEC_3_4</constant></entry>
|
||||
<entry>The frontend supports FEC 3/4</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-FEC-4-5"><constant>FE_CAN_FEC_4_5</constant></entry>
|
||||
<entry>The frontend supports FEC 4/5</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-FEC-5-6"><constant>FE_CAN_FEC_5_6</constant></entry>
|
||||
<entry>The frontend supports FEC 5/6</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-FEC-6-7"><constant>FE_CAN_FEC_6_7</constant></entry>
|
||||
<entry>The frontend supports FEC 6/7</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-FEC-7-8"><constant>FE_CAN_FEC_7_8</constant></entry>
|
||||
<entry>The frontend supports FEC 7/8</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-FEC-8-9"><constant>FE_CAN_FEC_8_9</constant></entry>
|
||||
<entry>The frontend supports FEC 8/9</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-FEC-AUTO"><constant>FE_CAN_FEC_AUTO</constant></entry>
|
||||
<entry>The frontend can autodetect FEC.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-QPSK"><constant>FE_CAN_QPSK</constant></entry>
|
||||
<entry>The frontend supports QPSK modulation</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-QAM-16"><constant>FE_CAN_QAM_16</constant></entry>
|
||||
<entry>The frontend supports 16-QAM modulation</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-QAM-32"><constant>FE_CAN_QAM_32</constant></entry>
|
||||
<entry>The frontend supports 32-QAM modulation</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-QAM-64"><constant>FE_CAN_QAM_64</constant></entry>
|
||||
<entry>The frontend supports 64-QAM modulation</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-QAM-128"><constant>FE_CAN_QAM_128</constant></entry>
|
||||
<entry>The frontend supports 128-QAM modulation</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-QAM-256"><constant>FE_CAN_QAM_256</constant></entry>
|
||||
<entry>The frontend supports 256-QAM modulation</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-QAM-AUTO"><constant>FE_CAN_QAM_AUTO</constant></entry>
|
||||
<entry>The frontend can autodetect modulation</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-TRANSMISSION-MODE-AUTO"><constant>FE_CAN_TRANSMISSION_MODE_AUTO</constant></entry>
|
||||
<entry>The frontend can autodetect the transmission mode</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-BANDWIDTH-AUTO"><constant>FE_CAN_BANDWIDTH_AUTO</constant></entry>
|
||||
<entry>The frontend can autodetect the bandwidth</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-GUARD-INTERVAL-AUTO"><constant>FE_CAN_GUARD_INTERVAL_AUTO</constant></entry>
|
||||
<entry>The frontend can autodetect the guard interval</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-HIERARCHY-AUTO"><constant>FE_CAN_HIERARCHY_AUTO</constant></entry>
|
||||
<entry>The frontend can autodetect hierarch</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-8VSB"><constant>FE_CAN_8VSB</constant></entry>
|
||||
<entry>The frontend supports 8-VSB modulation</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-16VSB"><constant>FE_CAN_16VSB</constant></entry>
|
||||
<entry>The frontend supports 16-VSB modulation</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-HAS-EXTENDED-CAPS"><constant>FE_HAS_EXTENDED_CAPS</constant></entry>
|
||||
<entry>Currently, unused</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-MULTISTREAM"><constant>FE_CAN_MULTISTREAM</constant></entry>
|
||||
<entry>The frontend supports multistream filtering</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-TURBO-FEC"><constant>FE_CAN_TURBO_FEC</constant></entry>
|
||||
<entry>The frontend supports turbo FEC modulation</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-2G-MODULATION"><constant>FE_CAN_2G_MODULATION</constant></entry>
|
||||
<entry>The frontend supports "2nd generation modulation" (DVB-S2/T2)></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-NEEDS-BENDING"><constant>FE_NEEDS_BENDING</constant></entry>
|
||||
<entry>Not supported anymore, don't use it</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-RECOVER"><constant>FE_CAN_RECOVER</constant></entry>
|
||||
<entry>The frontend can recover from a cable unplug automatically</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-CAN-MUTE-TS"><constant>FE_CAN_MUTE_TS</constant></entry>
|
||||
<entry>The frontend can stop spurious TS data output</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</refsect1>
|
||||
</refentry>
|
81
Documentation/DocBook/media/dvb/fe-get-property.xml
Normal file
81
Documentation/DocBook/media/dvb/fe-get-property.xml
Normal file
@ -0,0 +1,81 @@
|
||||
<refentry id="FE_GET_PROPERTY">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl FE_SET_PROPERTY, FE_GET_PROPERTY</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>FE_SET_PROPERTY</refname>
|
||||
<refname>FE_GET_PROPERTY</refname>
|
||||
<refpurpose>FE_SET_PROPERTY sets one or more frontend properties.
|
||||
FE_GET_PROPERTY returns one or more frontend properties.</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>ioctl</function></funcdef>
|
||||
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||
<paramdef>int <parameter>request</parameter></paramdef>
|
||||
<paramdef>struct dtv_properties *<parameter>argp</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>&fe_fd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>FE_SET_PROPERTY, FE_GET_PROPERTY</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>argp</parameter></term>
|
||||
<listitem>
|
||||
<para>pointer to &dtv-properties;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>All DVB frontend devices support the
|
||||
<constant>FE_SET_PROPERTY</constant> and <constant>FE_GET_PROPERTY</constant>
|
||||
ioctls. The supported properties and statistics depends on the delivery system
|
||||
and on the device:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><constant>FE_SET_PROPERTY:</constant></para>
|
||||
<itemizedlist>
|
||||
<listitem><para>This ioctl is used to set one or more
|
||||
frontend properties.</para></listitem>
|
||||
<listitem><para>This is the basic command to request the frontend to tune into some
|
||||
frequency and to start decoding the digital TV signal.</para></listitem>
|
||||
<listitem><para>This call requires read/write access to the device.</para></listitem>
|
||||
<listitem><para>At return, the values are updated to reflect the
|
||||
actual parameters used.</para></listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><constant>FE_GET_PROPERTY:</constant></para>
|
||||
<itemizedlist>
|
||||
<listitem><para>This ioctl is used to get properties and
|
||||
statistics from the frontend.</para></listitem>
|
||||
<listitem><para>No properties are changed, and statistics aren't reset.</para></listitem>
|
||||
<listitem><para>This call only requires read-only access to the device.</para></listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
&return-value-dvb;
|
||||
</refsect1>
|
||||
</refentry>
|
107
Documentation/DocBook/media/dvb/fe-read-status.xml
Normal file
107
Documentation/DocBook/media/dvb/fe-read-status.xml
Normal file
@ -0,0 +1,107 @@
|
||||
<refentry id="FE_READ_STATUS">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl FE_READ_STATUS</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>FE_READ_STATUS</refname>
|
||||
<refpurpose>Returns status information about the front-end. This call only
|
||||
requires read-only access to the device</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>ioctl</function></funcdef>
|
||||
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||
<paramdef>int <parameter>request</parameter></paramdef>
|
||||
<paramdef>unsigned int *<parameter>status</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>&fe_fd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>FE_READ_STATUS</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>status</parameter></term>
|
||||
<listitem>
|
||||
<para>pointer to a bitmask integer filled with the values defined by
|
||||
&fe-status;.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>All DVB frontend devices support the
|
||||
<constant>FE_READ_STATUS</constant> ioctl. It is used to check about the
|
||||
locking status of the frontend after being tuned. The ioctl takes a
|
||||
pointer to an integer where the status will be written.
|
||||
</para>
|
||||
<para>NOTE: the size of status is actually sizeof(enum fe_status), with varies
|
||||
according with the architecture. This needs to be fixed in the future.</para>
|
||||
&return-value-dvb;
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="fe-status-t">
|
||||
<title>int fe_status</title>
|
||||
|
||||
<para>The fe_status parameter is used to indicate the current state
|
||||
and/or state changes of the frontend hardware. It is produced using
|
||||
the &fe-status; values on a bitmask</para>
|
||||
|
||||
<table pgwide="1" frame="none" id="fe-status">
|
||||
<title>enum fe_status</title>
|
||||
<tgroup cols="2">
|
||||
&cs-def;
|
||||
<thead>
|
||||
<row>
|
||||
<entry>ID</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry align="char" id="FE-HAS-SIGNAL"><constant>FE_HAS_SIGNAL</constant></entry>
|
||||
<entry align="char">The frontend has found something above the noise level</entry>
|
||||
</row><row>
|
||||
<entry align="char" id="FE-HAS-CARRIER"><constant>FE_HAS_CARRIER</constant></entry>
|
||||
<entry align="char">The frontend has found a DVB signal</entry>
|
||||
</row><row>
|
||||
<entry align="char" id="FE-HAS-VITERBI"><constant>FE_HAS_VITERBI</constant></entry>
|
||||
<entry align="char">The frontend FEC inner coding (Viterbi, LDPC or other inner code) is stable</entry>
|
||||
</row><row>
|
||||
<entry align="char" id="FE-HAS-SYNC"><constant>FE_HAS_SYNC</constant></entry>
|
||||
<entry align="char">Synchronization bytes was found</entry>
|
||||
</row><row>
|
||||
<entry align="char" id="FE-HAS-LOCK"><constant>FE_HAS_LOCK</constant></entry>
|
||||
<entry align="char">The DVB were locked and everything is working</entry>
|
||||
</row><row>
|
||||
<entry align="char" id="FE-TIMEDOUT"><constant>FE_TIMEDOUT</constant></entry>
|
||||
<entry align="char">no lock within the last about 2 seconds</entry>
|
||||
</row><row>
|
||||
<entry align="char" id="FE-REINIT"><constant>FE_REINIT</constant></entry>
|
||||
<entry align="char">The frontend was reinitialized, application is
|
||||
recommended to reset DiSEqC, tone and parameters</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</refsect1>
|
||||
</refentry>
|
@ -0,0 +1,64 @@
|
||||
<refentry id="FE_SET_FRONTEND_TUNE_MODE">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl FE_SET_FRONTEND_TUNE_MODE</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>FE_SET_FRONTEND_TUNE_MODE</refname>
|
||||
<refpurpose>Allow setting tuner mode flags to the frontend.</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>ioctl</function></funcdef>
|
||||
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||
<paramdef>int <parameter>request</parameter></paramdef>
|
||||
<paramdef>unsigned int <parameter>flags</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>&fe_fd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>FE_SET_FRONTEND_TUNE_MODE</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>flags</parameter></term>
|
||||
<listitem>
|
||||
<para>Valid flags:</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>0 - normal tune mode</para></listitem>
|
||||
<listitem><para>FE_TUNE_MODE_ONESHOT - When set, this flag will
|
||||
disable any zigzagging or other "normal" tuning behaviour.
|
||||
Additionally, there will be no automatic monitoring of the
|
||||
lock status, and hence no frontend events will be
|
||||
generated. If a frontend device is closed, this flag will
|
||||
be automatically turned off when the device is reopened
|
||||
read-write.</para></listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>Allow setting tuner mode flags to the frontend, between 0 (normal)
|
||||
or FE_TUNE_MODE_ONESHOT mode</para>
|
||||
&return-value-dvb;
|
||||
</refsect1>
|
||||
</refentry>
|
91
Documentation/DocBook/media/dvb/fe-set-tone.xml
Normal file
91
Documentation/DocBook/media/dvb/fe-set-tone.xml
Normal file
@ -0,0 +1,91 @@
|
||||
<refentry id="FE_SET_TONE">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl FE_SET_TONE</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>FE_SET_TONE</refname>
|
||||
<refpurpose>Sets/resets the generation of the continuous 22kHz tone.</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>ioctl</function></funcdef>
|
||||
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||
<paramdef>int <parameter>request</parameter></paramdef>
|
||||
<paramdef>enum fe_sec_tone_mode *<parameter>tone</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>&fe_fd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>FE_SET_TONE</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>tone</parameter></term>
|
||||
<listitem>
|
||||
<para>pointer to &fe-sec-tone-mode;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>This ioctl is used to set the generation of the continuous 22kHz tone.
|
||||
This call requires read/write permissions.</para>
|
||||
<para>Usually, satellite antenna subsystems require that the digital TV
|
||||
device to send a 22kHz tone in order to select between high/low band on
|
||||
some dual-band LNBf. It is also used to send signals to DiSEqC equipment,
|
||||
but this is done using the DiSEqC ioctls.</para>
|
||||
<para>NOTE: if more than one device is connected to the same antenna,
|
||||
setting a tone may interfere on other devices, as they may lose
|
||||
the capability of selecting the band. So, it is recommended that
|
||||
applications would change to SEC_TONE_OFF when the device is not used.</para>
|
||||
|
||||
&return-value-dvb;
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="fe-sec-tone-mode-t">
|
||||
<title>enum fe_sec_tone_mode</title>
|
||||
|
||||
<table pgwide="1" frame="none" id="fe-sec-tone-mode">
|
||||
<title>enum fe_sec_tone_mode</title>
|
||||
<tgroup cols="2">
|
||||
&cs-def;
|
||||
<thead>
|
||||
<row>
|
||||
<entry>ID</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry align="char" id="SEC-TONE-ON"><constant>SEC_TONE_ON</constant></entry>
|
||||
<entry align="char">Sends a 22kHz tone burst to the antenna</entry>
|
||||
</row><row>
|
||||
<entry align="char" id="SEC-TONE-OFF"><constant>SEC_TONE_OFF</constant></entry>
|
||||
<entry align="char">Don't send a 22kHz tone to the antenna
|
||||
(except if the FE_DISEQC_* ioctls are called)</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
69
Documentation/DocBook/media/dvb/fe-set-voltage.xml
Normal file
69
Documentation/DocBook/media/dvb/fe-set-voltage.xml
Normal file
@ -0,0 +1,69 @@
|
||||
<refentry id="FE_SET_VOLTAGE">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl FE_SET_VOLTAGE</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>FE_SET_VOLTAGE</refname>
|
||||
<refpurpose>Allow setting the DC level sent to the antenna subsystem.</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>ioctl</function></funcdef>
|
||||
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||
<paramdef>int <parameter>request</parameter></paramdef>
|
||||
<paramdef>enum fe_sec_voltage *<parameter>voltage</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>&fe_fd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>FE_SET_VOLTAGE</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>voltage</parameter></term>
|
||||
<listitem>
|
||||
<para>pointer to &fe-sec-voltage;</para>
|
||||
<para>Valid values are described at &fe-sec-voltage;.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>This ioctl allows to set the DC voltage level sent through the antenna
|
||||
cable to 13V, 18V or off.</para>
|
||||
<para>Usually, a satellite antenna subsystems require that the digital TV
|
||||
device to send a DC voltage to feed power to the LNBf. Depending on the
|
||||
LNBf type, the polarization or the intermediate frequency (IF) of the LNBf
|
||||
can controlled by the voltage level. Other devices (for example, the ones
|
||||
that implement DISEqC and multipoint LNBf's don't need to control the
|
||||
voltage level, provided that either 13V or 18V is sent to power up the
|
||||
LNBf.</para>
|
||||
<para>NOTE: if more than one device is connected to the same antenna,
|
||||
setting a voltage level may interfere on other devices, as they may lose
|
||||
the capability of setting polarization or IF. So, on those
|
||||
cases, setting the voltage to SEC_VOLTAGE_OFF while the device is not is
|
||||
used is recommended.</para>
|
||||
|
||||
&return-value-dvb;
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
File diff suppressed because it is too large
Load Diff
654
Documentation/DocBook/media/dvb/frontend_legacy_api.xml
Normal file
654
Documentation/DocBook/media/dvb/frontend_legacy_api.xml
Normal file
@ -0,0 +1,654 @@
|
||||
<section id="frontend_legacy_types">
|
||||
<title>Frontend Legacy Data Types</title>
|
||||
|
||||
<section id="fe-type-t">
|
||||
<title>Frontend type</title>
|
||||
|
||||
<para>For historical reasons, frontend types are named by the type of modulation
|
||||
used in transmission. The fontend types are given by fe_type_t type, defined as:</para>
|
||||
|
||||
<table pgwide="1" frame="none" id="fe-type">
|
||||
<title>Frontend types</title>
|
||||
<tgroup cols="3">
|
||||
&cs-def;
|
||||
<thead>
|
||||
<row>
|
||||
<entry>fe_type</entry>
|
||||
<entry>Description</entry>
|
||||
<entry><link linkend="DTV-DELIVERY-SYSTEM">DTV_DELIVERY_SYSTEM</link> equivalent type</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry id="FE-QPSK"><constant>FE_QPSK</constant></entry>
|
||||
<entry>For DVB-S standard</entry>
|
||||
<entry><constant>SYS_DVBS</constant></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-QAM"><constant>FE_QAM</constant></entry>
|
||||
<entry>For DVB-C annex A standard</entry>
|
||||
<entry><constant>SYS_DVBC_ANNEX_A</constant></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-OFDM"><constant>FE_OFDM</constant></entry>
|
||||
<entry>For DVB-T standard</entry>
|
||||
<entry><constant>SYS_DVBT</constant></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry id="FE-ATSC"><constant>FE_ATSC</constant></entry>
|
||||
<entry>For ATSC standard (terrestrial) or for DVB-C Annex B (cable) used in US.</entry>
|
||||
<entry><constant>SYS_ATSC</constant> (terrestrial) or <constant>SYS_DVBC_ANNEX_B</constant> (cable)</entry>
|
||||
</row>
|
||||
</tbody></tgroup></table>
|
||||
|
||||
<para>Newer formats like DVB-S2, ISDB-T, ISDB-S and DVB-T2 are not described at the above, as they're
|
||||
supported via the new <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY/FE_GET_SET_PROPERTY</link> ioctl's, using the <link linkend="DTV-DELIVERY-SYSTEM">DTV_DELIVERY_SYSTEM</link> parameter.
|
||||
</para>
|
||||
|
||||
<para>In the old days, &dvb-frontend-info; used to contain
|
||||
<constant>fe_type_t</constant> field to indicate the delivery systems,
|
||||
filled with either FE_QPSK, FE_QAM, FE_OFDM or FE_ATSC. While this is
|
||||
still filled to keep backward compatibility, the usage of this
|
||||
field is deprecated, as it can report just one delivery system, but some
|
||||
devices support multiple delivery systems. Please use
|
||||
<link linkend="DTV-ENUM-DELSYS">DTV_ENUM_DELSYS</link> instead.
|
||||
</para>
|
||||
<para>On devices that support multiple delivery systems,
|
||||
&dvb-frontend-info;::<constant>fe_type_t</constant> is filled with the
|
||||
currently standard, as selected by the last call to
|
||||
<link linkend="FE_GET_PROPERTY">FE_SET_PROPERTY</link>
|
||||
using the &DTV-DELIVERY-SYSTEM; property.</para>
|
||||
</section>
|
||||
|
||||
<section id="fe-bandwidth-t">
|
||||
<title>Frontend bandwidth</title>
|
||||
|
||||
<table pgwide="1" frame="none" id="fe-bandwidth">
|
||||
<title>enum fe_bandwidth</title>
|
||||
<tgroup cols="2">
|
||||
&cs-def;
|
||||
<thead>
|
||||
<row>
|
||||
<entry>ID</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry id="BANDWIDTH-AUTO"><constant>BANDWIDTH_AUTO</constant></entry>
|
||||
<entry>Autodetect bandwidth (if supported)</entry>
|
||||
</row><row>
|
||||
<entry id="BANDWIDTH-1-712-MHZ"><constant>BANDWIDTH_1_712_MHZ</constant></entry>
|
||||
<entry>1.712 MHz</entry>
|
||||
</row><row>
|
||||
<entry id="BANDWIDTH-5-MHZ"><constant>BANDWIDTH_5_MHZ</constant></entry>
|
||||
<entry>5 MHz</entry>
|
||||
</row><row>
|
||||
<entry id="BANDWIDTH-6-MHZ"><constant>BANDWIDTH_6_MHZ</constant></entry>
|
||||
<entry>6 MHz</entry>
|
||||
</row><row>
|
||||
<entry id="BANDWIDTH-7-MHZ"><constant>BANDWIDTH_7_MHZ</constant></entry>
|
||||
<entry>7 MHz</entry>
|
||||
</row><row>
|
||||
<entry id="BANDWIDTH-8-MHZ"><constant>BANDWIDTH_8_MHZ</constant></entry>
|
||||
<entry>8 MHz</entry>
|
||||
</row><row>
|
||||
<entry id="BANDWIDTH-10-MHZ"><constant>BANDWIDTH_10_MHZ</constant></entry>
|
||||
<entry>10 MHz</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
</section>
|
||||
|
||||
<section id="dvb-frontend-parameters">
|
||||
<title>frontend parameters</title>
|
||||
<para>The kind of parameters passed to the frontend device for tuning depend on
|
||||
the kind of hardware you are using.</para>
|
||||
<para>The struct <constant>dvb_frontend_parameters</constant> uses an
|
||||
union with specific per-system parameters. However, as newer delivery systems
|
||||
required more data, the structure size weren't enough to fit, and just
|
||||
extending its size would break the existing applications. So, those parameters
|
||||
were replaced by the usage of <link linkend="FE_GET_PROPERTY">
|
||||
<constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> ioctl's. The
|
||||
new API is flexible enough to add new parameters to existing delivery systems,
|
||||
and to add newer delivery systems.</para>
|
||||
<para>So, newer applications should use <link linkend="FE_GET_PROPERTY">
|
||||
<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,
|
||||
DVB-C2, ISDB, etc.</para>
|
||||
<para>All kinds of parameters are combined as an union in the FrontendParameters structure:
|
||||
<programlisting>
|
||||
struct dvb_frontend_parameters {
|
||||
uint32_t frequency; /⋆ (absolute) frequency in Hz for QAM/OFDM ⋆/
|
||||
/⋆ intermediate frequency in kHz for QPSK ⋆/
|
||||
&fe-spectral-inversion-t; inversion;
|
||||
union {
|
||||
struct dvb_qpsk_parameters qpsk;
|
||||
struct dvb_qam_parameters qam;
|
||||
struct dvb_ofdm_parameters ofdm;
|
||||
struct dvb_vsb_parameters vsb;
|
||||
} u;
|
||||
};
|
||||
</programlisting></para>
|
||||
<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
|
||||
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.
|
||||
</para>
|
||||
|
||||
<section id="dvb-qpsk-parameters">
|
||||
<title>QPSK parameters</title>
|
||||
<para>For satellite QPSK frontends you have to use the <constant>dvb_qpsk_parameters</constant> structure:</para>
|
||||
<programlisting>
|
||||
struct dvb_qpsk_parameters {
|
||||
uint32_t symbol_rate; /⋆ symbol rate in Symbols per second ⋆/
|
||||
&fe-code-rate-t; fec_inner; /⋆ forward error correction (see above) ⋆/
|
||||
};
|
||||
</programlisting>
|
||||
</section>
|
||||
|
||||
<section id="dvb-qam-parameters">
|
||||
<title>QAM parameters</title>
|
||||
<para>for cable QAM frontend you use the <constant>dvb_qam_parameters</constant> structure:</para>
|
||||
<programlisting>
|
||||
struct dvb_qam_parameters {
|
||||
uint32_t symbol_rate; /⋆ symbol rate in Symbols per second ⋆/
|
||||
&fe-code-rate-t; fec_inner; /⋆ forward error correction (see above) ⋆/
|
||||
&fe-modulation-t; modulation; /⋆ modulation type (see above) ⋆/
|
||||
};
|
||||
</programlisting>
|
||||
</section>
|
||||
|
||||
<section id="dvb-vsb-parameters">
|
||||
<title>VSB parameters</title>
|
||||
<para>ATSC frontends are supported by the <constant>dvb_vsb_parameters</constant> structure:</para>
|
||||
<programlisting>
|
||||
struct dvb_vsb_parameters {
|
||||
&fe-modulation-t; modulation; /⋆ modulation type (see above) ⋆/
|
||||
};
|
||||
</programlisting>
|
||||
</section>
|
||||
|
||||
<section id="dvb-ofdm-parameters">
|
||||
<title>OFDM parameters</title>
|
||||
<para>DVB-T frontends are supported by the <constant>dvb_ofdm_parameters</constant> structure:</para>
|
||||
<programlisting>
|
||||
struct dvb_ofdm_parameters {
|
||||
&fe-bandwidth-t; bandwidth;
|
||||
&fe-code-rate-t; code_rate_HP; /⋆ high priority stream code rate ⋆/
|
||||
&fe-code-rate-t; code_rate_LP; /⋆ low priority stream code rate ⋆/
|
||||
&fe-modulation-t; constellation; /⋆ modulation type (see above) ⋆/
|
||||
&fe-transmit-mode-t; transmission_mode;
|
||||
&fe-guard-interval-t; guard_interval;
|
||||
&fe-hierarchy-t; hierarchy_information;
|
||||
};
|
||||
</programlisting>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="dvb-frontend-event">
|
||||
<title>frontend events</title>
|
||||
<programlisting>
|
||||
struct dvb_frontend_event {
|
||||
fe_status_t status;
|
||||
struct dvb_frontend_parameters parameters;
|
||||
};
|
||||
</programlisting>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="frontend_legacy_fcalls">
|
||||
<title>Frontend Legacy Function Calls</title>
|
||||
|
||||
<para>Those functions are defined at DVB version 3. The support is kept in
|
||||
the kernel due to compatibility issues only. Their usage is strongly
|
||||
not recommended</para>
|
||||
|
||||
<section id="FE_READ_BER">
|
||||
<title>FE_READ_BER</title>
|
||||
<para>DESCRIPTION
|
||||
</para>
|
||||
<informaltable><tgroup cols="1"><tbody><row><entry
|
||||
align="char">
|
||||
<para>This ioctl call returns the bit error rate for the signal currently
|
||||
received/demodulated by the front-end. For this command, read-only access to
|
||||
the device is sufficient.</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 = <link linkend="FE_READ_BER">FE_READ_BER</link>,
|
||||
uint32_t ⋆ber);</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 <link linkend="FE_READ_BER">FE_READ_BER</link> for this command.</para>
|
||||
</entry>
|
||||
</row><row><entry
|
||||
align="char">
|
||||
<para>uint32_t *ber</para>
|
||||
</entry><entry
|
||||
align="char">
|
||||
<para>The bit error rate is stored into *ber.</para>
|
||||
</entry>
|
||||
</row></tbody></tgroup></informaltable>
|
||||
|
||||
&return-value-dvb;
|
||||
</section>
|
||||
|
||||
<section id="FE_READ_SNR">
|
||||
<title>FE_READ_SNR</title>
|
||||
|
||||
<para>DESCRIPTION
|
||||
</para>
|
||||
<informaltable><tgroup cols="1"><tbody><row><entry
|
||||
align="char">
|
||||
<para>This ioctl call returns the signal-to-noise ratio for the signal currently received
|
||||
by the front-end. For this command, read-only access to the device is sufficient.</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 = <link linkend="FE_READ_SNR">FE_READ_SNR</link>, uint16_t
|
||||
⋆snr);</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 <link linkend="FE_READ_SNR">FE_READ_SNR</link> for this command.</para>
|
||||
</entry>
|
||||
</row><row><entry
|
||||
align="char">
|
||||
<para>uint16_t *snr</para>
|
||||
</entry><entry
|
||||
align="char">
|
||||
<para>The signal-to-noise ratio is stored into *snr.</para>
|
||||
</entry>
|
||||
</row></tbody></tgroup></informaltable>
|
||||
|
||||
&return-value-dvb;
|
||||
</section>
|
||||
|
||||
<section id="FE_READ_SIGNAL_STRENGTH">
|
||||
<title>FE_READ_SIGNAL_STRENGTH</title>
|
||||
<para>DESCRIPTION
|
||||
</para>
|
||||
<informaltable><tgroup cols="1"><tbody><row><entry
|
||||
align="char">
|
||||
<para>This ioctl call returns the signal strength value for the signal currently received
|
||||
by the front-end. For this command, read-only access to the device is sufficient.</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 =
|
||||
<link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link>, uint16_t ⋆strength);</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 <link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link> for this
|
||||
command.</para>
|
||||
</entry>
|
||||
</row><row><entry
|
||||
align="char">
|
||||
<para>uint16_t *strength</para>
|
||||
</entry><entry
|
||||
align="char">
|
||||
<para>The signal strength value is stored into *strength.</para>
|
||||
</entry>
|
||||
</row></tbody></tgroup></informaltable>
|
||||
|
||||
&return-value-dvb;
|
||||
</section>
|
||||
|
||||
<section id="FE_READ_UNCORRECTED_BLOCKS">
|
||||
<title>FE_READ_UNCORRECTED_BLOCKS</title>
|
||||
<para>DESCRIPTION
|
||||
</para>
|
||||
<informaltable><tgroup cols="1"><tbody><row><entry
|
||||
align="char">
|
||||
<para>This ioctl call returns the number of uncorrected blocks detected by the device
|
||||
driver during its lifetime. For meaningful measurements, the increment in block
|
||||
count during a specific time interval should be calculated. For this command,
|
||||
read-only access to the device is sufficient.</para>
|
||||
</entry>
|
||||
</row><row><entry
|
||||
align="char">
|
||||
<para>Note that the counter will wrap to zero after its maximum count has been
|
||||
reached.</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 =
|
||||
<link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link>, uint32_t ⋆ublocks);</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 <link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link> for this
|
||||
command.</para>
|
||||
</entry>
|
||||
</row><row><entry
|
||||
align="char">
|
||||
<para>uint32_t *ublocks</para>
|
||||
</entry><entry
|
||||
align="char">
|
||||
<para>The total number of uncorrected blocks seen by the driver
|
||||
so far.</para>
|
||||
</entry>
|
||||
</row></tbody></tgroup></informaltable>
|
||||
|
||||
&return-value-dvb;
|
||||
</section>
|
||||
|
||||
<section id="FE_SET_FRONTEND">
|
||||
<title>FE_SET_FRONTEND</title>
|
||||
<para>DESCRIPTION
|
||||
</para>
|
||||
<informaltable><tgroup cols="1"><tbody><row><entry
|
||||
align="char">
|
||||
<para>This ioctl call starts a tuning operation using specified parameters. The result
|
||||
of this call will be successful if the parameters were valid and the tuning could
|
||||
be initiated. The result of the tuning operation in itself, however, will arrive
|
||||
asynchronously as an event (see documentation for <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> and
|
||||
FrontendEvent.) If a new <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> operation is initiated before
|
||||
the previous one was completed, the previous operation will be aborted in favor
|
||||
of the new one. This command requires read/write access to the device.</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 = <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link>,
|
||||
struct dvb_frontend_parameters ⋆p);</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 <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
|
||||
</entry>
|
||||
</row><row><entry
|
||||
align="char">
|
||||
<para>struct
|
||||
dvb_frontend_parameters
|
||||
*p</para>
|
||||
</entry><entry
|
||||
align="char">
|
||||
<para>Points to parameters for tuning operation.</para>
|
||||
</entry>
|
||||
</row></tbody></tgroup></informaltable>
|
||||
|
||||
&return-value-dvb;
|
||||
<informaltable><tgroup cols="2"><tbody><row><entry
|
||||
align="char">
|
||||
<para>EINVAL</para>
|
||||
</entry><entry
|
||||
align="char">
|
||||
<para>Maximum supported symbol rate reached.</para>
|
||||
</entry>
|
||||
</row></tbody></tgroup></informaltable>
|
||||
</section>
|
||||
|
||||
<section id="FE_GET_FRONTEND">
|
||||
<title>FE_GET_FRONTEND</title>
|
||||
<para>DESCRIPTION
|
||||
</para>
|
||||
<informaltable><tgroup cols="1"><tbody><row><entry
|
||||
align="char">
|
||||
<para>This ioctl call queries the currently effective frontend parameters. For this
|
||||
command, read-only access to the device is sufficient.</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 = <link linkend="FE_GET_FRONTEND">FE_GET_FRONTEND</link>,
|
||||
struct dvb_frontend_parameters ⋆p);</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 <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
|
||||
</entry>
|
||||
</row><row><entry
|
||||
align="char">
|
||||
<para>struct
|
||||
dvb_frontend_parameters
|
||||
*p</para>
|
||||
</entry><entry
|
||||
align="char">
|
||||
<para>Points to parameters for tuning operation.</para>
|
||||
</entry>
|
||||
</row></tbody></tgroup></informaltable>
|
||||
|
||||
&return-value-dvb;
|
||||
<informaltable><tgroup cols="2"><tbody><row><entry
|
||||
align="char">
|
||||
<para>EINVAL</para>
|
||||
</entry><entry
|
||||
align="char">
|
||||
<para>Maximum supported symbol rate reached.</para>
|
||||
</entry>
|
||||
</row></tbody></tgroup></informaltable>
|
||||
|
||||
</section>
|
||||
|
||||
<section id="FE_GET_EVENT">
|
||||
<title>FE_GET_EVENT</title>
|
||||
<para>DESCRIPTION
|
||||
</para>
|
||||
<informaltable><tgroup cols="1"><tbody><row><entry
|
||||
align="char">
|
||||
<para>This ioctl call returns a frontend event if available. If an event is not
|
||||
available, the behavior depends on whether the device is in blocking or
|
||||
non-blocking mode. In the latter case, the call fails immediately with errno
|
||||
set to EWOULDBLOCK. In the former case, the call blocks until an event
|
||||
becomes available.</para>
|
||||
</entry>
|
||||
</row><row><entry
|
||||
align="char">
|
||||
<para>The standard Linux poll() and/or select() system calls can be used with the
|
||||
device file descriptor to watch for new events. For select(), the file descriptor
|
||||
should be included in the exceptfds argument, and for poll(), POLLPRI should
|
||||
be specified as the wake-up condition. Since the event queue allocated is
|
||||
rather small (room for 8 events), the queue must be serviced regularly to avoid
|
||||
overflow. If an overflow happens, the oldest event is discarded from the queue,
|
||||
and an error (EOVERFLOW) occurs the next time the queue is read. After
|
||||
reporting the error condition in this fashion, subsequent
|
||||
<link linkend="FE_GET_EVENT">FE_GET_EVENT</link>
|
||||
calls will return events from the queue as usual.</para>
|
||||
</entry>
|
||||
</row><row><entry
|
||||
align="char">
|
||||
<para>For the sake of implementation simplicity, this command requires read/write
|
||||
access to the device.</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 = QPSK_GET_EVENT,
|
||||
struct dvb_frontend_event ⋆ev);</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 <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> for this command.</para>
|
||||
</entry>
|
||||
</row><row><entry
|
||||
align="char">
|
||||
<para>struct
|
||||
dvb_frontend_event
|
||||
*ev</para>
|
||||
</entry><entry
|
||||
align="char">
|
||||
<para>Points to the location where the event,</para>
|
||||
</entry>
|
||||
</row><row><entry
|
||||
align="char">
|
||||
</entry><entry
|
||||
align="char">
|
||||
<para>if any, is to be stored.</para>
|
||||
</entry>
|
||||
</row></tbody></tgroup></informaltable>
|
||||
|
||||
&return-value-dvb;
|
||||
<informaltable><tgroup cols="2"><tbody><row><entry
|
||||
align="char">
|
||||
<para>EWOULDBLOCK</para>
|
||||
</entry><entry
|
||||
align="char">
|
||||
<para>There is no event pending, and the device is in
|
||||
non-blocking mode.</para>
|
||||
</entry>
|
||||
</row><row><entry
|
||||
align="char">
|
||||
<para>EOVERFLOW</para>
|
||||
</entry><entry
|
||||
align="char">
|
||||
<para>Overflow in event queue - one or more events were lost.</para>
|
||||
</entry>
|
||||
</row></tbody></tgroup></informaltable>
|
||||
</section>
|
||||
|
||||
<section id="FE_DISHNETWORK_SEND_LEGACY_CMD">
|
||||
<title>FE_DISHNETWORK_SEND_LEGACY_CMD</title>
|
||||
<para>DESCRIPTION</para>
|
||||
<informaltable><tgroup cols="1"><tbody><row>
|
||||
<entry align="char">
|
||||
<para>WARNING: This is a very obscure legacy command, used only at stv0299 driver. Should not be used on newer drivers.</para>
|
||||
<para>It provides a non-standard method for selecting Diseqc voltage on the frontend, for Dish Network legacy switches.</para>
|
||||
<para>As support for this ioctl were added in 2004, this means that such dishes were already legacy in 2004.</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 =
|
||||
<link linkend="FE_DISHNETWORK_SEND_LEGACY_CMD">FE_DISHNETWORK_SEND_LEGACY_CMD</link>, unsigned long cmd);</para>
|
||||
</entry>
|
||||
</row></tbody></tgroup></informaltable>
|
||||
|
||||
<para>PARAMETERS</para>
|
||||
<informaltable><tgroup cols="2"><tbody><row>
|
||||
<entry align="char">
|
||||
<para>unsigned long cmd</para>
|
||||
</entry>
|
||||
<entry align="char">
|
||||
<para>
|
||||
sends the specified raw cmd to the dish via DISEqC.
|
||||
</para>
|
||||
</entry>
|
||||
</row></tbody></tgroup></informaltable>
|
||||
|
||||
&return-value-dvb;
|
||||
</section>
|
||||
|
||||
</section>
|
@ -129,41 +129,41 @@ hardware. It can depend on the individual security requirements of the
|
||||
platform, if and how many of the CA functions are made available to the
|
||||
application through this device.</para>
|
||||
|
||||
<para>All devices can be found in the <emphasis role="tt">/dev</emphasis>
|
||||
tree under <emphasis role="tt">/dev/dvb</emphasis>. The individual devices
|
||||
<para>All devices can be found in the <constant>/dev</constant>
|
||||
tree under <constant>/dev/dvb</constant>. The individual devices
|
||||
are called:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
|
||||
<para><emphasis role="tt">/dev/dvb/adapterN/audioM</emphasis>,</para>
|
||||
<para><constant>/dev/dvb/adapterN/audioM</constant>,</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="tt">/dev/dvb/adapterN/videoM</emphasis>,</para>
|
||||
<para><constant>/dev/dvb/adapterN/videoM</constant>,</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="tt">/dev/dvb/adapterN/frontendM</emphasis>,</para>
|
||||
<para><constant>/dev/dvb/adapterN/frontendM</constant>,</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
|
||||
<para><emphasis role="tt">/dev/dvb/adapterN/netM</emphasis>,</para>
|
||||
<para><constant>/dev/dvb/adapterN/netM</constant>,</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
|
||||
<para><emphasis role="tt">/dev/dvb/adapterN/demuxM</emphasis>,</para>
|
||||
<para><constant>/dev/dvb/adapterN/demuxM</constant>,</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
|
||||
<para><emphasis role="tt">/dev/dvb/adapterN/dvrM</emphasis>,</para>
|
||||
<para><constant>/dev/dvb/adapterN/dvrM</constant>,</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
|
||||
<para><emphasis role="tt">/dev/dvb/adapterN/caM</emphasis>,</para></listitem></itemizedlist>
|
||||
<para><constant>/dev/dvb/adapterN/caM</constant>,</para></listitem></itemizedlist>
|
||||
|
||||
<para>where N enumerates the DVB PCI cards in a system starting
|
||||
from 0, and M enumerates the devices of each type within each
|
||||
adapter, starting from 0, too. We will omit the “<emphasis
|
||||
role="tt">/dev/dvb/adapterN/</emphasis>” in the further dicussion
|
||||
adapter, starting from 0, too. We will omit the “
|
||||
<constant>/dev/dvb/adapterN/</constant>” in the further dicussion
|
||||
of these devices. The naming scheme for the devices is the same wheter
|
||||
devfs is used or not.</para>
|
||||
|
||||
@ -202,10 +202,10 @@ a partial path like:</para>
|
||||
</programlisting>
|
||||
|
||||
<para>To enable applications to support different API version, an
|
||||
additional include file <emphasis
|
||||
role="tt">linux/dvb/version.h</emphasis> exists, which defines the
|
||||
constant <emphasis role="tt">DVB_API_VERSION</emphasis>. This document
|
||||
describes <emphasis role="tt">DVB_API_VERSION 5.8</emphasis>.
|
||||
additional include file
|
||||
<constant>linux/dvb/version.h</constant> exists, which defines the
|
||||
constant <constant>DVB_API_VERSION</constant>. This document
|
||||
describes <constant>DVB_API_VERSION 5.10</constant>.
|
||||
</para>
|
||||
|
||||
</section>
|
||||
|
@ -1,8 +1,8 @@
|
||||
<title>Kernel Demux API</title>
|
||||
<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
|
||||
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-core</emphasis>.
|
||||
DVB device driver writers. The header file for this API is named <constant>demux.h</constant> and located in
|
||||
<constant>">drivers/media/dvb-core</constant>.
|
||||
</para>
|
||||
<para>Maintainer note: This section must be reviewed. It is probably out of date.
|
||||
</para>
|
||||
|
@ -1,156 +1,238 @@
|
||||
<title>DVB Network API</title>
|
||||
<para>The DVB net device enables feeding of MPE (multi protocol encapsulation) packets
|
||||
received via DVB into the Linux network protocol stack, e.g. for internet via satellite
|
||||
applications. It can be accessed through <emphasis role="tt">/dev/dvb/adapter0/net0</emphasis>. Data types and
|
||||
and ioctl definitions can be accessed by including <emphasis role="tt">linux/dvb/net.h</emphasis> in your
|
||||
application.
|
||||
</para>
|
||||
<section id="dvb_net_types">
|
||||
<title>DVB Net Data Types</title>
|
||||
<para>The DVB net device controls the mapping of data packages that are
|
||||
part of a transport stream to be mapped into a virtual network interface,
|
||||
visible through the standard Linux network protocol stack.</para>
|
||||
<para>Currently, two encapsulations are supported:</para>
|
||||
<itemizedlist>
|
||||
<listitem><para><ulink url="http://en.wikipedia.org/wiki/Multiprotocol_Encapsulation">
|
||||
Multi Protocol Encapsulation (MPE)</ulink></para></listitem>
|
||||
<listitem><para><ulink url="http://en.wikipedia.org/wiki/Unidirectional_Lightweight_Encapsulation">
|
||||
Ultra Lightweight Encapsulation (ULE)</ulink></para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<section id="dvb-net-if">
|
||||
<title>struct dvb_net_if</title>
|
||||
<programlisting>
|
||||
struct dvb_net_if {
|
||||
__u16 pid;
|
||||
__u16 if_num;
|
||||
__u8 feedtype;
|
||||
#define DVB_NET_FEEDTYPE_MPE 0 /⋆ multi protocol encapsulation ⋆/
|
||||
#define DVB_NET_FEEDTYPE_ULE 1 /⋆ ultra lightweight encapsulation ⋆/
|
||||
};
|
||||
</programlisting>
|
||||
</section>
|
||||
<para>In order to create the Linux virtual network interfaces, an application
|
||||
needs to tell to the Kernel what are the PIDs and the encapsulation types
|
||||
that are present on the transport stream. This is done through
|
||||
<constant>/dev/dvb/adapter?/net?</constant> device node.
|
||||
The data will be available via virtual <constant>dvb?_?</constant>
|
||||
network interfaces, and will be controled/routed via the standard
|
||||
ip tools (like ip, route, netstat, ifconfig, etc).</para>
|
||||
<para> Data types and and ioctl definitions are defined via
|
||||
<constant>linux/dvb/net.h</constant> header.</para>
|
||||
|
||||
</section>
|
||||
<section id="net_fcalls">
|
||||
<title>DVB net Function Calls</title>
|
||||
<para>To be written…
|
||||
</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>
|
||||
<refentry id="NET_ADD_IF">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl NET_ADD_IF</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>NET_ADD_IF</refname>
|
||||
<refpurpose>Creates a new network interface for a given Packet ID.</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>ioctl</function></funcdef>
|
||||
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||
<paramdef>int <parameter>request</parameter></paramdef>
|
||||
<paramdef>struct dvb_net_if *<parameter>net_if</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>&fe_fd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>FE_SET_TONE</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>net_if</parameter></term>
|
||||
<listitem>
|
||||
<para>pointer to &dvb-net-if;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>The NET_ADD_IF ioctl system call selects the Packet ID (PID) that
|
||||
contains a TCP/IP traffic, the type of encapsulation to be used (MPE or ULE)
|
||||
and the interface number for the new interface to be created. When the
|
||||
system call successfully returns, a new virtual network interface is created.</para>
|
||||
<para>The &dvb-net-if;::ifnum field will be filled with the number of the
|
||||
created interface.</para>
|
||||
|
||||
<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>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="dvb-net-if-t">
|
||||
<title>struct <structname>dvb_net_if</structname> description</title>
|
||||
|
||||
<table pgwide="1" frame="none" id="dvb-net-if">
|
||||
<title>struct <structname>dvb_net_if</structname></title>
|
||||
<tgroup cols="2">
|
||||
&cs-def;
|
||||
<thead>
|
||||
<row>
|
||||
<entry>ID</entry>
|
||||
<entry>Description</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry align="char">pid</entry>
|
||||
<entry align="char">Packet ID (PID) of the MPEG-TS that contains
|
||||
data</entry>
|
||||
</row><row>
|
||||
<entry align="char">ifnum</entry>
|
||||
<entry align="char">number of the DVB interface.</entry>
|
||||
</row><row>
|
||||
<entry align="char">feedtype</entry>
|
||||
<entry align="char">Encapsulation type of the feed. It can be:
|
||||
<constant>DVB_NET_FEEDTYPE_MPE</constant> for MPE encoding
|
||||
or
|
||||
<constant>DVB_NET_FEEDTYPE_ULE</constant> for ULE encoding.
|
||||
</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
||||
<refentry id="NET_REMOVE_IF">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl NET_REMOVE_IF</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>NET_REMOVE_IF</refname>
|
||||
<refpurpose>Removes a network interface.</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>ioctl</function></funcdef>
|
||||
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||
<paramdef>int <parameter>request</parameter></paramdef>
|
||||
<paramdef>int <parameter>ifnum</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>&fe_fd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>FE_SET_TONE</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>net_if</parameter></term>
|
||||
<listitem>
|
||||
<para>number of the interface to be removed</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>The NET_REMOVE_IF ioctl deletes an interface previously created
|
||||
via &NET-ADD-IF;.</para>
|
||||
|
||||
&return-value-dvb;
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
||||
|
||||
<refentry id="NET_GET_IF">
|
||||
<refmeta>
|
||||
<refentrytitle>ioctl NET_GET_IF</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>NET_GET_IF</refname>
|
||||
<refpurpose>Read the configuration data of an interface created via
|
||||
&NET-ADD-IF;.</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<funcsynopsis>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>ioctl</function></funcdef>
|
||||
<paramdef>int <parameter>fd</parameter></paramdef>
|
||||
<paramdef>int <parameter>request</parameter></paramdef>
|
||||
<paramdef>struct dvb_net_if *<parameter>net_if</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Arguments</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><parameter>fd</parameter></term>
|
||||
<listitem>
|
||||
<para>&fe_fd;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>FE_SET_TONE</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><parameter>net_if</parameter></term>
|
||||
<listitem>
|
||||
<para>pointer to &dvb-net-if;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>The NET_GET_IF ioctl uses the interface number given by the
|
||||
&dvb-net-if;::ifnum field and fills the content of &dvb-net-if; with
|
||||
the packet ID and encapsulation type used on such interface. If the
|
||||
interface was not created yet with &NET-ADD-IF;, it will return -1 and
|
||||
fill the <constant>errno</constant> with <constant>EINVAL</constant>
|
||||
error code.</para>
|
||||
|
||||
&return-value-dvb;
|
||||
</refsect1>
|
||||
</refentry>
|
||||
</section>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<title>DVB Video Device</title>
|
||||
<para>The DVB video device controls the MPEG2 video decoder of the DVB hardware. It
|
||||
can be accessed through <emphasis role="tt">/dev/dvb/adapter0/video0</emphasis>. Data types and and
|
||||
ioctl definitions can be accessed by including <emphasis role="tt">linux/dvb/video.h</emphasis> in your
|
||||
can be accessed through <emphasis role="bold">/dev/dvb/adapter0/video0</emphasis>. Data types and and
|
||||
ioctl definitions can be accessed by including <emphasis role="bold">linux/dvb/video.h</emphasis> in your
|
||||
application.
|
||||
</para>
|
||||
<para>Note that the DVB video device only controls decoding of the MPEG video stream, not
|
||||
its presentation on the TV or computer screen. On PCs this is typically handled by an
|
||||
associated video4linux device, e.g. <emphasis role="tt">/dev/video</emphasis>, which allows scaling and defining output
|
||||
associated video4linux device, e.g. <emphasis role="bold">/dev/video</emphasis>, which allows scaling and defining output
|
||||
windows.
|
||||
</para>
|
||||
<para>Some DVB cards don’t have their own MPEG decoder, which results in the omission of
|
||||
@ -24,7 +24,7 @@ have been created to replace that functionality.</para>
|
||||
|
||||
<section id="video-format-t">
|
||||
<title>video_format_t</title>
|
||||
<para>The <emphasis role="tt">video_format_t</emphasis> data type defined by
|
||||
<para>The <constant>video_format_t</constant> data type defined by
|
||||
</para>
|
||||
<programlisting>
|
||||
typedef enum {
|
||||
@ -74,7 +74,7 @@ typedef enum {
|
||||
</programlisting>
|
||||
<para>VIDEO_SOURCE_DEMUX selects the demultiplexer (fed either by the frontend or the
|
||||
DVR device) as the source of the video stream. If VIDEO_SOURCE_MEMORY
|
||||
is selected the stream comes from the application through the <emphasis role="tt">write()</emphasis> system
|
||||
is selected the stream comes from the application through the <emphasis role="bold">write()</emphasis> system
|
||||
call.
|
||||
</para>
|
||||
</section>
|
||||
|
28
Documentation/DocBook/media/typical_media_device.svg
Normal file
28
Documentation/DocBook/media/typical_media_device.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 35 KiB |
@ -4863,7 +4863,7 @@ interface and may change in the future.</para>
|
||||
</note>
|
||||
|
||||
<para>
|
||||
The Image Source control class is intended for low-level control of
|
||||
The Image Process control class is intended for low-level control of
|
||||
image processing functions. Unlike
|
||||
<constant>V4L2_CID_IMAGE_SOURCE_CLASS</constant>, the controls in
|
||||
this class affect processing the image, and do not control capturing
|
||||
@ -4871,7 +4871,7 @@ interface and may change in the future.</para>
|
||||
</para>
|
||||
|
||||
<table pgwide="1" frame="none" id="image-process-control-id">
|
||||
<title>Image Source Control IDs</title>
|
||||
<title>Image Process Control IDs</title>
|
||||
|
||||
<tgroup cols="4">
|
||||
<colspec colname="c1" colwidth="1*" />
|
||||
|
@ -841,15 +841,15 @@ is the file descriptor associated with a DMABUF buffer.</entry>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>reserved2</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry>A place holder for future extensions. Applications
|
||||
should set this to 0.</entry>
|
||||
<entry>A place holder for future extensions. Drivers and applications
|
||||
must set this to 0.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>reserved</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry>A place holder for future extensions. Applications
|
||||
should set this to 0.</entry>
|
||||
<entry>A place holder for future extensions. Drivers and applications
|
||||
must set this to 0.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
@ -930,8 +930,8 @@ should set this to 0.</entry>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>reserved[11]</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry>Reserved for future use. Should be zeroed by an
|
||||
application.</entry>
|
||||
<entry>Reserved for future use. Should be zeroed by drivers and
|
||||
applications.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
@ -1127,6 +1127,18 @@ passed on to a DMA-capable hardware unit for further processing or output.
|
||||
Typically applications shall use this flag for output buffers if the data
|
||||
in this buffer has not been created by the CPU but by some DMA-capable unit,
|
||||
in which case caches have not been used.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_BUF_FLAG_LAST</constant></entry>
|
||||
<entry>0x00100000</entry>
|
||||
<entry>Last buffer produced by the hardware. mem2mem codec drivers
|
||||
set this flag on the capture queue for the last buffer when the
|
||||
<link linkend="vidioc-querybuf">VIDIOC_QUERYBUF</link> or
|
||||
<link linkend="vidioc-qbuf">VIDIOC_DQBUF</link> ioctl is called. Due to hardware
|
||||
limitations, the last buffer may be empty. In this case the driver will set the
|
||||
<structfield>bytesused</structfield> field to 0, regardless of the format. Any
|
||||
Any subsequent call to the <link linkend="vidioc-qbuf">VIDIOC_DQBUF</link> ioctl
|
||||
will not block anymore, but return an &EPIPE;.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_BUF_FLAG_TIMESTAMP_MASK</constant></entry>
|
||||
@ -1155,7 +1167,7 @@ in which case caches have not been used.</entry>
|
||||
<entry>The buffer timestamp has been taken from the
|
||||
<constant>CLOCK_MONOTONIC</constant> clock. To access the
|
||||
same clock outside V4L2, use
|
||||
<function>clock_gettime(2)</function> .</entry>
|
||||
<function>clock_gettime(2)</function>.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_BUF_FLAG_TIMESTAMP_COPY</constant></entry>
|
||||
|
@ -44,7 +44,7 @@
|
||||
<para>To open a media device applications call <function>open()</function>
|
||||
with the desired device name. The function has no side effects; the device
|
||||
configuration remain unchanged.</para>
|
||||
<para>When the device is opened in read-only mode, attemps to modify its
|
||||
<para>When the device is opened in read-only mode, attempts to modify its
|
||||
configuration will result in an error, and <varname>errno</varname> will be
|
||||
set to <errorcode>EBADF</errorcode>.</para>
|
||||
</refsect1>
|
||||
|
81
Documentation/DocBook/media/v4l/pixfmt-y16-be.xml
Normal file
81
Documentation/DocBook/media/v4l/pixfmt-y16-be.xml
Normal file
@ -0,0 +1,81 @@
|
||||
<refentry id="V4L2-PIX-FMT-Y16-BE">
|
||||
<refmeta>
|
||||
<refentrytitle>V4L2_PIX_FMT_Y16_BE ('Y16 ' | (1 << 31))</refentrytitle>
|
||||
&manvol;
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname><constant>V4L2_PIX_FMT_Y16_BE</constant></refname>
|
||||
<refpurpose>Grey-scale image</refpurpose>
|
||||
</refnamediv>
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>This is a grey-scale image with a depth of 16 bits per
|
||||
pixel. The most significant byte is stored at lower memory addresses
|
||||
(big-endian). Note the actual sampling precision may be lower than
|
||||
16 bits, for example 10 bits per pixel with values in range 0 to
|
||||
1023.</para>
|
||||
|
||||
<example>
|
||||
<title><constant>V4L2_PIX_FMT_Y16_BE</constant> 4 × 4
|
||||
pixel image</title>
|
||||
|
||||
<formalpara>
|
||||
<title>Byte Order.</title>
|
||||
<para>Each cell is one byte.
|
||||
<informaltable frame="none">
|
||||
<tgroup cols="9" align="center">
|
||||
<colspec align="left" colwidth="2*" />
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry>start + 0:</entry>
|
||||
<entry>Y'<subscript>00high</subscript></entry>
|
||||
<entry>Y'<subscript>00low</subscript></entry>
|
||||
<entry>Y'<subscript>01high</subscript></entry>
|
||||
<entry>Y'<subscript>01low</subscript></entry>
|
||||
<entry>Y'<subscript>02high</subscript></entry>
|
||||
<entry>Y'<subscript>02low</subscript></entry>
|
||||
<entry>Y'<subscript>03high</subscript></entry>
|
||||
<entry>Y'<subscript>03low</subscript></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>start + 8:</entry>
|
||||
<entry>Y'<subscript>10high</subscript></entry>
|
||||
<entry>Y'<subscript>10low</subscript></entry>
|
||||
<entry>Y'<subscript>11high</subscript></entry>
|
||||
<entry>Y'<subscript>11low</subscript></entry>
|
||||
<entry>Y'<subscript>12high</subscript></entry>
|
||||
<entry>Y'<subscript>12low</subscript></entry>
|
||||
<entry>Y'<subscript>13high</subscript></entry>
|
||||
<entry>Y'<subscript>13low</subscript></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>start + 16:</entry>
|
||||
<entry>Y'<subscript>20high</subscript></entry>
|
||||
<entry>Y'<subscript>20low</subscript></entry>
|
||||
<entry>Y'<subscript>21high</subscript></entry>
|
||||
<entry>Y'<subscript>21low</subscript></entry>
|
||||
<entry>Y'<subscript>22high</subscript></entry>
|
||||
<entry>Y'<subscript>22low</subscript></entry>
|
||||
<entry>Y'<subscript>23high</subscript></entry>
|
||||
<entry>Y'<subscript>23low</subscript></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>start + 24:</entry>
|
||||
<entry>Y'<subscript>30high</subscript></entry>
|
||||
<entry>Y'<subscript>30low</subscript></entry>
|
||||
<entry>Y'<subscript>31high</subscript></entry>
|
||||
<entry>Y'<subscript>31low</subscript></entry>
|
||||
<entry>Y'<subscript>32high</subscript></entry>
|
||||
<entry>Y'<subscript>32low</subscript></entry>
|
||||
<entry>Y'<subscript>33high</subscript></entry>
|
||||
<entry>Y'<subscript>33low</subscript></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</para>
|
||||
</formalpara>
|
||||
</example>
|
||||
</refsect1>
|
||||
</refentry>
|
@ -155,6 +155,14 @@ see <xref linkend="colorspaces" />.</entry>
|
||||
<entry>This information supplements the
|
||||
<structfield>colorspace</structfield> and must be set by the driver for
|
||||
capture streams and by the application for output streams,
|
||||
see <xref linkend="colorspaces" />.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>&v4l2-xfer-func;</entry>
|
||||
<entry><structfield>xfer_func</structfield></entry>
|
||||
<entry>This information supplements the
|
||||
<structfield>colorspace</structfield> and must be set by the driver for
|
||||
capture streams and by the application for output streams,
|
||||
see <xref linkend="colorspaces" />.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
@ -190,8 +198,8 @@ see <xref linkend="colorspaces" />.</entry>
|
||||
<row>
|
||||
<entry>__u16</entry>
|
||||
<entry><structfield>reserved[6]</structfield></entry>
|
||||
<entry>Reserved for future extensions. Should be zeroed by the
|
||||
application.</entry>
|
||||
<entry>Reserved for future extensions. Should be zeroed by drivers and
|
||||
applications.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
@ -262,13 +270,21 @@ see <xref linkend="colorspaces" />.</entry>
|
||||
<entry>This information supplements the
|
||||
<structfield>colorspace</structfield> and must be set by the driver for
|
||||
capture streams and by the application for output streams,
|
||||
see <xref linkend="colorspaces" />.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>&v4l2-xfer-func;</entry>
|
||||
<entry><structfield>xfer_func</structfield></entry>
|
||||
<entry>This information supplements the
|
||||
<structfield>colorspace</structfield> and must be set by the driver for
|
||||
capture streams and by the application for output streams,
|
||||
see <xref linkend="colorspaces" />.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u8</entry>
|
||||
<entry><structfield>reserved[8]</structfield></entry>
|
||||
<entry>Reserved for future extensions. Should be zeroed by the
|
||||
application.</entry>
|
||||
<entry><structfield>reserved[7]</structfield></entry>
|
||||
<entry>Reserved for future extensions. Should be zeroed by drivers
|
||||
and applications.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
@ -476,15 +492,16 @@ is also very useful.</para>
|
||||
|
||||
<section>
|
||||
<title>Defining Colorspaces in V4L2</title>
|
||||
<para>In V4L2 colorspaces are defined by three values. The first is the colorspace
|
||||
identifier (&v4l2-colorspace;) which defines the chromaticities, the transfer
|
||||
<para>In V4L2 colorspaces are defined by four values. The first is the colorspace
|
||||
identifier (&v4l2-colorspace;) which defines the chromaticities, the default transfer
|
||||
function, the default Y'CbCr encoding and the default quantization method. The second
|
||||
is the Y'CbCr encoding identifier (&v4l2-ycbcr-encoding;) to specify non-standard
|
||||
Y'CbCr encodings and the third is the quantization identifier (&v4l2-quantization;)
|
||||
to specify non-standard quantization methods. Most of the time only the colorspace
|
||||
field of &v4l2-pix-format; or &v4l2-pix-format-mplane; needs to be filled in. Note
|
||||
that the default R'G'B' quantization is full range for all colorspaces except for
|
||||
BT.2020 which uses limited range R'G'B' quantization.</para>
|
||||
is the transfer function identifier (&v4l2-xfer-func;) to specify non-standard
|
||||
transfer functions. The third is the Y'CbCr encoding identifier (&v4l2-ycbcr-encoding;)
|
||||
to specify non-standard Y'CbCr encodings and the fourth is the quantization identifier
|
||||
(&v4l2-quantization;) to specify non-standard quantization methods. Most of the time
|
||||
only the colorspace field of &v4l2-pix-format; or &v4l2-pix-format-mplane; needs to
|
||||
be filled in. Note that the default R'G'B' quantization is full range for all
|
||||
colorspaces except for BT.2020 which uses limited range R'G'B' quantization.</para>
|
||||
|
||||
<table pgwide="1" frame="none" id="v4l2-colorspace">
|
||||
<title>V4L2 Colorspaces</title>
|
||||
@ -497,6 +514,11 @@ BT.2020 which uses limited range R'G'B' quantization.</para>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry><constant>V4L2_COLORSPACE_DEFAULT</constant></entry>
|
||||
<entry>The default colorspace. This can be used by applications to let the
|
||||
driver fill in the colorspace.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_COLORSPACE_SMPTE170M</constant></entry>
|
||||
<entry>See <xref linkend="col-smpte-170m" />.</entry>
|
||||
@ -533,6 +555,52 @@ BT.2020 which uses limited range R'G'B' quantization.</para>
|
||||
<entry><constant>V4L2_COLORSPACE_JPEG</constant></entry>
|
||||
<entry>See <xref linkend="col-jpeg" />.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_COLORSPACE_RAW</constant></entry>
|
||||
<entry>The raw colorspace. This is used for raw image capture where
|
||||
the image is minimally processed and is using the internal colorspace
|
||||
of the device. The software that processes an image using this
|
||||
'colorspace' will have to know the internals of the capture device.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<table pgwide="1" frame="none" id="v4l2-xfer-func">
|
||||
<title>V4L2 Transfer Function</title>
|
||||
<tgroup cols="2" align="left">
|
||||
&cs-def;
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Identifier</entry>
|
||||
<entry>Details</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<row>
|
||||
<entry><constant>V4L2_XFER_FUNC_DEFAULT</constant></entry>
|
||||
<entry>Use the default transfer function as defined by the colorspace.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_XFER_FUNC_709</constant></entry>
|
||||
<entry>Use the Rec. 709 transfer function.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_XFER_FUNC_SRGB</constant></entry>
|
||||
<entry>Use the sRGB transfer function.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_XFER_FUNC_ADOBERGB</constant></entry>
|
||||
<entry>Use the AdobeRGB transfer function.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_XFER_FUNC_SMPTE240M</constant></entry>
|
||||
<entry>Use the SMPTE 240M transfer function.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_XFER_FUNC_NONE</constant></entry>
|
||||
<entry>Do not use a transfer function (i.e. use linear RGB values).</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
@ -624,7 +692,8 @@ is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to [16
|
||||
<section id="col-smpte-170m">
|
||||
<title>Colorspace SMPTE 170M (<constant>V4L2_COLORSPACE_SMPTE170M</constant>)</title>
|
||||
<para>The <xref linkend="smpte170m" /> standard defines the colorspace used by NTSC and PAL and by SDTV
|
||||
in general. The default Y'CbCr encoding is <constant>V4L2_YCBCR_ENC_601</constant>.
|
||||
in general. The default transfer function is <constant>V4L2_XFER_FUNC_709</constant>.
|
||||
The default Y'CbCr encoding is <constant>V4L2_YCBCR_ENC_601</constant>.
|
||||
The default Y'CbCr quantization is limited range. The chromaticities of the primary colors and
|
||||
the white reference are:</para>
|
||||
<table frame="none">
|
||||
@ -706,7 +775,8 @@ rarely seen.</para>
|
||||
|
||||
<section id="col-rec709">
|
||||
<title>Colorspace Rec. 709 (<constant>V4L2_COLORSPACE_REC709</constant>)</title>
|
||||
<para>The <xref linkend="itu709" /> standard defines the colorspace used by HDTV in general. The default
|
||||
<para>The <xref linkend="itu709" /> standard defines the colorspace used by HDTV in general.
|
||||
The default transfer function is <constant>V4L2_XFER_FUNC_709</constant>. The default
|
||||
Y'CbCr encoding is <constant>V4L2_YCBCR_ENC_709</constant>. The default Y'CbCr quantization is
|
||||
limited range. The chromaticities of the primary colors and the white reference are:</para>
|
||||
<table frame="none">
|
||||
@ -817,9 +887,11 @@ The xvYCC encodings always use full range quantization.</para>
|
||||
|
||||
<section id="col-srgb">
|
||||
<title>Colorspace sRGB (<constant>V4L2_COLORSPACE_SRGB</constant>)</title>
|
||||
<para>The <xref linkend="srgb" /> standard defines the colorspace used by most webcams and computer graphics. The
|
||||
default Y'CbCr encoding is <constant>V4L2_YCBCR_ENC_SYCC</constant>. The default Y'CbCr quantization
|
||||
is full range. The chromaticities of the primary colors and the white reference are:</para>
|
||||
<para>The <xref linkend="srgb" /> standard defines the colorspace used by most webcams
|
||||
and computer graphics. The default transfer function is <constant>V4L2_XFER_FUNC_SRGB</constant>.
|
||||
The default Y'CbCr encoding is <constant>V4L2_YCBCR_ENC_SYCC</constant>. The default Y'CbCr
|
||||
quantization is full range. The chromaticities of the primary colors and the white
|
||||
reference are:</para>
|
||||
<table frame="none">
|
||||
<title>sRGB Chromaticities</title>
|
||||
<tgroup cols="3" align="left">
|
||||
@ -896,6 +968,7 @@ values before quantization, but this encoding does not do that.</para>
|
||||
<title>Colorspace Adobe RGB (<constant>V4L2_COLORSPACE_ADOBERGB</constant>)</title>
|
||||
<para>The <xref linkend="adobergb" /> standard defines the colorspace used by computer graphics
|
||||
that use the AdobeRGB colorspace. This is also known as the <xref linkend="oprgb" /> standard.
|
||||
The default transfer function is <constant>V4L2_XFER_FUNC_ADOBERGB</constant>.
|
||||
The default Y'CbCr encoding is <constant>V4L2_YCBCR_ENC_601</constant>. The default Y'CbCr
|
||||
quantization is limited range. The chromaticities of the primary colors and the white reference
|
||||
are:</para>
|
||||
@ -967,7 +1040,8 @@ SMPTE 170M/BT.601. The Y'CbCr quantization is limited range.</para>
|
||||
<section id="col-bt2020">
|
||||
<title>Colorspace BT.2020 (<constant>V4L2_COLORSPACE_BT2020</constant>)</title>
|
||||
<para>The <xref linkend="itu2020" /> standard defines the colorspace used by Ultra-high definition
|
||||
television (UHDTV). The default Y'CbCr encoding is <constant>V4L2_YCBCR_ENC_BT2020</constant>.
|
||||
television (UHDTV). The default transfer function is <constant>V4L2_XFER_FUNC_709</constant>.
|
||||
The default Y'CbCr encoding is <constant>V4L2_YCBCR_ENC_BT2020</constant>.
|
||||
The default R'G'B' quantization is limited range (!), and so is the default Y'CbCr quantization.
|
||||
The chromaticities of the primary colors and the white reference are:</para>
|
||||
<table frame="none">
|
||||
@ -1082,8 +1156,10 @@ clamped to the range [-0.5…0.5]. The Yc'CbcCrc quantization is limited ra
|
||||
|
||||
<section id="col-smpte-240m">
|
||||
<title>Colorspace SMPTE 240M (<constant>V4L2_COLORSPACE_SMPTE240M</constant>)</title>
|
||||
<para>The <xref linkend="smpte240m" /> standard was an interim standard used during the early days of HDTV (1988-1998).
|
||||
It has been superseded by Rec. 709. The default Y'CbCr encoding is <constant>V4L2_YCBCR_ENC_SMPTE240M</constant>.
|
||||
<para>The <xref linkend="smpte240m" /> standard was an interim standard used during
|
||||
the early days of HDTV (1988-1998). It has been superseded by Rec. 709.
|
||||
The default transfer function is <constant>V4L2_XFER_FUNC_SMPTE240M</constant>.
|
||||
The default Y'CbCr encoding is <constant>V4L2_YCBCR_ENC_SMPTE240M</constant>.
|
||||
The default Y'CbCr quantization is limited range. The chromaticities of the primary colors and the
|
||||
white reference are:</para>
|
||||
<table frame="none">
|
||||
@ -1156,8 +1232,10 @@ clamped to the range [-0.5…0.5]. The Y'CbCr quantization is limited range
|
||||
<section id="col-sysm">
|
||||
<title>Colorspace NTSC 1953 (<constant>V4L2_COLORSPACE_470_SYSTEM_M</constant>)</title>
|
||||
<para>This standard defines the colorspace used by NTSC in 1953. In practice this
|
||||
colorspace is obsolete and SMPTE 170M should be used instead. The default Y'CbCr encoding
|
||||
is <constant>V4L2_YCBCR_ENC_601</constant>. The default Y'CbCr quantization is limited range.
|
||||
colorspace is obsolete and SMPTE 170M should be used instead.
|
||||
The default transfer function is <constant>V4L2_XFER_FUNC_709</constant>.
|
||||
The default Y'CbCr encoding is <constant>V4L2_YCBCR_ENC_601</constant>.
|
||||
The default Y'CbCr quantization is limited range.
|
||||
The chromaticities of the primary colors and the white reference are:</para>
|
||||
<table frame="none">
|
||||
<title>NTSC 1953 Chromaticities</title>
|
||||
@ -1234,8 +1312,10 @@ This transform is identical to one defined in SMPTE 170M/BT.601.</para>
|
||||
<section id="col-sysbg">
|
||||
<title>Colorspace EBU Tech. 3213 (<constant>V4L2_COLORSPACE_470_SYSTEM_BG</constant>)</title>
|
||||
<para>The <xref linkend="tech3213" /> standard defines the colorspace used by PAL/SECAM in 1975. In practice this
|
||||
colorspace is obsolete and SMPTE 170M should be used instead. The default Y'CbCr encoding
|
||||
is <constant>V4L2_YCBCR_ENC_601</constant>. The default Y'CbCr quantization is limited range.
|
||||
colorspace is obsolete and SMPTE 170M should be used instead.
|
||||
The default transfer function is <constant>V4L2_XFER_FUNC_709</constant>.
|
||||
The default Y'CbCr encoding is <constant>V4L2_YCBCR_ENC_601</constant>.
|
||||
The default Y'CbCr quantization is limited range.
|
||||
The chromaticities of the primary colors and the white reference are:</para>
|
||||
<table frame="none">
|
||||
<title>EBU Tech. 3213 Chromaticities</title>
|
||||
@ -1308,7 +1388,8 @@ This transform is identical to one defined in SMPTE 170M/BT.601.</para>
|
||||
<section id="col-jpeg">
|
||||
<title>Colorspace JPEG (<constant>V4L2_COLORSPACE_JPEG</constant>)</title>
|
||||
<para>This colorspace defines the colorspace used by most (Motion-)JPEG formats. The chromaticities
|
||||
of the primary colors and the white reference are identical to sRGB. The Y'CbCr encoding is
|
||||
of the primary colors and the white reference are identical to sRGB. The transfer
|
||||
function use is <constant>V4L2_XFER_FUNC_SRGB</constant>. The Y'CbCr encoding is
|
||||
<constant>V4L2_YCBCR_ENC_601</constant> with full range quantization where
|
||||
Y' is scaled to [0…255] and Cb/Cr are scaled to [-128…128] and
|
||||
then clipped to [-128…127].</para>
|
||||
@ -1429,6 +1510,7 @@ information.</para>
|
||||
&sub-y12;
|
||||
&sub-y10b;
|
||||
&sub-y16;
|
||||
&sub-y16-be;
|
||||
&sub-uv8;
|
||||
&sub-yuyv;
|
||||
&sub-uyvy;
|
||||
|
@ -284,7 +284,7 @@ different IR's. Due to that, V4L2 API now specifies a standard for mapping Media
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>It should be noticed that, sometimes, there some fundamental missing keys at some cheaper IR's. Due to that, it is recommended to:</para>
|
||||
<para>It should be noted that, sometimes, there some fundamental missing keys at some cheaper IR's. Due to that, it is recommended to:</para>
|
||||
|
||||
<table pgwide="1" frame="none" id="rc_keymap_notes">
|
||||
<title>Notes</title>
|
||||
|
@ -50,8 +50,16 @@ capture streams and by the application for output streams,
|
||||
see <xref linkend="colorspaces" />.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>reserved</structfield>[6]</entry>
|
||||
<entry>&v4l2-xfer-func;</entry>
|
||||
<entry><structfield>xfer_func</structfield></entry>
|
||||
<entry>This information supplements the
|
||||
<structfield>colorspace</structfield> and must be set by the driver for
|
||||
capture streams and by the application for output streams,
|
||||
see <xref linkend="colorspaces" />.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>__u16</entry>
|
||||
<entry><structfield>reserved</structfield>[11]</entry>
|
||||
<entry>Reserved for future extensions. Applications and drivers must
|
||||
set the array to zero.</entry>
|
||||
</row>
|
||||
|
@ -134,7 +134,8 @@ information.</para>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>reserved</structfield>[8]</entry>
|
||||
<entry>A place holder for future extensions.</entry>
|
||||
<entry>A place holder for future extensions. Drivers and applications
|
||||
must set the array to zero.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
|
@ -197,7 +197,17 @@ be muted when playing back at a non-standard speed.
|
||||
this command does nothing. This command has two flags:
|
||||
if <constant>V4L2_DEC_CMD_STOP_TO_BLACK</constant> is set, then the decoder will
|
||||
set the picture to black after it stopped decoding. Otherwise the last image will
|
||||
repeat. If <constant>V4L2_DEC_CMD_STOP_IMMEDIATELY</constant> is set, then the decoder
|
||||
repeat. mem2mem decoders will stop producing new frames altogether. They will send
|
||||
a <constant>V4L2_EVENT_EOS</constant> event when the last frame has been decoded
|
||||
and all frames are ready to be dequeued and will set the
|
||||
<constant>V4L2_BUF_FLAG_LAST</constant> buffer flag on the last buffer of the
|
||||
capture queue to indicate there will be no new buffers produced to dequeue. This
|
||||
buffer may be empty, indicated by the driver setting the
|
||||
<structfield>bytesused</structfield> field to 0. Once the
|
||||
<constant>V4L2_BUF_FLAG_LAST</constant> flag was set, the
|
||||
<link linkend="vidioc-qbuf">VIDIOC_DQBUF</link> ioctl will not block anymore,
|
||||
but return an &EPIPE;.
|
||||
If <constant>V4L2_DEC_CMD_STOP_IMMEDIATELY</constant> is set, then the decoder
|
||||
stops immediately (ignoring the <structfield>pts</structfield> value), otherwise it
|
||||
will keep decoding until timestamp >= pts or until the last of the pending data from
|
||||
its internal buffers was decoded.
|
||||
|
@ -133,7 +133,10 @@
|
||||
<entry>struct timespec</entry>
|
||||
<entry><structfield>timestamp</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry>Event timestamp.</entry>
|
||||
<entry>Event timestamp. The timestamp has been taken from the
|
||||
<constant>CLOCK_MONOTONIC</constant> clock. To access the
|
||||
same clock outside V4L2, use <function>clock_gettime(2)</function>.
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>u32</entry>
|
||||
|
@ -129,7 +129,15 @@ this command.</entry>
|
||||
encoding will continue until the end of the current <wordasword>Group
|
||||
Of Pictures</wordasword>, otherwise encoding will stop immediately.
|
||||
When the encoder is already stopped, this command does
|
||||
nothing.</entry>
|
||||
nothing. mem2mem encoders will send a <constant>V4L2_EVENT_EOS</constant> event
|
||||
when the last frame has been decoded and all frames are ready to be dequeued and
|
||||
will set the <constant>V4L2_BUF_FLAG_LAST</constant> buffer flag on the last
|
||||
buffer of the capture queue to indicate there will be no new buffers produced to
|
||||
dequeue. This buffer may be empty, indicated by the driver setting the
|
||||
<structfield>bytesused</structfield> field to 0. Once the
|
||||
<constant>V4L2_BUF_FLAG_LAST</constant> flag was set, the
|
||||
<link linkend="vidioc-qbuf">VIDIOC_DQBUF</link> ioctl will not block anymore,
|
||||
but return an &EPIPE;.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><constant>V4L2_ENC_CMD_PAUSE</constant></entry>
|
||||
|
@ -217,7 +217,8 @@ enumerated.</entry>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>reserved[2]</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry>Reserved space for future use.</entry>
|
||||
<entry>Reserved space for future use. Must be zeroed by drivers and
|
||||
applications.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
|
@ -223,7 +223,8 @@ application should zero out all members except for the
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>reserved[2]</structfield></entry>
|
||||
<entry></entry>
|
||||
<entry>Reserved space for future use.</entry>
|
||||
<entry>Reserved space for future use. Must be zeroed by drivers and
|
||||
applications.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
|
@ -184,7 +184,8 @@ of open() for more details.</entry>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>reserved[11]</structfield></entry>
|
||||
<entry>Reserved field for future use. Must be set to zero.</entry>
|
||||
<entry>Reserved field for future use. Drivers and applications must
|
||||
set the array to zero.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
|
@ -7,6 +7,8 @@
|
||||
<refnamediv>
|
||||
<refname>VIDIOC_G_DV_TIMINGS</refname>
|
||||
<refname>VIDIOC_S_DV_TIMINGS</refname>
|
||||
<refname>VIDIOC_SUBDEV_G_DV_TIMINGS</refname>
|
||||
<refname>VIDIOC_SUBDEV_S_DV_TIMINGS</refname>
|
||||
<refpurpose>Get or set DV timings for input or output</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
@ -34,7 +36,7 @@
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>VIDIOC_G_DV_TIMINGS, VIDIOC_S_DV_TIMINGS</para>
|
||||
<para>VIDIOC_G_DV_TIMINGS, VIDIOC_S_DV_TIMINGS, VIDIOC_SUBDEV_G_DV_TIMINGS, VIDIOC_SUBDEV_S_DV_TIMINGS</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
|
@ -7,6 +7,8 @@
|
||||
<refnamediv>
|
||||
<refname>VIDIOC_G_EDID</refname>
|
||||
<refname>VIDIOC_S_EDID</refname>
|
||||
<refname>VIDIOC_SUBDEV_G_EDID</refname>
|
||||
<refname>VIDIOC_SUBDEV_S_EDID</refname>
|
||||
<refpurpose>Get or set the EDID of a video receiver/transmitter</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
@ -42,7 +44,7 @@
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>VIDIOC_G_EDID, VIDIOC_S_EDID</para>
|
||||
<para>VIDIOC_G_EDID, VIDIOC_S_EDID, VIDIOC_SUBDEV_G_EDID, VIDIOC_SUBDEV_S_EDID</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
@ -82,6 +84,13 @@
|
||||
<para>If blocks have to be retrieved from the sink, then this call will block until they
|
||||
have been read.</para>
|
||||
|
||||
<para>If <structfield>start_block</structfield> and <structfield>blocks</structfield> are
|
||||
both set to 0 when <constant>VIDIOC_G_EDID</constant> is called, then the driver will
|
||||
set <structfield>blocks</structfield> to the total number of available EDID blocks
|
||||
and it will return 0 without copying any data. This is an easy way to discover how many
|
||||
EDID blocks there are. Note that if there are no EDID blocks available at all, then
|
||||
the driver will set <structfield>blocks</structfield> to 0 and it returns 0.</para>
|
||||
|
||||
<para>To set the EDID blocks of a receiver the application has to fill in the <structfield>pad</structfield>,
|
||||
<structfield>blocks</structfield> and <structfield>edid</structfield> fields and set
|
||||
<structfield>start_block</structfield> to 0. It is not possible to set part of an EDID,
|
||||
|
@ -199,7 +199,7 @@ exist no rectangle</emphasis> that satisfies the constraints.</para>
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>reserved[9]</structfield></entry>
|
||||
<entry>Reserved fields for future use.</entry>
|
||||
<entry>Reserved fields for future use. Drivers and applications must zero this array.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
|
@ -187,6 +187,16 @@ continue streaming.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><errorcode>EPIPE</errorcode></term>
|
||||
<listitem>
|
||||
<para><constant>VIDIOC_DQBUF</constant> returns this on an empty
|
||||
capture queue for mem2mem codecs if a buffer with the
|
||||
<constant>V4L2_BUF_FLAG_LAST</constant> was already dequeued and no new buffers
|
||||
are expected to become available.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
@ -6,6 +6,7 @@
|
||||
|
||||
<refnamediv>
|
||||
<refname>VIDIOC_QUERY_DV_TIMINGS</refname>
|
||||
<refname>VIDIOC_SUBDEV_QUERY_DV_TIMINGS</refname>
|
||||
<refpurpose>Sense the DV preset received by the current
|
||||
input</refpurpose>
|
||||
</refnamediv>
|
||||
@ -34,7 +35,7 @@ input</refpurpose>
|
||||
<varlistentry>
|
||||
<term><parameter>request</parameter></term>
|
||||
<listitem>
|
||||
<para>VIDIOC_QUERY_DV_TIMINGS</para>
|
||||
<para>VIDIOC_QUERY_DV_TIMINGS, VIDIOC_SUBDEV_QUERY_DV_TIMINGS</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
|
@ -60,7 +60,8 @@ buffer at any time after buffers have been allocated with the
|
||||
field. Valid index numbers range from zero
|
||||
to the number of buffers allocated with &VIDIOC-REQBUFS;
|
||||
(&v4l2-requestbuffers; <structfield>count</structfield>) minus one.
|
||||
The <structfield>reserved</structfield> field should to set to 0.
|
||||
The <structfield>reserved</structfield> and <structfield>reserved2 </structfield>
|
||||
fields must be set to 0.
|
||||
When using the <link linkend="planar-apis">multi-planar API</link>, the
|
||||
<structfield>m.planes</structfield> field must contain a userspace pointer to an
|
||||
array of &v4l2-plane; and the <structfield>length</structfield> field has
|
||||
|
@ -112,8 +112,8 @@ as the &v4l2-format; <structfield>type</structfield> field. See <xref
|
||||
<row>
|
||||
<entry>__u32</entry>
|
||||
<entry><structfield>reserved</structfield>[2]</entry>
|
||||
<entry>A place holder for future extensions. This array should
|
||||
be zeroed by applications.</entry>
|
||||
<entry>A place holder for future extensions. Drivers and applications
|
||||
must set the array to zero.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
|
@ -5,7 +5,8 @@
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>VIDIOC_SUBSCRIBE_EVENT, VIDIOC_UNSUBSCRIBE_EVENT</refname>
|
||||
<refname>VIDIOC_SUBSCRIBE_EVENT</refname>
|
||||
<refname>VIDIOC_UNSUBSCRIBE_EVENT</refname>
|
||||
<refpurpose>Subscribe or unsubscribe event</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
|
@ -1,12 +1,13 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % media-entities SYSTEM "./media-entities.tmpl"> %media-entities;
|
||||
<!ENTITY media-indices SYSTEM "./media-indices.tmpl">
|
||||
|
||||
<!ENTITY eg "e. g.">
|
||||
<!ENTITY ie "i. e.">
|
||||
<!ENTITY fd "File descriptor returned by <link linkend='func-open'><function>open()</function></link>.">
|
||||
<!ENTITY fe_fd "File descriptor returned by <link linkend='frontend_f_open'><function>open()</function></link>.">
|
||||
<!ENTITY i2c "I<superscript>2</superscript>C">
|
||||
<!ENTITY return-value "<title>Return Value</title><para>On success <returnvalue>0</returnvalue> is returned, on error <returnvalue>-1</returnvalue> and the <varname>errno</varname> variable is set appropriately. The generic error codes are described at the <link linkend='gen-errors'>Generic Error Codes</link> chapter.</para>">
|
||||
<!ENTITY return-value-dvb "<para>RETURN VALUE</para><para>On success <returnvalue>0</returnvalue> is returned, on error <returnvalue>-1</returnvalue> and the <varname>errno</varname> variable is set appropriately. The generic error codes are described at the <link linkend='gen-errors'>Generic Error Codes</link> chapter.</para>">
|
||||
@ -32,7 +33,7 @@
|
||||
<!ENTITY dash-ent-24 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
|
||||
]>
|
||||
|
||||
<book id="media_api">
|
||||
<book id="media_api" lang="en">
|
||||
<bookinfo>
|
||||
<title>LINUX MEDIA INFRASTRUCTURE API</title>
|
||||
|
||||
@ -60,28 +61,56 @@
|
||||
analog and digital TV receiver cards, AM/FM receiver cards,
|
||||
streaming capture and output devices, codec devices and remote
|
||||
controllers.</para>
|
||||
<para>It is divided into four parts.</para>
|
||||
<para>A typical media device hardware is shown at
|
||||
<xref linkend="typical_media_device" />.</para>
|
||||
<figure id="typical_media_device">
|
||||
<title>Typical Media Device</title>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="typical_media_device.svg" format="SVG" />
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>Typical Media Device Block Diagram</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
<para>The media infrastructure API was designed to control such
|
||||
devices. It is divided into four parts.</para>
|
||||
<para>The first part covers radio, video capture and output,
|
||||
cameras, analog TV devices and codecs.</para>
|
||||
<para>The second part covers the
|
||||
API used for digital TV and Internet reception via one of the
|
||||
several digital tv standards. While it is called as DVB API,
|
||||
in fact it covers several different video standards including
|
||||
DVB-T, DVB-S, DVB-C and ATSC. The API is currently being updated
|
||||
to document support also for DVB-S2, ISDB-T and ISDB-S.</para>
|
||||
DVB-T/T2, DVB-S/S2, DVB-C, ATSC, ISDB-T, ISDB-S,etc. The complete
|
||||
list of supported standards can be found at
|
||||
<xref linkend="fe-delivery-system-t" />.</para>
|
||||
<para>The third part covers the Remote Controller API.</para>
|
||||
<para>The fourth part covers the Media Controller API.</para>
|
||||
<para>It should also be noted that a media device may also have audio
|
||||
components, like mixers, PCM capture, PCM playback, etc, which
|
||||
are controlled via ALSA API.</para>
|
||||
<para>For additional information and for the latest development code,
|
||||
see: <ulink url="http://linuxtv.org">http://linuxtv.org</ulink>.</para>
|
||||
<para>For discussing improvements, reporting troubles, sending new drivers, etc, please mail to: <ulink url="http://vger.kernel.org/vger-lists.html#linux-media">Linux Media Mailing List (LMML).</ulink>.</para>
|
||||
</preface>
|
||||
|
||||
<part id="v4l2spec">&sub-v4l2;</part>
|
||||
<part id="dvbapi">&sub-dvbapi;</part>
|
||||
<part id="remotes">&sub-remote_controllers;</part>
|
||||
<part id="media_common">&sub-media-controller;</part>
|
||||
<part id="v4l2spec">
|
||||
&sub-v4l2;
|
||||
</part>
|
||||
<part id="dvbapi">
|
||||
&sub-dvbapi;
|
||||
</part>
|
||||
<part id="remotes">
|
||||
&sub-remote_controllers;
|
||||
</part>
|
||||
<part id="media_common">
|
||||
&sub-media-controller;
|
||||
</part>
|
||||
|
||||
<chapter id="gen_errors">&sub-gen-errors;</chapter>
|
||||
<chapter id="gen_errors">
|
||||
&sub-gen-errors;
|
||||
</chapter>
|
||||
|
||||
&sub-fdl-appendix;
|
||||
|
||||
|
@ -81,7 +81,7 @@
|
||||
SAS, Fibre Channel, FireWire, and ATAPI devices. SCSI packets are
|
||||
also commonly exchanged over Infiniband,
|
||||
<ulink url='http://i2o.shadowconnect.com/faq.php'>I20</ulink>, TCP/IP
|
||||
(<ulink url='http://en.wikipedia.org/wiki/ISCSI'>iSCSI</ulink>), even
|
||||
(<ulink url='https://en.wikipedia.org/wiki/ISCSI'>iSCSI</ulink>), even
|
||||
<ulink url='http://cyberelk.net/tim/parport/parscsi.html'>Parallel
|
||||
ports</ulink>.
|
||||
</para>
|
||||
|
@ -1496,7 +1496,7 @@ Canis Rufus and Zoicon5 and Anome and Hal Eisen"
|
||||
,month="July"
|
||||
,day="8"
|
||||
,year="2006"
|
||||
,note="\url{http://en.wikipedia.org/wiki/Read-copy-update}"
|
||||
,note="\url{https://en.wikipedia.org/wiki/Read-copy-update}"
|
||||
,annotation={
|
||||
Wikipedia RCU page as of July 8 2006.
|
||||
[Viewed August 21, 2006]
|
||||
|
@ -10,7 +10,19 @@ also be used to protect arrays. Three situations are as follows:
|
||||
|
||||
3. Resizeable Arrays
|
||||
|
||||
Each of these situations are discussed below.
|
||||
Each of these three situations involves an RCU-protected pointer to an
|
||||
array that is separately indexed. It might be tempting to consider use
|
||||
of RCU to instead protect the index into an array, however, this use
|
||||
case is -not- supported. The problem with RCU-protected indexes into
|
||||
arrays is that compilers can play way too many optimization games with
|
||||
integers, which means that the rules governing handling of these indexes
|
||||
are far more trouble than they are worth. If RCU-protected indexes into
|
||||
arrays prove to be particularly valuable (which they have not thus far),
|
||||
explicit cooperation from the compiler will be required to permit them
|
||||
to be safely used.
|
||||
|
||||
That aside, each of the three RCU-protected pointer situations are
|
||||
described in the following sections.
|
||||
|
||||
|
||||
Situation 1: Hash Tables
|
||||
@ -36,9 +48,9 @@ Quick Quiz: Why is it so important that updates be rare when
|
||||
Situation 3: Resizeable Arrays
|
||||
|
||||
Use of RCU for resizeable arrays is demonstrated by the grow_ary()
|
||||
function used by the System V IPC code. The array is used to map from
|
||||
semaphore, message-queue, and shared-memory IDs to the data structure
|
||||
that represents the corresponding IPC construct. The grow_ary()
|
||||
function formerly used by the System V IPC code. The array is used
|
||||
to map from semaphore, message-queue, and shared-memory IDs to the data
|
||||
structure that represents the corresponding IPC construct. The grow_ary()
|
||||
function does not acquire any locks; instead its caller must hold the
|
||||
ids->sem semaphore.
|
||||
|
||||
|
@ -47,11 +47,6 @@ checking of rcu_dereference() primitives:
|
||||
Use explicit check expression "c" along with
|
||||
srcu_read_lock_held()(). This is useful in code that
|
||||
is invoked by both SRCU readers and updaters.
|
||||
rcu_dereference_index_check(p, c):
|
||||
Use explicit check expression "c", but the caller
|
||||
must supply one of the rcu_read_lock_held() functions.
|
||||
This is useful in code that uses RCU-protected arrays
|
||||
that is invoked by both RCU readers and updaters.
|
||||
rcu_dereference_raw(p):
|
||||
Don't check. (Use sparingly, if at all.)
|
||||
rcu_dereference_protected(p, c):
|
||||
@ -64,11 +59,6 @@ checking of rcu_dereference() primitives:
|
||||
but retain the compiler constraints that prevent duplicating
|
||||
or coalescsing. This is useful when when testing the
|
||||
value of the pointer itself, for example, against NULL.
|
||||
rcu_access_index(idx):
|
||||
Return the value of the index and omit all barriers, but
|
||||
retain the compiler constraints that prevent duplicating
|
||||
or coalescsing. This is useful when when testing the
|
||||
value of the index itself, for example, against -1.
|
||||
|
||||
The rcu_dereference_check() check expression can be any boolean
|
||||
expression, but would normally include a lockdep expression. However,
|
||||
|
@ -25,17 +25,6 @@ o You must use one of the rcu_dereference() family of primitives
|
||||
for an example where the compiler can in fact deduce the exact
|
||||
value of the pointer, and thus cause misordering.
|
||||
|
||||
o Do not use single-element RCU-protected arrays. The compiler
|
||||
is within its right to assume that the value of an index into
|
||||
such an array must necessarily evaluate to zero. The compiler
|
||||
could then substitute the constant zero for the computation, so
|
||||
that the array index no longer depended on the value returned
|
||||
by rcu_dereference(). If the array index no longer depends
|
||||
on rcu_dereference(), then both the compiler and the CPU
|
||||
are within their rights to order the array access before the
|
||||
rcu_dereference(), which can cause the array access to return
|
||||
garbage.
|
||||
|
||||
o Avoid cancellation when using the "+" and "-" infix arithmetic
|
||||
operators. For example, for a given variable "x", avoid
|
||||
"(x-x)". There are similar arithmetic pitfalls from other
|
||||
@ -76,14 +65,15 @@ o Do not use the results from the boolean "&&" and "||" when
|
||||
dereferencing. For example, the following (rather improbable)
|
||||
code is buggy:
|
||||
|
||||
int a[2];
|
||||
int index;
|
||||
int force_zero_index = 1;
|
||||
int *p;
|
||||
int *q;
|
||||
|
||||
...
|
||||
|
||||
r1 = rcu_dereference(i1)
|
||||
r2 = a[r1 && force_zero_index]; /* BUGGY!!! */
|
||||
p = rcu_dereference(gp)
|
||||
q = &global_q;
|
||||
q += p != &oom_p1 && p != &oom_p2;
|
||||
r1 = *q; /* BUGGY!!! */
|
||||
|
||||
The reason this is buggy is that "&&" and "||" are often compiled
|
||||
using branches. While weak-memory machines such as ARM or PowerPC
|
||||
@ -94,14 +84,15 @@ o Do not use the results from relational operators ("==", "!=",
|
||||
">", ">=", "<", or "<=") when dereferencing. For example,
|
||||
the following (quite strange) code is buggy:
|
||||
|
||||
int a[2];
|
||||
int index;
|
||||
int flip_index = 0;
|
||||
int *p;
|
||||
int *q;
|
||||
|
||||
...
|
||||
|
||||
r1 = rcu_dereference(i1)
|
||||
r2 = a[r1 != flip_index]; /* BUGGY!!! */
|
||||
p = rcu_dereference(gp)
|
||||
q = &global_q;
|
||||
q += p > &oom_p;
|
||||
r1 = *q; /* BUGGY!!! */
|
||||
|
||||
As before, the reason this is buggy is that relational operators
|
||||
are often compiled using branches. And as before, although
|
||||
@ -193,6 +184,11 @@ o Be very careful about comparing pointers obtained from
|
||||
pointer. Note that the volatile cast in rcu_dereference()
|
||||
will normally prevent the compiler from knowing too much.
|
||||
|
||||
However, please note that if the compiler knows that the
|
||||
pointer takes on only one of two values, a not-equal
|
||||
comparison will provide exactly the information that the
|
||||
compiler needs to deduce the value of the pointer.
|
||||
|
||||
o Disable any value-speculation optimizations that your compiler
|
||||
might provide, especially if you are making use of feedback-based
|
||||
optimizations that take data collected from prior runs. Such
|
||||
|
@ -256,7 +256,9 @@ rcu_dereference()
|
||||
If you are going to be fetching multiple fields from the
|
||||
RCU-protected structure, using the local variable is of
|
||||
course preferred. Repeated rcu_dereference() calls look
|
||||
ugly and incur unnecessary overhead on Alpha CPUs.
|
||||
ugly, do not guarantee that the same pointer will be returned
|
||||
if an update happened while in the critical section, and incur
|
||||
unnecessary overhead on Alpha CPUs.
|
||||
|
||||
Note that the value returned by rcu_dereference() is valid
|
||||
only within the enclosing RCU read-side critical section.
|
||||
@ -879,9 +881,7 @@ SRCU: Initialization/cleanup
|
||||
|
||||
All: lockdep-checked RCU-protected pointer access
|
||||
|
||||
rcu_access_index
|
||||
rcu_access_pointer
|
||||
rcu_dereference_index_check
|
||||
rcu_dereference_raw
|
||||
rcu_lockdep_assert
|
||||
rcu_sleep_check
|
||||
|
@ -299,7 +299,9 @@ toward the stable maintainers by putting a line like this:
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
|
||||
into your patch.
|
||||
into the sign-off area of your patch (note, NOT an email recipient). You
|
||||
should also read Documentation/stable_kernel_rules.txt in addition to this
|
||||
file.
|
||||
|
||||
Note, however, that some subsystem maintainers want to come to their own
|
||||
conclusions on which patches should go to the stable trees. The networking
|
||||
|
@ -42,7 +42,7 @@ Adding ACPI support for an existing driver should be pretty
|
||||
straightforward. Here is the simplest example:
|
||||
|
||||
#ifdef CONFIG_ACPI
|
||||
static struct acpi_device_id mydrv_acpi_match[] = {
|
||||
static const struct acpi_device_id mydrv_acpi_match[] = {
|
||||
/* ACPI IDs here */
|
||||
{ }
|
||||
};
|
||||
@ -166,7 +166,7 @@ the platform device drivers. Below is an example where we add ACPI support
|
||||
to at25 SPI eeprom driver (this is meant for the above ACPI snippet):
|
||||
|
||||
#ifdef CONFIG_ACPI
|
||||
static struct acpi_device_id at25_acpi_match[] = {
|
||||
static const struct acpi_device_id at25_acpi_match[] = {
|
||||
{ "AT25", 0 },
|
||||
{ },
|
||||
};
|
||||
@ -230,7 +230,7 @@ Below is an example of how to add ACPI support to the existing mpu3050
|
||||
input driver:
|
||||
|
||||
#ifdef CONFIG_ACPI
|
||||
static struct acpi_device_id mpu3050_acpi_match[] = {
|
||||
static const struct acpi_device_id mpu3050_acpi_match[] = {
|
||||
{ "MPU3050", 0 },
|
||||
{ },
|
||||
};
|
||||
@ -359,3 +359,54 @@ the id should be set like:
|
||||
The ACPI id "XYZ0001" is then used to lookup an ACPI device directly under
|
||||
the MFD device and if found, that ACPI companion device is bound to the
|
||||
resulting child platform device.
|
||||
|
||||
Device Tree namespace link device ID
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The Device Tree protocol uses device indentification based on the "compatible"
|
||||
property whose value is a string or an array of strings recognized as device
|
||||
identifiers by drivers and the driver core. The set of all those strings may be
|
||||
regarded as a device indentification namespace analogous to the ACPI/PNP device
|
||||
ID namespace. Consequently, in principle it should not be necessary to allocate
|
||||
a new (and arguably redundant) ACPI/PNP device ID for a devices with an existing
|
||||
identification string in the Device Tree (DT) namespace, especially if that ID
|
||||
is only needed to indicate that a given device is compatible with another one,
|
||||
presumably having a matching driver in the kernel already.
|
||||
|
||||
In ACPI, the device identification object called _CID (Compatible ID) is used to
|
||||
list the IDs of devices the given one is compatible with, but those IDs must
|
||||
belong to one of the namespaces prescribed by the ACPI specification (see
|
||||
Section 6.1.2 of ACPI 6.0 for details) and the DT namespace is not one of them.
|
||||
Moreover, the specification mandates that either a _HID or an _ADR identificaion
|
||||
object be present for all ACPI objects representing devices (Section 6.1 of ACPI
|
||||
6.0). For non-enumerable bus types that object must be _HID and its value must
|
||||
be a device ID from one of the namespaces prescribed by the specification too.
|
||||
|
||||
The special DT namespace link device ID, PRP0001, provides a means to use the
|
||||
existing DT-compatible device identification in ACPI and to satisfy the above
|
||||
requirements following from the ACPI specification at the same time. Namely,
|
||||
if PRP0001 is returned by _HID, the ACPI subsystem will look for the
|
||||
"compatible" property in the device object's _DSD and will use the value of that
|
||||
property to identify the corresponding device in analogy with the original DT
|
||||
device identification algorithm. If the "compatible" property is not present
|
||||
or its value is not valid, the device will not be enumerated by the ACPI
|
||||
subsystem. Otherwise, it will be enumerated automatically as a platform device
|
||||
(except when an I2C or SPI link from the device to its parent is present, in
|
||||
which case the ACPI core will leave the device enumeration to the parent's
|
||||
driver) and the identification strings from the "compatible" property value will
|
||||
be used to find a driver for the device along with the device IDs listed by _CID
|
||||
(if present).
|
||||
|
||||
Analogously, if PRP0001 is present in the list of device IDs returned by _CID,
|
||||
the identification strings listed by the "compatible" property value (if present
|
||||
and valid) will be used to look for a driver matching the device, but in that
|
||||
case their relative priority with respect to the other device IDs listed by
|
||||
_HID and _CID depends on the position of PRP0001 in the _CID return package.
|
||||
Specifically, the device IDs returned by _HID and preceding PRP0001 in the _CID
|
||||
return package will be checked first. Also in that case the bus type the device
|
||||
will be enumerated to depends on the device ID returned by _HID.
|
||||
|
||||
It is valid to define device objects with a _HID returning PRP0001 and without
|
||||
the "compatible" property in the _DSD or a _CID as long as one of their
|
||||
ancestors provides a _DSD with a valid "compatible" property. Such device
|
||||
objects are then simply regarded as additional "blocks" providing hierarchical
|
||||
configuration information to the driver of the composite ancestor device.
|
||||
|
@ -33,20 +33,23 @@ directory, with first 8 configurable by user and additional
|
||||
Cycle counter is described by a "type" value 0xff and does
|
||||
not require any other settings.
|
||||
|
||||
The driver also provides a "cpumask" sysfs attribute, which contains
|
||||
a single CPU ID, of the processor which will be used to handle all
|
||||
the CCN PMU events. It is recommended that the user space tools
|
||||
request the events on this processor (if not, the perf_event->cpu value
|
||||
will be overwritten anyway). In case of this processor being offlined,
|
||||
the events are migrated to another one and the attribute is updated.
|
||||
|
||||
Example of perf tool use:
|
||||
|
||||
/ # perf list | grep ccn
|
||||
ccn/cycles/ [Kernel PMU event]
|
||||
<...>
|
||||
ccn/xp_valid_flit/ [Kernel PMU event]
|
||||
ccn/xp_valid_flit,xp=?,port=?,vc=?,dir=?/ [Kernel PMU event]
|
||||
<...>
|
||||
|
||||
/ # perf stat -C 0 -e ccn/cycles/,ccn/xp_valid_flit,xp=1,port=0,vc=1,dir=1/ \
|
||||
/ # perf stat -a -e ccn/cycles/,ccn/xp_valid_flit,xp=1,port=0,vc=1,dir=1/ \
|
||||
sleep 1
|
||||
|
||||
The driver does not support sampling, therefore "perf record" will
|
||||
not work. Also notice that only single cpu is being selected
|
||||
("-C 0") - this is because perf framework does not support
|
||||
"non-CPU related" counters (yet?) so system-wide session ("-a")
|
||||
would try (and in most cases fail) to set up the same event
|
||||
per each CPU.
|
||||
not work. Per-task (without "-a") perf sessions are not supported.
|
||||
|
@ -60,4 +60,4 @@ Introduction
|
||||
Document Author
|
||||
---------------
|
||||
|
||||
Viresh Kumar <viresh.linux@gmail.com>, (c) 2010-2012 ST Microelectronics
|
||||
Viresh Kumar <vireshk@kernel.org>, (c) 2010-2012 ST Microelectronics
|
||||
|
53
Documentation/arm/Samsung/Bootloader-interface.txt
Normal file
53
Documentation/arm/Samsung/Bootloader-interface.txt
Normal file
@ -0,0 +1,53 @@
|
||||
Interface between kernel and boot loaders on Exynos boards
|
||||
==========================================================
|
||||
|
||||
Author: Krzysztof Kozlowski
|
||||
Date : 6 June 2015
|
||||
|
||||
The document tries to describe currently used interface between Linux kernel
|
||||
and boot loaders on Samsung Exynos based boards. This is not a definition
|
||||
of interface but rather a description of existing state, a reference
|
||||
for information purpose only.
|
||||
|
||||
In the document "boot loader" means any of following: U-boot, proprietary
|
||||
SBOOT or any other firmware for ARMv7 and ARMv8 initializing the board before
|
||||
executing kernel.
|
||||
|
||||
|
||||
1. Non-Secure mode
|
||||
Address: sysram_ns_base_addr
|
||||
Offset Value Purpose
|
||||
=============================================================================
|
||||
0x08 exynos_cpu_resume_ns System suspend
|
||||
0x0c 0x00000bad (Magic cookie) System suspend
|
||||
0x1c exynos4_secondary_startup Secondary CPU boot
|
||||
0x1c + 4*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot
|
||||
0x20 0xfcba0d10 (Magic cookie) AFTR
|
||||
0x24 exynos_cpu_resume_ns AFTR
|
||||
0x28 + 4*cpu 0x8 (Magic cookie, Exynos3250) AFTR
|
||||
|
||||
|
||||
2. Secure mode
|
||||
Address: sysram_base_addr
|
||||
Offset Value Purpose
|
||||
=============================================================================
|
||||
0x00 exynos4_secondary_startup Secondary CPU boot
|
||||
0x04 exynos4_secondary_startup (Exynos542x) Secondary CPU boot
|
||||
4*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot
|
||||
0x20 exynos_cpu_resume (Exynos4210 r1.0) AFTR
|
||||
0x24 0xfcba0d10 (Magic cookie, Exynos4210 r1.0) AFTR
|
||||
|
||||
Address: pmu_base_addr
|
||||
Offset Value Purpose
|
||||
=============================================================================
|
||||
0x0800 exynos_cpu_resume AFTR
|
||||
0x0814 exynos4_secondary_startup (Exynos4210 r1.1) Secondary CPU boot
|
||||
0x0818 0xfcba0d10 (Magic cookie, Exynos4210 r1.1) AFTR
|
||||
0x081C exynos_cpu_resume (Exynos4210 r1.1) AFTR
|
||||
|
||||
|
||||
3. Other (regardless of secure/non-secure mode)
|
||||
Address: pmu_base_addr
|
||||
Offset Value Purpose
|
||||
=============================================================================
|
||||
0x0908 Non-zero (only Exynos3250) Secondary CPU boot up indicator
|
32
Documentation/arm/stm32/overview.txt
Normal file
32
Documentation/arm/stm32/overview.txt
Normal file
@ -0,0 +1,32 @@
|
||||
STM32 ARM Linux Overview
|
||||
========================
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
The STMicroelectronics family of Cortex-M based MCUs are supported by the
|
||||
'STM32' platform of ARM Linux. Currently only the STM32F429 is supported.
|
||||
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
A generic configuration is provided for STM32 family, and can be used as the
|
||||
default by
|
||||
make stm32_defconfig
|
||||
|
||||
Layout
|
||||
------
|
||||
|
||||
All the files for multiple machine families are located in the platform code
|
||||
contained in arch/arm/mach-stm32
|
||||
|
||||
There is a generic board board-dt.c in the mach folder which support
|
||||
Flattened Device Tree, which means, it works with any compatible board with
|
||||
Device Trees.
|
||||
|
||||
|
||||
Document Author
|
||||
---------------
|
||||
|
||||
Maxime Coquelin <mcoquelin.stm32@gmail.com>
|
22
Documentation/arm/stm32/stm32f429-overview.txt
Normal file
22
Documentation/arm/stm32/stm32f429-overview.txt
Normal file
@ -0,0 +1,22 @@
|
||||
STM32F429 Overview
|
||||
==================
|
||||
|
||||
Introduction
|
||||
------------
|
||||
The STM32F429 is a Cortex-M4 MCU aimed at various applications.
|
||||
It features:
|
||||
- ARM Cortex-M4 up to 180MHz with FPU
|
||||
- 2MB internal Flash Memory
|
||||
- External memory support through FMC controller (PSRAM, SDRAM, NOR, NAND)
|
||||
- I2C, SPI, SAI, CAN, USB OTG, Ethernet controllers
|
||||
- LCD controller & Camera interface
|
||||
- Cryptographic processor
|
||||
|
||||
Resources
|
||||
---------
|
||||
Datasheet and reference manual are publicly available on ST website:
|
||||
- http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1577/LN1806?ecmp=stm32f429-439_pron_pr-ces2014_nov2013
|
||||
|
||||
Document Author
|
||||
---------------
|
||||
Maxime Coquelin <mcoquelin.stm32@gmail.com>
|
@ -36,7 +36,7 @@ SunXi family
|
||||
+ User Manual
|
||||
http://dl.linux-sunxi.org/A20/A20%20User%20Manual%202013-03-22.pdf
|
||||
|
||||
- Allwinner A23
|
||||
- Allwinner A23 (sun8i)
|
||||
+ Datasheet
|
||||
http://dl.linux-sunxi.org/A23/A23%20Datasheet%20V1.0%2020130830.pdf
|
||||
+ User Manual
|
||||
@ -55,7 +55,23 @@ SunXi family
|
||||
+ User Manual
|
||||
http://dl.linux-sunxi.org/A31/A3x_release_document/A31s/IC/A31s%20User%20Manual%20%20V1.0%2020130322.pdf
|
||||
|
||||
- Allwinner A33 (sun8i)
|
||||
+ Datasheet
|
||||
http://dl.linux-sunxi.org/A33/A33%20Datasheet%20release%201.1.pdf
|
||||
+ User Manual
|
||||
http://dl.linux-sunxi.org/A33/A33%20user%20manual%20release%201.1.pdf
|
||||
|
||||
- Allwinner H3 (sun8i)
|
||||
+ Datasheet
|
||||
http://dl.linux-sunxi.org/H3/Allwinner_H3_Datasheet_V1.0.pdf
|
||||
|
||||
* Quad ARM Cortex-A15, Quad ARM Cortex-A7 based SoCs
|
||||
- Allwinner A80
|
||||
+ Datasheet
|
||||
http://dl.linux-sunxi.org/A80/A80_Datasheet_Revision_1.0_0404.pdf
|
||||
|
||||
* Octa ARM Cortex-A7 based SoCs
|
||||
- Allwinner A83T
|
||||
+ Not Supported
|
||||
+ Datasheet
|
||||
http://dl.linux-sunxi.org/A83T/A83T_datasheet_Revision_1.1.pdf
|
||||
|
@ -206,6 +206,6 @@ References
|
||||
[1] Lamport, L. "A New Solution of Dijkstra's Concurrent Programming
|
||||
Problem", Communications of the ACM 17, 8 (August 1974), 453-455.
|
||||
|
||||
http://en.wikipedia.org/wiki/Lamport%27s_bakery_algorithm
|
||||
https://en.wikipedia.org/wiki/Lamport%27s_bakery_algorithm
|
||||
|
||||
[2] linux/arch/arm/common/vlock.S, www.kernel.org.
|
||||
|
@ -45,11 +45,13 @@ sees fit.)
|
||||
|
||||
Requirement: MANDATORY
|
||||
|
||||
The device tree blob (dtb) must be placed on an 8-byte boundary within
|
||||
the first 512 megabytes from the start of the kernel image and must not
|
||||
cross a 2-megabyte boundary. This is to allow the kernel to map the
|
||||
blob using a single section mapping in the initial page tables.
|
||||
The device tree blob (dtb) must be placed on an 8-byte boundary and must
|
||||
not exceed 2 megabytes in size. Since the dtb will be mapped cacheable
|
||||
using blocks of up to 2 megabytes in size, it must not be placed within
|
||||
any 2M region which must be mapped with any specific attributes.
|
||||
|
||||
NOTE: versions prior to v4.2 also require that the DTB be placed within
|
||||
the 512 MB region starting at text_offset bytes below the kernel Image.
|
||||
|
||||
3. Decompress the kernel image
|
||||
------------------------------
|
||||
|
@ -17,6 +17,12 @@
|
||||
|
||||
#define DRIVER_NAME "gptimer_example"
|
||||
|
||||
#ifdef IRQ_TIMER5
|
||||
#define SAMPLE_IRQ_TIMER IRQ_TIMER5
|
||||
#else
|
||||
#define SAMPLE_IRQ_TIMER IRQ_TIMER2
|
||||
#endif
|
||||
|
||||
struct gptimer_data {
|
||||
uint32_t period, width;
|
||||
};
|
||||
@ -57,7 +63,8 @@ static int __init gptimer_example_init(void)
|
||||
}
|
||||
|
||||
/* grab the IRQ for the timer */
|
||||
ret = request_irq(IRQ_TIMER5, gptimer_example_irq, IRQF_SHARED, DRIVER_NAME, &data);
|
||||
ret = request_irq(SAMPLE_IRQ_TIMER, gptimer_example_irq,
|
||||
IRQF_SHARED, DRIVER_NAME, &data);
|
||||
if (ret) {
|
||||
printk(KERN_NOTICE DRIVER_NAME ": IRQ request failed\n");
|
||||
peripheral_free(P_TMR5);
|
||||
@ -65,7 +72,8 @@ static int __init gptimer_example_init(void)
|
||||
}
|
||||
|
||||
/* setup the timer and enable it */
|
||||
set_gptimer_config(TIMER5_id, WDTH_CAP | PULSE_HI | PERIOD_CNT | IRQ_ENA);
|
||||
set_gptimer_config(TIMER5_id,
|
||||
WDTH_CAP | PULSE_HI | PERIOD_CNT | IRQ_ENA);
|
||||
enable_gptimers(TIMER5bit);
|
||||
|
||||
return 0;
|
||||
@ -75,7 +83,7 @@ module_init(gptimer_example_init);
|
||||
static void __exit gptimer_example_exit(void)
|
||||
{
|
||||
disable_gptimers(TIMER5bit);
|
||||
free_irq(IRQ_TIMER5, &data);
|
||||
free_irq(SAMPLE_IRQ_TIMER, &data);
|
||||
peripheral_free(P_TMR5);
|
||||
}
|
||||
module_exit(gptimer_example_exit);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user