Merge branch 'patchwork' into v4l_for_linus

* patchwork: (204 commits)
  [media] rc: sunxi-cir: Initialize the spinlock properly
  [media] rtl2832: do not filter out slave TS null packets
  [media] rtl2832: print reg number on error case
  [media] rtl28xxu: return demod reg page from driver cache
  [media] coda: enable MPEG-2 ES decoding
  [media] coda: don't start streaming without queued buffers
  [media] coda: hook up vidioc_prepare_buf
  [media] coda: relax coda_jpeg_check_buffer for trailing bytes
  [media] coda: make to_coda_video_device static
  [media] s5p-mfc: remove volatile attribute from MFC register addresses
  [media] s5p-mfc: merge together s5p_mfc_hw_call and s5p_mfc_hw_call_void
  [media] s5p-mfc: use spinlock to protect MFC context
  [media] s5p-mfc: remove unnecessary callbacks
  [media] s5p-mfc: make queue cleanup code common
  [media] s5p-mfc: use one implementation of s5p_mfc_get_new_ctx
  [media] s5p-mfc: constify s5p_mfc_codec_ops structures
  [media] au8522: Avoid memory leak for device config data
  [media] ir-lirc-codec.c: don't leak lirc->drv-rbuf
  [media] uvcvideo: small cleanup in uvc_video_clock_update()
  [media] uvcvideo: Fix reading the current exposure value of UVC
  ...
This commit is contained in:
Mauro Carvalho Chehab
2016-01-11 11:13:27 -02:00
528 changed files with 4546 additions and 4102 deletions
+16 -68
View File
@@ -238,78 +238,26 @@ X!Isound/sound_firmware.c
!Iinclude/media/videobuf2-memops.h !Iinclude/media/videobuf2-memops.h
</sect1> </sect1>
<sect1><title>Digital TV (DVB) devices</title> <sect1><title>Digital TV (DVB) devices</title>
!Idrivers/media/dvb-core/dvb_ca_en50221.h <sect1><title>Digital TV Common functions</title>
!Idrivers/media/dvb-core/dvb_frontend.h
!Idrivers/media/dvb-core/dvb_math.h !Idrivers/media/dvb-core/dvb_math.h
!Idrivers/media/dvb-core/dvb_ringbuffer.h !Idrivers/media/dvb-core/dvb_ringbuffer.h
!Idrivers/media/dvb-core/dvbdev.h !Idrivers/media/dvb-core/dvbdev.h
<sect1><title>Digital TV Demux API</title> </sect1>
<para>The kernel demux API defines a driver-internal interface for <sect1><title>Digital TV Frontend kABI</title>
registering low-level, hardware specific driver to a hardware !Pdrivers/media/dvb-core/dvb_frontend.h Digital TV Frontend
independent demux layer. It is only of interest for Digital TV !Idrivers/media/dvb-core/dvb_frontend.h
device driver writers. The header file for this API is named </sect1>
<constant>demux.h</constant> and located in <sect1><title>Digital TV Demux kABI</title>
<constant>drivers/media/dvb-core</constant>.</para> !Pdrivers/media/dvb-core/demux.h Digital TV Demux
<sect1><title>Demux Callback API</title>
<para>The demux API should be implemented for each demux in the !Pdrivers/media/dvb-core/demux.h Demux Callback
system. It is used to select the TS source of a demux and to manage </sect1>
the demux resources. When the demux client allocates a resource via
the demux API, it receives a pointer to the API of that
resource.</para>
<para>Each demux receives its TS input from a DVB front-end or from
memory, as set via this demux API. In a system with more than one
front-end, the API can be used to select one of the DVB front-ends
as a TS source for a demux, unless this is fixed in the HW platform.
The demux API only controls front-ends regarding to their connections
with demuxes; the APIs used to set the other front-end parameters,
such as tuning, are not defined in this document.</para>
<para>The functions that implement the abstract interface demux should
be defined static or module private and registered to the Demux
core for external access. It is not necessary to implement every
function in the struct <constant>dmx_demux</constant>. For example,
a demux interface might support Section filtering, but not PES
filtering. The API client is expected to check the value of any
function pointer before calling the function: the value of NULL means
that the &#8220;function is not available&#8221;.</para>
<para>Whenever the functions of the demux API modify shared data,
the possibilities of lost update and race condition problems should
be addressed, e.g. by protecting parts of code with mutexes.</para>
<para>Note that functions called from a bottom half context must not
sleep. Even a simple memory allocation without using GFP_ATOMIC can
result in a kernel thread being put to sleep if swapping is needed.
For example, the Linux kernel calls the functions of a network device
interface from a bottom half context. Thus, if a demux API function
is called from network device code, the function must not sleep.
</para>
</sect1>
<section id="demux_callback_api">
<title>Demux Callback API</title>
<para>This kernel-space API comprises the callback functions that
deliver filtered data to the demux client. Unlike the other DVB
kABIs, these functions are provided by the client and called from
the demux code.</para>
<para>The function pointers of this abstract interface are not
packed into a structure as in the other demux APIs, because the
callback functions are registered and used independent of each
other. As an example, it is possible for the API client to provide
several callback functions for receiving TS packets and no
callbacks for PES packets or sections.</para>
<para>The functions that implement the callback API need not be
re-entrant: when a demux driver calls one of these functions,
the driver is not allowed to call the function again before
the original call returns. If a callback is triggered by a
hardware interrupt, it is recommended to use the Linux
&#8220;bottom half&#8221; mechanism or start a tasklet instead of
making the callback function call directly from a hardware
interrupt.</para>
<para>This mechanism is implemented by
<link linkend='API-dmx-ts-cb'>dmx_ts_cb()</link> and
<link linkend='API-dmx-section-cb'>dmx_section_cb()</link>.</para>
</section>
!Idrivers/media/dvb-core/demux.h !Idrivers/media/dvb-core/demux.h
</sect1> </sect1>
<sect1><title>Digital TV Conditional Access kABI</title>
!Idrivers/media/dvb-core/dvb_ca_en50221.h
</sect1>
</sect1>
<sect1><title>Remote Controller devices</title> <sect1><title>Remote Controller devices</title>
!Iinclude/media/rc-core.h !Iinclude/media/rc-core.h
!Iinclude/media/lirc_dev.h !Iinclude/media/lirc_dev.h
+4 -2
View File
@@ -199,8 +199,10 @@ DVB_DOCUMENTED = \
# #
install_media_images = \ install_media_images = \
$(Q)-mkdir $(MEDIA_OBJ_DIR)/media_api; \ $(Q)if [ "x$(findstring media_api.xml,$(DOCBOOKS))" != "x" ]; then \
cp $(OBJIMGFILES) $(MEDIA_SRC_DIR)/*.svg $(MEDIA_SRC_DIR)/v4l/*.svg $(MEDIA_OBJ_DIR)/media_api mkdir -p $(MEDIA_OBJ_DIR)/media_api; \
cp $(OBJIMGFILES) $(MEDIA_SRC_DIR)/*.svg $(MEDIA_SRC_DIR)/v4l/*.svg $(MEDIA_OBJ_DIR)/media_api; \
fi
$(MEDIA_OBJ_DIR)/%: $(MEDIA_SRC_DIR)/%.b64 $(MEDIA_OBJ_DIR)/%: $(MEDIA_SRC_DIR)/%.b64
$(Q)base64 -d $< >$@ $(Q)base64 -d $< >$@
@@ -76,7 +76,7 @@ int main(void)
<para>NOTE: While it is possible to directly call the Kernel code like the <para>NOTE: While it is possible to directly call the Kernel code like the
above example, it is strongly recommended to use above example, it is strongly recommended to use
<ulink url="http://linuxtv.org/docs/libdvbv5/index.html">libdvbv5</ulink>, <ulink url="https://linuxtv.org/docs/libdvbv5/index.html">libdvbv5</ulink>,
as it provides abstraction to work with the supported digital TV standards as it provides abstraction to work with the supported digital TV standards
and provides methods for usual operations like program scanning and to and provides methods for usual operations like program scanning and to
read/write channel descriptor files.</para> read/write channel descriptor files.</para>
+1 -1
View File
@@ -3,7 +3,7 @@
</para> </para>
<para>NOTE: This section is out of date, and the code below won't even <para>NOTE: This section is out of date, and the code below won't even
compile. Please refer to the compile. Please refer to the
<ulink url="http://linuxtv.org/docs/libdvbv5/index.html">libdvbv5</ulink> <ulink url="https://linuxtv.org/docs/libdvbv5/index.html">libdvbv5</ulink>
for updated/recommended examples. for updated/recommended examples.
</para> </para>
+1 -1
View File
@@ -32,7 +32,7 @@ and filtering several section and PES data streams at the same time.
new standard Linux DVB API. As a commitment to the development of new standard Linux DVB API. As a commitment to the development of
terminals based on open standards, Nokia and Convergence made it terminals based on open standards, Nokia and Convergence made it
available to all Linux developers and published it on available to all Linux developers and published it on
<ulink url="http://www.linuxtv.org/" /> in September 2000. <ulink url="https://linuxtv.org" /> in September 2000.
Convergence is the maintainer of the Linux DVB API. Together with the Convergence is the maintainer of the Linux DVB API. Together with the
LinuxTV community (i.e. you, the reader of this document), the Linux DVB LinuxTV community (i.e. you, the reader of this document), the Linux DVB
API will be constantly reviewed and improved. With the Linux driver for API will be constantly reviewed and improved. With the Linux driver for
@@ -5,7 +5,7 @@
* This program can be used and distributed without restrictions. * This program can be used and distributed without restrictions.
* *
* This program is provided with the V4L2 API * This program is provided with the V4L2 API
* see http://linuxtv.org/docs.php for more information * see https://linuxtv.org/docs.php for more information
*/ */
#include &lt;stdio.h&gt; #include &lt;stdio.h&gt;
+1 -1
View File
@@ -2666,7 +2666,7 @@ is useful to display images captured with V4L2 devices.</para>
<para>V4L2 does not support digital terrestrial, cable or <para>V4L2 does not support digital terrestrial, cable or
satellite broadcast. A separate project aiming at digital receivers satellite broadcast. A separate project aiming at digital receivers
exists. You can find its homepage at <ulink exists. You can find its homepage at <ulink
url="http://linuxtv.org">http://linuxtv.org</ulink>. The Linux DVB API url="https://linuxtv.org">https://linuxtv.org</ulink>. The Linux DVB API
has no connection to the V4L2 API except that drivers for hybrid has no connection to the V4L2 API except that drivers for hybrid
hardware may support both.</para> hardware may support both.</para>
</section> </section>
+5 -5
View File
@@ -699,7 +699,7 @@ linkend="v4l2-buf-type" /></entry>
buffer. It depends on the negotiated data format and may change with buffer. It depends on the negotiated data format and may change with
each buffer for compressed variable size data like JPEG images. each buffer for compressed variable size data like JPEG images.
Drivers must set this field when <structfield>type</structfield> Drivers must set this field when <structfield>type</structfield>
refers to an input stream, applications when it refers to an output stream. refers to a capture stream, applications when it refers to an output stream.
If the application sets this to 0 for an output stream, then If the application sets this to 0 for an output stream, then
<structfield>bytesused</structfield> will be set to the size of the <structfield>bytesused</structfield> will be set to the size of the
buffer (see the <structfield>length</structfield> field of this struct) by buffer (see the <structfield>length</structfield> field of this struct) by
@@ -720,14 +720,14 @@ linkend="buffer-flags" />.</entry>
<entry>Indicates the field order of the image in the <entry>Indicates the field order of the image in the
buffer, see <xref linkend="v4l2-field" />. This field is not used when buffer, see <xref linkend="v4l2-field" />. This field is not used when
the buffer contains VBI data. Drivers must set it when the buffer contains VBI data. Drivers must set it when
<structfield>type</structfield> refers to an input stream, <structfield>type</structfield> refers to a capture stream,
applications when it refers to an output stream.</entry> applications when it refers to an output stream.</entry>
</row> </row>
<row> <row>
<entry>struct timeval</entry> <entry>struct timeval</entry>
<entry><structfield>timestamp</structfield></entry> <entry><structfield>timestamp</structfield></entry>
<entry></entry> <entry></entry>
<entry><para>For input streams this is time when the first data <entry><para>For capture streams this is time when the first data
byte was captured, as returned by the byte was captured, as returned by the
<function>clock_gettime()</function> function for the relevant <function>clock_gettime()</function> function for the relevant
clock id; see <constant>V4L2_BUF_FLAG_TIMESTAMP_*</constant> in clock id; see <constant>V4L2_BUF_FLAG_TIMESTAMP_*</constant> in
@@ -866,7 +866,7 @@ must set this to 0.</entry>
<entry></entry> <entry></entry>
<entry>The number of bytes occupied by data in the plane <entry>The number of bytes occupied by data in the plane
(its payload). Drivers must set this field when <structfield>type</structfield> (its payload). Drivers must set this field when <structfield>type</structfield>
refers to an input stream, applications when it refers to an output stream. refers to a capture stream, applications when it refers to an output stream.
If the application sets this to 0 for an output stream, then If the application sets this to 0 for an output stream, then
<structfield>bytesused</structfield> will be set to the size of the <structfield>bytesused</structfield> will be set to the size of the
plane (see the <structfield>length</structfield> field of this struct) plane (see the <structfield>length</structfield> field of this struct)
@@ -919,7 +919,7 @@ must set this to 0.</entry>
<entry></entry> <entry></entry>
<entry>Offset in bytes to video data in the plane. <entry>Offset in bytes to video data in the plane.
Drivers must set this field when <structfield>type</structfield> Drivers must set this field when <structfield>type</structfield>
refers to an input stream, applications when it refers to an output stream. refers to a capture stream, applications when it refers to an output stream.
Note that data_offset is included in <structfield>bytesused</structfield>. Note that data_offset is included in <structfield>bytesused</structfield>.
So the size of the image in the plane is So the size of the image in the plane is
<structfield>bytesused</structfield>-<structfield>data_offset</structfield> at <structfield>bytesused</structfield>-<structfield>data_offset</structfield> at
+10
View File
@@ -151,6 +151,16 @@ Rubli, Andy Walls, Muralidharan Karicheri, Mauro Carvalho Chehab,
structs, ioctls) must be noted in more detail in the history chapter structs, ioctls) must be noted in more detail in the history chapter
(compat.xml), along with the possible impact on existing drivers and (compat.xml), along with the possible impact on existing drivers and
applications. --> applications. -->
<revision>
<revnumber>4.5</revnumber>
<date>2015-10-29</date>
<authorinitials>rr</authorinitials>
<revremark>Extend vidioc-g-ext-ctrls;. Replace ctrl_class with a new
union with ctrl_class and which. Which is used to select the current value of
the control or the default value.
</revremark>
</revision>
<revision> <revision>
<revnumber>4.4</revnumber> <revnumber>4.4</revnumber>
<date>2015-05-26</date> <date>2015-05-26</date>
@@ -58,7 +58,7 @@
<para>This ioctl is used to create buffers for <link linkend="mmap">memory <para>This ioctl is used to create buffers for <link linkend="mmap">memory
mapped</link> or <link linkend="userp">user pointer</link> or <link mapped</link> or <link linkend="userp">user pointer</link> or <link
linkend="dmabuf">DMA buffer</link> I/O. It can be used as an alternative or in linkend="dmabuf">DMA buffer</link> I/O. It can be used as an alternative or in
addition to the <constant>VIDIOC_REQBUFS</constant> ioctl, when a tighter addition to the &VIDIOC-REQBUFS; ioctl, when a tighter
control over buffers is required. This ioctl can be called multiple times to control over buffers is required. This ioctl can be called multiple times to
create buffers of different sizes.</para> create buffers of different sizes.</para>
@@ -71,30 +71,28 @@ zeroed.</para>
<para>The <structfield>format</structfield> field specifies the image format <para>The <structfield>format</structfield> field specifies the image format
that the buffers must be able to handle. The application has to fill in this that the buffers must be able to handle. The application has to fill in this
&v4l2-format;. Usually this will be done using the &v4l2-format;. Usually this will be done using the &VIDIOC-TRY-FMT; or &VIDIOC-G-FMT; ioctls
<constant>VIDIOC_TRY_FMT</constant> or <constant>VIDIOC_G_FMT</constant> ioctl() to ensure that the requested format is supported by the driver.
to ensure that the requested format is supported by the driver. Unsupported Based on the format's <structfield>type</structfield> field the requested buffer
formats will result in an error.</para> size (for single-planar) or plane sizes (for multi-planar formats) will be
used for the allocated buffers. The driver may return an error if the size(s)
are not supported by the hardware (usually because they are too small).</para>
<para>The buffers created by this ioctl will have as minimum size the size <para>The buffers created by this ioctl will have as minimum size the size
defined by the <structfield>format.pix.sizeimage</structfield> field. If the defined by the <structfield>format.pix.sizeimage</structfield> field (or the
corresponding fields for other format types). Usually if the
<structfield>format.pix.sizeimage</structfield> field is less than the minimum <structfield>format.pix.sizeimage</structfield> field is less than the minimum
required for the given format, then <structfield>sizeimage</structfield> will be required for the given format, then an error will be returned since drivers will
increased by the driver to that minimum to allocate the buffers. If it is typically not allow this. If it is larger, then the value will be used as-is.
larger, then the value will be used as-is. The same applies to the In other words, the driver may reject the requested size, but if it is accepted
<structfield>sizeimage</structfield> field of the the driver will use it unchanged.</para>
<structname>v4l2_plane_pix_format</structname> structure in the case of
multiplanar formats.</para>
<para>When the ioctl is called with a pointer to this structure the driver <para>When the ioctl is called with a pointer to this structure the driver
will attempt to allocate up to the requested number of buffers and store the will attempt to allocate up to the requested number of buffers and store the
actual number allocated and the starting index in the actual number allocated and the starting index in the
<structfield>count</structfield> and the <structfield>index</structfield> fields <structfield>count</structfield> and the <structfield>index</structfield> fields
respectively. On return <structfield>count</structfield> can be smaller than respectively. On return <structfield>count</structfield> can be smaller than
the number requested. The driver may also increase buffer sizes if required, the number requested.</para>
however, it will not update <structfield>sizeimage</structfield> field values.
The user has to use <constant>VIDIOC_QUERYBUF</constant> to retrieve that
information.</para>
<table pgwide="1" frame="none" id="v4l2-create-buffers"> <table pgwide="1" frame="none" id="v4l2-create-buffers">
<title>struct <structname>v4l2_create_buffers</structname></title> <title>struct <structname>v4l2_create_buffers</structname></title>
@@ -99,7 +99,7 @@ if the driver supports writing registers to the device.</para>
<para>We recommended the <application>v4l2-dbg</application> <para>We recommended the <application>v4l2-dbg</application>
utility over calling this ioctl directly. It is available from the utility over calling this ioctl directly. It is available from the
LinuxTV v4l-dvb repository; see <ulink LinuxTV v4l-dvb repository; see <ulink
url="http://linuxtv.org/repo/">http://linuxtv.org/repo/</ulink> for url="https://linuxtv.org/repo/">https://linuxtv.org/repo/</ulink> for
access instructions.</para> access instructions.</para>
<!-- Note for convenience vidioc-dbg-g-register.sgml <!-- Note for convenience vidioc-dbg-g-register.sgml
@@ -117,7 +117,7 @@ However when a driver supports these ioctls it must also support
<para>We recommended the <application>v4l2-dbg</application> <para>We recommended the <application>v4l2-dbg</application>
utility over calling these ioctls directly. It is available from the utility over calling these ioctls directly. It is available from the
LinuxTV v4l-dvb repository; see <ulink LinuxTV v4l-dvb repository; see <ulink
url="http://linuxtv.org/repo/">http://linuxtv.org/repo/</ulink> for url="https://linuxtv.org/repo/">https://linuxtv.org/repo/</ulink> for
access instructions.</para> access instructions.</para>
<!-- Note for convenience vidioc-dbg-g-chip-info.sgml <!-- Note for convenience vidioc-dbg-g-chip-info.sgml
@@ -198,7 +198,7 @@ video4linux-list@redhat.com on 17 Oct 2002
<constant>V4L2_STD_ATSC_16_VSB</constant> are U.S. terrestrial digital <constant>V4L2_STD_ATSC_16_VSB</constant> are U.S. terrestrial digital
TV standards. Presently the V4L2 API does not support digital TV. See TV standards. Presently the V4L2 API does not support digital TV. See
also the Linux DVB API at <ulink also the Linux DVB API at <ulink
url="http://linuxtv.org">http://linuxtv.org</ulink>.</para> url="https://linuxtv.org">https://linuxtv.org</ulink>.</para>
<para><programlisting> <para><programlisting>
#define V4L2_STD_PAL_BG (V4L2_STD_PAL_B |\ #define V4L2_STD_PAL_BG (V4L2_STD_PAL_B |\
V4L2_STD_PAL_B1 |\ V4L2_STD_PAL_B1 |\
@@ -61,7 +61,7 @@ must belong to the same control class.</para>
<para>Applications must always fill in the <para>Applications must always fill in the
<structfield>count</structfield>, <structfield>count</structfield>,
<structfield>ctrl_class</structfield>, <structfield>which</structfield>,
<structfield>controls</structfield> and <structfield>controls</structfield> and
<structfield>reserved</structfield> fields of &v4l2-ext-controls;, and <structfield>reserved</structfield> fields of &v4l2-ext-controls;, and
initialize the &v4l2-ext-control; array pointed to by the initialize the &v4l2-ext-control; array pointed to by the
@@ -109,7 +109,7 @@ the driver whether wrong values are automatically adjusted to a valid
value or if an error is returned.</para> value or if an error is returned.</para>
<para>When the <structfield>id</structfield> or <para>When the <structfield>id</structfield> or
<structfield>ctrl_class</structfield> is invalid drivers return an <structfield>which</structfield> is invalid drivers return an
&EINVAL;. When the value is out of bounds drivers can choose to take &EINVAL;. When the value is out of bounds drivers can choose to take
the closest valid value or return an &ERANGE;, whatever seems more the closest valid value or return an &ERANGE;, whatever seems more
appropriate. In the first case the new value is set in appropriate. In the first case the new value is set in
@@ -223,7 +223,12 @@ Valid if <constant>V4L2_CTRL_FLAG_HAS_PAYLOAD</constant> is set for this control
<tgroup cols="3"> <tgroup cols="3">
&cs-str; &cs-str;
<tbody valign="top"> <tbody valign="top">
<row>
<entry>union</entry>
<entry>(anonymous)</entry>
</row>
<row> <row>
<entry></entry>
<entry>__u32</entry> <entry>__u32</entry>
<entry><structfield>ctrl_class</structfield></entry> <entry><structfield>ctrl_class</structfield></entry>
<entry>The control class to which all controls belong, see <entry>The control class to which all controls belong, see
@@ -233,6 +238,23 @@ belong to any control class. Whether drivers support this can be tested by setti
<structfield>ctrl_class</structfield> to 0 and calling <constant>VIDIOC_TRY_EXT_CTRLS</constant> <structfield>ctrl_class</structfield> to 0 and calling <constant>VIDIOC_TRY_EXT_CTRLS</constant>
with a <structfield>count</structfield> of 0. If that succeeds, then the driver with a <structfield>count</structfield> of 0. If that succeeds, then the driver
supports this feature.</entry> supports this feature.</entry>
</row>
<row>
<entry></entry>
<entry>__u32</entry>
<entry><structfield>which</structfield></entry>
<entry><para>Which value of the control to get/set/try. <constant>V4L2_CTRL_WHICH_CUR_VAL</constant>
will return the current value of the control and <constant>V4L2_CTRL_WHICH_DEF_VAL</constant> will
return the default value of the control. Please note that you can only get the default value of the
control, you cannot set or try it.</para>
<para>For backwards compatibility you can also use a control class here (see
<xref linkend="ctrl-class" />). In that case all controls have to belong to that
control class. This usage is deprecated, instead just use <constant>V4L2_CTRL_WHICH_CUR_VAL</constant>.
There are some very old drivers that do not yet support <constant>V4L2_CTRL_WHICH_CUR_VAL</constant>
and that require a control class here. You can test for such drivers by setting ctrl_class to
<constant>V4L2_CTRL_WHICH_CUR_VAL</constant> and calling VIDIOC_TRY_EXT_CTRLS with a count of 0.
If that fails, then the driver does not support <constant>V4L2_CTRL_WHICH_CUR_VAL</constant>.</para>
</entry>
</row> </row>
<row> <row>
<entry>__u32</entry> <entry>__u32</entry>
@@ -390,7 +412,7 @@ These controls are described in <xref linkend="rf-tuner-controls" />.</entry>
<listitem> <listitem>
<para>The &v4l2-ext-control; <structfield>id</structfield> <para>The &v4l2-ext-control; <structfield>id</structfield>
is invalid, the &v4l2-ext-controls; is invalid, the &v4l2-ext-controls;
<structfield>ctrl_class</structfield> is invalid, or the &v4l2-ext-control; <structfield>which</structfield> is invalid, or the &v4l2-ext-control;
<structfield>value</structfield> was inappropriate (e.g. the given menu <structfield>value</structfield> was inappropriate (e.g. the given menu
index is not supported by the driver). This error code is index is not supported by the driver). This error code is
also returned by the <constant>VIDIOC_S_EXT_CTRLS</constant> and also returned by the <constant>VIDIOC_S_EXT_CTRLS</constant> and
+3 -3
View File
@@ -19,10 +19,10 @@
<!ENTITY cs-def "<colspec colname='c1' colwidth='3*' /><colspec colname='c2' colwidth='1*' /><colspec colname='c3' colwidth='4*' /><spanspec spanname='hspan' namest='c1' nameend='c3' />"> <!ENTITY cs-def "<colspec colname='c1' colwidth='3*' /><colspec colname='c2' colwidth='1*' /><colspec colname='c3' colwidth='4*' /><spanspec spanname='hspan' namest='c1' nameend='c3' />">
<!-- Video for Linux mailing list address. --> <!-- Video for Linux mailing list address. -->
<!ENTITY v4l-ml "<ulink url='http://www.linuxtv.org/lists.php'>http://www.linuxtv.org/lists.php</ulink>"> <!ENTITY v4l-ml "<ulink url='https://linuxtv.org/lists.php'>https://linuxtv.org/lists.php</ulink>">
<!-- LinuxTV v4l-dvb repository. --> <!-- LinuxTV v4l-dvb repository. -->
<!ENTITY v4l-dvb "<ulink url='http://linuxtv.org/repo/'>http://linuxtv.org/repo/</ulink>"> <!ENTITY v4l-dvb "<ulink url='https://linuxtv.org/repo/'>https://linuxtv.org/repo/</ulink>">
<!ENTITY dash-ent-8 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> <!ENTITY dash-ent-8 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
<!ENTITY dash-ent-10 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> <!ENTITY dash-ent-10 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
<!ENTITY dash-ent-12 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>"> <!ENTITY dash-ent-12 "<entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry><entry>-</entry>">
@@ -91,7 +91,7 @@
components, like mixers, PCM capture, PCM playback, etc, which components, like mixers, PCM capture, PCM playback, etc, which
are controlled via ALSA API.</para> are controlled via ALSA API.</para>
<para>For additional information and for the latest development code, <para>For additional information and for the latest development code,
see: <ulink url="http://linuxtv.org">http://linuxtv.org</ulink>.</para> see: <ulink url="https://linuxtv.org">https://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> <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> </preface>
@@ -35,7 +35,7 @@ Required properties (tsin (child) node):
- tsin-num : tsin id of the InputBlock (must be between 0 to 6) - tsin-num : tsin id of the InputBlock (must be between 0 to 6)
- i2c-bus : phandle to the I2C bus DT node which the demodulators & tuners on this tsin channel are connected. - i2c-bus : phandle to the I2C bus DT node which the demodulators & tuners on this tsin channel are connected.
- rst-gpio : reset gpio for this tsin channel. - reset-gpios : reset gpio for this tsin channel.
Optional properties (tsin (child) node): Optional properties (tsin (child) node):
@@ -55,27 +55,27 @@ Example:
status = "okay"; status = "okay";
reg = <0x08a20000 0x10000>, <0x08a00000 0x4000>; reg = <0x08a20000 0x10000>, <0x08a00000 0x4000>;
reg-names = "stfe", "stfe-ram"; reg-names = "stfe", "stfe-ram";
interrupts = <0 34 0>, <0 35 0>; interrupts = <GIC_SPI 34 IRQ_TYPE_NONE>, <GIC_SPI 35 IRQ_TYPE_NONE>;
interrupt-names = "stfe-error-irq", "stfe-idle-irq"; interrupt-names = "stfe-error-irq", "stfe-idle-irq";
pinctrl-names = "tsin0-serial", "tsin0-parallel", "tsin3-serial",
"tsin4-serial", "tsin5-serial";
pinctrl-0 = <&pinctrl_tsin0_serial>; pinctrl-0 = <&pinctrl_tsin0_serial>;
pinctrl-1 = <&pinctrl_tsin0_parallel>; pinctrl-1 = <&pinctrl_tsin0_parallel>;
pinctrl-2 = <&pinctrl_tsin3_serial>; pinctrl-2 = <&pinctrl_tsin3_serial>;
pinctrl-3 = <&pinctrl_tsin4_serial_alt3>; pinctrl-3 = <&pinctrl_tsin4_serial_alt3>;
pinctrl-4 = <&pinctrl_tsin5_serial_alt1>; pinctrl-4 = <&pinctrl_tsin5_serial_alt1>;
pinctrl-names = "tsin0-serial",
"tsin0-parallel",
"tsin3-serial",
"tsin4-serial",
"tsin5-serial";
clocks = <&clk_s_c0_flexgen CLK_PROC_STFE>; clocks = <&clk_s_c0_flexgen CLK_PROC_STFE>;
clock-names = "stfe"; clock-names = "c8sectpfe";
/* tsin0 is TSA on NIMA */ /* tsin0 is TSA on NIMA */
tsin0: port@0 { tsin0: port@0 {
tsin-num = <0>; tsin-num = <0>;
serial-not-parallel; serial-not-parallel;
i2c-bus = <&ssc2>; i2c-bus = <&ssc2>;
rst-gpio = <&pio15 4 0>; reset-gpios = <&pio15 4 GPIO_ACTIVE_HIGH>;
dvb-card = <STV0367_TDA18212_NIMA_1>; dvb-card = <STV0367_TDA18212_NIMA_1>;
}; };
@@ -83,7 +83,7 @@ Example:
tsin-num = <3>; tsin-num = <3>;
serial-not-parallel; serial-not-parallel;
i2c-bus = <&ssc3>; i2c-bus = <&ssc3>;
rst-gpio = <&pio15 7 0>; reset-gpios = <&pio15 7 GPIO_ACTIVE_HIGH>;
dvb-card = <STV0367_TDA18212_NIMB_1>; dvb-card = <STV0367_TDA18212_NIMB_1>;
}; };
}; };
+2 -2
View File
@@ -45,7 +45,7 @@ Supported devices
See the LinuxTV DVB Wiki at www.linuxtv.org for a complete list of See the LinuxTV DVB Wiki at www.linuxtv.org for a complete list of
cards/drivers/firmwares: cards/drivers/firmwares:
http://www.linuxtv.org/wiki/index.php/DVB_USB https://linuxtv.org/wiki/index.php/DVB_USB
0. History & News: 0. History & News:
2005-06-30 - added support for WideView WT-220U (Thanks to Steve Chang) 2005-06-30 - added support for WideView WT-220U (Thanks to Steve Chang)
@@ -121,7 +121,7 @@ working.
Have a look at the Wikipage for the DVB-USB-drivers to find out, which firmware Have a look at the Wikipage for the DVB-USB-drivers to find out, which firmware
you need for your device: you need for your device:
http://www.linuxtv.org/wiki/index.php/DVB_USB https://linuxtv.org/wiki/index.php/DVB_USB
1.2. Compiling 1.2. Compiling
+1 -1
View File
@@ -76,7 +76,7 @@ Some very frequently asked questions about linuxtv-dvb
the TuxBox CVS many interesting DVB applications and the dBox2 the TuxBox CVS many interesting DVB applications and the dBox2
DVB source DVB source
http://www.linuxtv.org/downloads/ https://linuxtv.org/downloads
DVB Swiss Army Knife library and utilities DVB Swiss Army Knife library and utilities
http://www.nenie.org/misc/mpsys/ http://www.nenie.org/misc/mpsys/
+11 -11
View File
@@ -152,7 +152,7 @@ sub tda10046lifeview {
sub av7110 { sub av7110 {
my $sourcefile = "dvb-ttpci-01.fw-261d"; my $sourcefile = "dvb-ttpci-01.fw-261d";
my $url = "http://www.linuxtv.org/downloads/firmware/$sourcefile"; my $url = "https://linuxtv.org/downloads/firmware/$sourcefile";
my $hash = "603431b6259715a8e88f376a53b64e2f"; my $hash = "603431b6259715a8e88f376a53b64e2f";
my $outfile = "dvb-ttpci-01.fw"; my $outfile = "dvb-ttpci-01.fw";
@@ -303,7 +303,7 @@ sub vp7049 {
} }
sub dibusb { sub dibusb {
my $url = "http://www.linuxtv.org/downloads/firmware/dvb-usb-dibusb-5.0.0.11.fw"; my $url = "https://linuxtv.org/downloads/firmware/dvb-usb-dibusb-5.0.0.11.fw";
my $outfile = "dvb-dibusb-5.0.0.11.fw"; my $outfile = "dvb-dibusb-5.0.0.11.fw";
my $hash = "fa490295a527360ca16dcdf3224ca243"; my $hash = "fa490295a527360ca16dcdf3224ca243";
@@ -351,7 +351,7 @@ sub nxt2004 {
sub or51211 { sub or51211 {
my $fwfile = "dvb-fe-or51211.fw"; my $fwfile = "dvb-fe-or51211.fw";
my $url = "http://linuxtv.org/downloads/firmware/$fwfile"; my $url = "https://linuxtv.org/downloads/firmware/$fwfile";
my $hash = "d830949c771a289505bf9eafc225d491"; my $hash = "d830949c771a289505bf9eafc225d491";
checkstandard(); checkstandard();
@@ -364,7 +364,7 @@ sub or51211 {
sub cx231xx { sub cx231xx {
my $fwfile = "v4l-cx231xx-avcore-01.fw"; my $fwfile = "v4l-cx231xx-avcore-01.fw";
my $url = "http://linuxtv.org/downloads/firmware/$fwfile"; my $url = "https://linuxtv.org/downloads/firmware/$fwfile";
my $hash = "7d3bb956dc9df0eafded2b56ba57cc42"; my $hash = "7d3bb956dc9df0eafded2b56ba57cc42";
checkstandard(); checkstandard();
@@ -376,7 +376,7 @@ sub cx231xx {
} }
sub cx18 { sub cx18 {
my $url = "http://linuxtv.org/downloads/firmware/"; my $url = "https://linuxtv.org/downloads/firmware/";
my %files = ( my %files = (
'v4l-cx23418-apu.fw' => '588f081b562f5c653a3db1ad8f65939a', 'v4l-cx23418-apu.fw' => '588f081b562f5c653a3db1ad8f65939a',
@@ -450,7 +450,7 @@ sub mpc718 {
} }
sub cx23885 { sub cx23885 {
my $url = "http://linuxtv.org/downloads/firmware/"; my $url = "https://linuxtv.org/downloads/firmware/";
my %files = ( my %files = (
'v4l-cx23885-avcore-01.fw' => 'a9f8f5d901a7fb42f552e1ee6384f3bb', 'v4l-cx23885-avcore-01.fw' => 'a9f8f5d901a7fb42f552e1ee6384f3bb',
@@ -472,7 +472,7 @@ sub cx23885 {
} }
sub pvrusb2 { sub pvrusb2 {
my $url = "http://linuxtv.org/downloads/firmware/"; my $url = "https://linuxtv.org/downloads/firmware/";
my %files = ( my %files = (
'v4l-cx25840.fw' => 'dadb79e9904fc8af96e8111d9cb59320', 'v4l-cx25840.fw' => 'dadb79e9904fc8af96e8111d9cb59320',
@@ -494,7 +494,7 @@ sub pvrusb2 {
sub or51132_qam { sub or51132_qam {
my $fwfile = "dvb-fe-or51132-qam.fw"; my $fwfile = "dvb-fe-or51132-qam.fw";
my $url = "http://linuxtv.org/downloads/firmware/$fwfile"; my $url = "https://linuxtv.org/downloads/firmware/$fwfile";
my $hash = "7702e8938612de46ccadfe9b413cb3b5"; my $hash = "7702e8938612de46ccadfe9b413cb3b5";
checkstandard(); checkstandard();
@@ -507,7 +507,7 @@ sub or51132_qam {
sub or51132_vsb { sub or51132_vsb {
my $fwfile = "dvb-fe-or51132-vsb.fw"; my $fwfile = "dvb-fe-or51132-vsb.fw";
my $url = "http://linuxtv.org/downloads/firmware/$fwfile"; my $url = "https://linuxtv.org/downloads/firmware/$fwfile";
my $hash = "c16208e02f36fc439a557ad4c613364a"; my $hash = "c16208e02f36fc439a557ad4c613364a";
checkstandard(); checkstandard();
@@ -519,7 +519,7 @@ sub or51132_vsb {
} }
sub bluebird { sub bluebird {
my $url = "http://www.linuxtv.org/download/dvb/firmware/dvb-usb-bluebird-01.fw"; my $url = "https://linuxtv.org/download/dvb/firmware/dvb-usb-bluebird-01.fw";
my $outfile = "dvb-usb-bluebird-01.fw"; my $outfile = "dvb-usb-bluebird-01.fw";
my $hash = "658397cb9eba9101af9031302671f49d"; my $hash = "658397cb9eba9101af9031302671f49d";
@@ -677,7 +677,7 @@ sub drxk_hauppauge_hvr930c {
} }
sub drxk_terratec_h5 { sub drxk_terratec_h5 {
my $url = "http://www.linuxtv.org/downloads/firmware/"; my $url = "https://linuxtv.org/downloads/firmware/";
my $hash = "19000dada8e2741162ccc50cc91fa7f1"; my $hash = "19000dada8e2741162ccc50cc91fa7f1";
my $fwfile = "dvb-usb-terratec-h5-drxk.fw"; my $fwfile = "dvb-usb-terratec-h5-drxk.fw";
+5 -5
View File
@@ -2,12 +2,12 @@ Linux Digital Video Broadcast (DVB) subsystem
============================================= =============================================
The main development site and CVS repository for these The main development site and CVS repository for these
drivers is http://linuxtv.org/. drivers is https://linuxtv.org.
The developer mailing list linux-dvb is also hosted there, The developer mailing list linux-dvb is also hosted there,
see http://linuxtv.org/lists.php. Please check see https://linuxtv.org/lists.php. Please check
the archive http://linuxtv.org/pipermail/linux-dvb/ the archive https://linuxtv.org/pipermail/linux-dvb/
and the Wiki http://linuxtv.org/wiki/ and the Wiki https://linuxtv.org/wiki/
before asking newbie questions on the list. before asking newbie questions on the list.
API documentation, utilities and test/example programs API documentation, utilities and test/example programs
@@ -16,7 +16,7 @@ are available as part of the old driver package for Linux 2.4
We plan to split this into separate packages, but it's not We plan to split this into separate packages, but it's not
been done yet. been done yet.
http://linuxtv.org/downloads/ https://linuxtv.org/downloads/
What's inside this directory: What's inside this directory:

Some files were not shown because too many files have changed in this diff Show More