<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/usb/gadget/uvc_queue.c, branch linux-rolling-stable</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-rolling-stable</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-rolling-stable'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2014-07-16T17:50:36Z</updated>
<entry>
<title>usb: gadget: Gadget directory cleanup - group usb functions</title>
<updated>2014-07-16T17:50:36Z</updated>
<author>
<name>Andrzej Pietrasiewicz</name>
<email>andrzej.p@samsung.com</email>
</author>
<published>2014-07-15T11:09:46Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=00a2430ff07d4e0e0e7e24e02fd8adede333b797'/>
<id>urn:sha1:00a2430ff07d4e0e0e7e24e02fd8adede333b797</id>
<content type='text'>
The drivers/usb/gadget directory contains many files.
Files which are related can be distributed into separate directories.
This patch moves the USB functions implementations into a separate directory.

Signed-off-by: Andrzej Pietrasiewicz &lt;andrzej.p@samsung.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: uvc: Set the vb2 queue timestamp flags</title>
<updated>2014-05-15T16:07:56Z</updated>
<author>
<name>Laurent Pinchart</name>
<email>laurent.pinchart@ideasonboard.com</email>
</author>
<published>2014-03-23T15:19:50Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c9e44b5354000386ef1324d200bf99b597756594'/>
<id>urn:sha1:c9e44b5354000386ef1324d200bf99b597756594</id>
<content type='text'>
The vb2 queue timestamp_flags field must be set by drivers, as enforced
by a WARN_ON in vb2_queue_init. The UVC gadget driver failed to do so.
This resulted in the following warning.

[    2.104371] g_webcam gadget: uvc_function_bind
[    2.105567] ------------[ cut here ]------------
[    2.105567] ------------[ cut here ]------------
[    2.106779] WARNING: CPU: 0 PID: 1 at drivers/media/v4l2-core/videobuf2-core.c:2207 vb2_queue_init+0xa3/0x113()

Fix it.

Reported-by: Fengguang Wu &lt;fengguang.wu@intel.com&gt;
Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Reviewed-by: Hans Verkuil &lt;hans.verkuil@cisco.com&gt;
Acked-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: uvc: Set the V4L2 buffer field to V4L2_FIELD_NONE</title>
<updated>2014-05-15T16:07:52Z</updated>
<author>
<name>Laurent Pinchart</name>
<email>laurent.pinchart@ideasonboard.com</email>
</author>
<published>2014-03-23T15:25:09Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f17388cc29090a94268256f1a17445e715bc5d94'/>
<id>urn:sha1:f17388cc29090a94268256f1a17445e715bc5d94</id>
<content type='text'>
The UVC gadget driver doesn't support interlaced video but left the
buffer field uninitialized. Set it to V4L2_FIELD_NONE.

Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Reviewed-by: Hans Verkuil &lt;hans.verkuil@cisco.com&gt;
Acked-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: uvc: Switch to monotonic clock for buffer timestamps</title>
<updated>2014-05-15T16:07:47Z</updated>
<author>
<name>Laurent Pinchart</name>
<email>laurent.pinchart@ideasonboard.com</email>
</author>
<published>2014-03-23T15:25:09Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=16bf900f50ec7fd2f45dc3a297d7936075cdae55'/>
<id>urn:sha1:16bf900f50ec7fd2f45dc3a297d7936075cdae55</id>
<content type='text'>
The wall time clock isn't useful for applications as it can jump around
due to time adjustement. Switch to the monotonic clock.

Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Reviewed-by: Hans Verkuil &lt;hans.verkuil@cisco.com&gt;
Acked-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: uvc: Fix error handling in uvc_queue_buffer()</title>
<updated>2013-08-09T14:40:54Z</updated>
<author>
<name>Laurent Pinchart</name>
<email>laurent.pinchart@ideasonboard.com</email>
</author>
<published>2013-04-29T20:18:01Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=ebe864a6cb8e087ede047fa1fa6b6d06fcb9a9e4'/>
<id>urn:sha1:ebe864a6cb8e087ede047fa1fa6b6d06fcb9a9e4</id>
<content type='text'>
The conversion to videobuf2 failed to check the return value of
vb2_qbuf(). Fix it.

Cc: stable@vger.kernel.org
Reported-by: Michael Grzeschik &lt;mgr@pengutronix.de&gt;
Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Tested-By: Michael Grzeschik &lt;mgr@pengutronix.de&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: uvc: Implement videobuf2 .wait_prepare and .wait_finish operations</title>
<updated>2013-06-04T20:27:50Z</updated>
<author>
<name>Michael Grzeschik</name>
<email>m.grzeschik@pengutronix.de</email>
</author>
<published>2013-02-08T23:54:54Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=a2cc81d315c45cce35c0e50716fbee5dc00e28aa'/>
<id>urn:sha1:a2cc81d315c45cce35c0e50716fbee5dc00e28aa</id>
<content type='text'>
Those optional operations are used to release and reacquire the queue
lock when videobuf2 needs to perform operations that sleep for a long
time, such as waiting for a buffer to be complete. Implement them to
avoid blocking qbuf or streamoff calls when a dqbuf is in progress.

Signed-off-by: Michael Grzeschik &lt;m.grzeschik@pengutronix.de&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget/uvc: Add support for 'get_unmapped_area' for MMUless architectures</title>
<updated>2013-04-02T08:42:49Z</updated>
<author>
<name>Bhupesh Sharma</name>
<email>bhupesh.sharma@st.com</email>
</author>
<published>2013-03-28T09:41:53Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=2f1d57069338b14fcf4765ae2c25fc377da45b1f'/>
<id>urn:sha1:2f1d57069338b14fcf4765ae2c25fc377da45b1f</id>
<content type='text'>
This patch adds the support for 'get_unmapped_area' in UVC gadget
which is called when the 'mmap' system call is executed on MMUless
architectures.

Signed-off-by: Bhupesh Sharma &lt;bhupesh.sharma@st.com&gt;
Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget/uvc: Port UVC webcam gadget to use videobuf2 framework</title>
<updated>2013-04-02T08:42:48Z</updated>
<author>
<name>Bhupesh Sharma</name>
<email>bhupesh.sharma@st.com</email>
</author>
<published>2013-03-28T09:41:52Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=d692522577c051058efbe9e3c8aef68a4c36e4f7'/>
<id>urn:sha1:d692522577c051058efbe9e3c8aef68a4c36e4f7</id>
<content type='text'>
This patch reworks the videobuffer management logic present in the UVC
webcam gadget and ports it to use the "more apt" videobuf2 framework for
video buffer management.

To support routing video data captured from a real V4L2 video capture
device with a "zero copy" operation on videobuffers (as they pass from
the V4L2 domain to UVC domain via a user-space application), we need to
support USER_PTR IO method at the UVC gadget side.

So the V4L2 capture device driver can still continue to use MMAP IO
method and now the user-space application can just pass a pointer to the
video buffers being dequeued from the V4L2 device side while queueing
them at the UVC gadget end. This ensures that we have a "zero-copy"
design as the videobuffers pass from the V4L2 capture device to the UVC
gadget.

Note that there will still be a need to apply UVC specific payload
headers on top of each UVC payload data, which will still require a copy
operation to be performed in the 'encode' routines of the UVC gadget.

This patch also addresses one issue found out while porting the UVC
gadget to videobuf2 framework:
	- In case the usb requests queued by the gadget get completed
	  with a status of -ESHUTDOWN (disconnected from host),
	  the queue of videobuf2 should be cancelled to ensure that the
	  application space daemon is not left in a state waiting for
	  a vb2 to be successfully absorbed at the USB side.

Signed-off-by: Bhupesh Sharma &lt;bhupesh.sharma@st.com&gt;
Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
</content>
</entry>
<entry>
<title>[media] usb: gadget/uvc: Remove non-required locking from 'uvc_queue_next_buffer' routine</title>
<updated>2012-04-10T18:46:02Z</updated>
<author>
<name>Bhupesh Sharma</name>
<email>bhupesh.sharma@st.com</email>
</author>
<published>2012-03-22T03:50:37Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=95faf82bd3ea607f8e1ca78930c49b71078266e6'/>
<id>urn:sha1:95faf82bd3ea607f8e1ca78930c49b71078266e6</id>
<content type='text'>
This patch removes the non-required spinlock acquire/release calls on
'queue_irqlock' from 'uvc_queue_next_buffer' routine.

This routine is called from 'video-&gt;encode' function (which translates to either
'uvc_video_encode_bulk' or 'uvc_video_encode_isoc') in 'uvc_video.c'.
As, the 'video-&gt;encode' routines are called with 'queue_irqlock' already held,
so acquiring a 'queue_irqlock' again in 'uvc_queue_next_buffer' routine causes
a spin lock recursion.

Signed-off-by: Bhupesh Sharma &lt;bhupesh.sharma@st.com&gt;
Acked-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@redhat.com&gt;
</content>
</entry>
<entry>
<title>usb gadget: clean up FSF boilerplate text</title>
<updated>2011-09-09T23:00:09Z</updated>
<author>
<name>Klaus Schwarzkopf</name>
<email>schwarzkopf@sensortherm.de</email>
</author>
<published>2011-09-09T14:10:44Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=28c9fc68ebd32d473a8787d05c74e3f39c6c866b'/>
<id>urn:sha1:28c9fc68ebd32d473a8787d05c74e3f39c6c866b</id>
<content type='text'>
remove the following two paragraphs as they are not needed:

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
License for more details.

You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc.,59
Temple Place - Suite 330, Boston, MA  02111-1307, USA.

Signed-off-by: Klaus Schwarzkopf &lt;schwarzkopf@sensortherm.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
</feed>
