Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d5d16892 authored by Russell King's avatar Russell King
Browse files

Merge branches 'fiq' (early part), 'fixes', 'l2c' (early part) and 'misc' into for-next

Loading
Loading
Loading
Loading
+24 −0
Original line number Original line Diff line number Diff line
@@ -2545,6 +2545,30 @@ fields changed from _s32 to _u32.
      </orderedlist>
      </orderedlist>
    </section>
    </section>


    <section>
      <title>V4L2 in Linux 3.16</title>
      <orderedlist>
        <listitem>
	  <para>Added event V4L2_EVENT_SOURCE_CHANGE.
	  </para>
        </listitem>
      </orderedlist>
    </section>

    <section>
      <title>V4L2 in Linux 3.17</title>
      <orderedlist>
        <listitem>
	  <para>Extended &v4l2-pix-format;. Added format flags.
	  </para>
        </listitem>
        <listitem>
	  <para>Added compound control types and &VIDIOC-QUERY-EXT-CTRL;.
	  </para>
        </listitem>
      </orderedlist>
    </section>

    <section id="other">
    <section id="other">
      <title>Relation of V4L2 to other Linux multimedia APIs</title>
      <title>Relation of V4L2 to other Linux multimedia APIs</title>


+29 −6
Original line number Original line Diff line number Diff line
@@ -29,9 +29,12 @@ can suspend execution until the driver has captured data or is ready
to accept data for output.</para>
to accept data for output.</para>


    <para>When streaming I/O has been negotiated this function waits
    <para>When streaming I/O has been negotiated this function waits
until a buffer has been filled or displayed and can be dequeued with
until a buffer has been filled by the capture device and can be dequeued
the &VIDIOC-DQBUF; ioctl. When buffers are already in the outgoing
with the &VIDIOC-DQBUF; ioctl. For output devices this function waits
queue of the driver the function returns immediately.</para>
until the device is ready to accept a new buffer to be queued up with
the &VIDIOC-QBUF; ioctl for display. When buffers are already in the outgoing
queue of the driver (capture) or the incoming queue isn't full (display)
the function returns immediately.</para>


    <para>On success <function>poll()</function> returns the number of
    <para>On success <function>poll()</function> returns the number of
file descriptors that have been selected (that is, file descriptors
file descriptors that have been selected (that is, file descriptors
@@ -44,10 +47,22 @@ Capture devices set the <constant>POLLIN</constant> and
flags. When the function timed out it returns a value of zero, on
flags. When the function timed out it returns a value of zero, on
failure it returns <returnvalue>-1</returnvalue> and the
failure it returns <returnvalue>-1</returnvalue> and the
<varname>errno</varname> variable is set appropriately. When the
<varname>errno</varname> variable is set appropriately. When the
application did not call &VIDIOC-QBUF; or &VIDIOC-STREAMON; yet the
application did not call &VIDIOC-STREAMON; the
<function>poll()</function> function succeeds, but sets the
<function>poll()</function> function succeeds, but sets the
<constant>POLLERR</constant> flag in the
<constant>POLLERR</constant> flag in the
<structfield>revents</structfield> field.</para>
<structfield>revents</structfield> field. When the
application has called &VIDIOC-STREAMON; for a capture device but hasn't
yet called &VIDIOC-QBUF;, the <function>poll()</function> function
succeeds and sets the <constant>POLLERR</constant> flag in the
<structfield>revents</structfield> field. For output devices this
same situation will cause <function>poll()</function> to succeed
as well, but it sets the <constant>POLLOUT</constant> and
<constant>POLLWRNORM</constant> flags in the <structfield>revents</structfield>
field.</para>

    <para>If an event occurred (see &VIDIOC-DQEVENT;) then
<constant>POLLPRI</constant> will be set in the <structfield>revents</structfield>
field and <function>poll()</function> will return.</para>


    <para>When use of the <function>read()</function> function has
    <para>When use of the <function>read()</function> function has
been negotiated and the driver does not capture yet, the
been negotiated and the driver does not capture yet, the
@@ -58,10 +73,18 @@ continuously (as opposed to, for example, still images) the function
may return immediately.</para>
may return immediately.</para>


    <para>When use of the <function>write()</function> function has
    <para>When use of the <function>write()</function> function has
been negotiated the <function>poll</function> function just waits
been negotiated and the driver does not stream yet, the
<function>poll</function> function starts streaming. When that fails
it returns a <constant>POLLERR</constant> as above. Otherwise it waits
until the driver is ready for a non-blocking
until the driver is ready for a non-blocking
<function>write()</function> call.</para>
<function>write()</function> call.</para>


    <para>If the caller is only interested in events (just
<constant>POLLPRI</constant> is set in the <structfield>events</structfield>
field), then <function>poll()</function> will <emphasis>not</emphasis>
start streaming if the driver does not stream yet. This makes it
possible to just poll for events and not for buffers.</para>

    <para>All drivers implementing the <function>read()</function> or
    <para>All drivers implementing the <function>read()</function> or
<function>write()</function> function or streaming I/O must also
<function>write()</function> function or streaming I/O must also
support the <function>poll()</function> function.</para>
support the <function>poll()</function> function.</para>
+6 −5
Original line number Original line Diff line number Diff line
@@ -152,10 +152,11 @@ structs, ioctls) must be noted in more detail in the history chapter
applications. -->
applications. -->


      <revision>
      <revision>
	<revnumber>3.16</revnumber>
	<revnumber>3.17</revnumber>
	<date>2014-05-27</date>
	<date>2014-08-04</date>
	<authorinitials>lp</authorinitials>
	<authorinitials>lp, hv</authorinitials>
	<revremark>Extended &v4l2-pix-format;. Added format flags.
	<revremark>Extended &v4l2-pix-format;. Added format flags. Added compound control types
and VIDIOC_QUERY_EXT_CTRL.
	</revremark>
	</revremark>
      </revision>
      </revision>


@@ -538,7 +539,7 @@ and discussions on the V4L mailing list.</revremark>
</partinfo>
</partinfo>


<title>Video for Linux Two API Specification</title>
<title>Video for Linux Two API Specification</title>
 <subtitle>Revision 3.14</subtitle>
 <subtitle>Revision 3.17</subtitle>


  <chapter id="common">
  <chapter id="common">
    &sub-common;
    &sub-common;
+1 −1
Original line number Original line Diff line number Diff line
@@ -119,7 +119,7 @@
	  </row>
	  </row>
	  <row>
	  <row>
	    <entry>&v4l2-rect;</entry>
	    <entry>&v4l2-rect;</entry>
	    <entry><structfield>rect</structfield></entry>
	    <entry><structfield>r</structfield></entry>
	    <entry>Selection rectangle, in pixels.</entry>
	    <entry>Selection rectangle, in pixels.</entry>
	  </row>
	  </row>
	  <row>
	  <row>
+3 −3
Original line number Original line Diff line number Diff line
@@ -345,14 +345,14 @@ the named feature on.
The implementation is simple.
The implementation is simple.


Setting the flag 'cpuset.memory_spread_page' turns on a per-process flag
Setting the flag 'cpuset.memory_spread_page' turns on a per-process flag
PF_SPREAD_PAGE for each task that is in that cpuset or subsequently
PFA_SPREAD_PAGE for each task that is in that cpuset or subsequently
joins that cpuset.  The page allocation calls for the page cache
joins that cpuset.  The page allocation calls for the page cache
is modified to perform an inline check for this PF_SPREAD_PAGE task
is modified to perform an inline check for this PFA_SPREAD_PAGE task
flag, and if set, a call to a new routine cpuset_mem_spread_node()
flag, and if set, a call to a new routine cpuset_mem_spread_node()
returns the node to prefer for the allocation.
returns the node to prefer for the allocation.


Similarly, setting 'cpuset.memory_spread_slab' turns on the flag
Similarly, setting 'cpuset.memory_spread_slab' turns on the flag
PF_SPREAD_SLAB, and appropriately marked slab caches will allocate
PFA_SPREAD_SLAB, and appropriately marked slab caches will allocate
pages from the node returned by cpuset_mem_spread_node().
pages from the node returned by cpuset_mem_spread_node().


The cpuset_mem_spread_node() routine is also simple.  It uses the
The cpuset_mem_spread_node() routine is also simple.  It uses the
Loading