<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/usb/gadget, branch v4.3.1</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.3.1</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.3.1'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2015-12-09T19:34:35+00:00</updated>
<entry>
<title>usb: gadget: atmel_usba_udc: Expose correct device speed</title>
<updated>2015-12-09T19:34:35+00:00</updated>
<author>
<name>Douglas Gilbert</name>
<email>dgilbert@interlog.com</email>
</author>
<published>2015-11-16T18:22:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f95102dd298de57c5c27b65271f4359dd24c30b2'/>
<id>urn:sha1:f95102dd298de57c5c27b65271f4359dd24c30b2</id>
<content type='text'>
commit d134c48d889ddceadf4c990e6f3df16b816ed5d4 upstream.

Following changes that appeared in lk 4.0.0, the gadget udc driver for
some ARM based Atmel SoCs (e.g. at91sam9x5 and sama5d3 families)
incorrectly deduced full-speed USB link speed even when the hardware
had negotiated a high-speed link. The fix is to make sure that the
UDPHS Interrupt Enable Register value does not mask the SPEED bit
in the Interrupt Status Register.

For a mass storage gadget this problem lead to failures when the host
had a USB 3 port with the xhci_hcd driver. If the host was a USB 2
port using the ehci_hcd driver then the mass storage gadget worked
(but probably at a lower speed than it should have).

Signed-off-by: Douglas Gilbert &lt;dgilbert@interlog.com&gt;
Reviewed-by: Boris Brezillon &lt;boris.brezillon@free-electrons.com&gt;
Fixes: 9870d895ad87 ("usb: atmel_usba_udc: Mask status with enabled irqs")
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>usb: gadget: net2280: restore ep_cfg after defect7374 workaround</title>
<updated>2015-12-09T19:34:35+00:00</updated>
<author>
<name>Mian Yousaf Kaukab</name>
<email>yousaf.kaukab@intel.com</email>
</author>
<published>2015-10-19T14:25:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=5d8a3e3b16366682be5ef5d3f6b24ae39bef5b78'/>
<id>urn:sha1:5d8a3e3b16366682be5ef5d3f6b24ae39bef5b78</id>
<content type='text'>
commit 81e9d14a53eb1abfbe6ac828a87a2deb4702b5f1 upstream.

Defect 7374 workaround enables all GPEP as endpoint 0. Restore
endpoint number when defect 7374 workaround is disabled. Otherwise,
check to match USB endpoint number to hardware endpoint number in
net2280_enable() fails.

Reported-by: Paul Jones &lt;p.jones@teclyn.com&gt;
Signed-off-by: Mian Yousaf Kaukab &lt;yousaf.kaukab@intel.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>usb: gadget: bdc: fix memory leak</title>
<updated>2015-09-30T16:20:21+00:00</updated>
<author>
<name>Sudip Mukherjee</name>
<email>sudipm.mukherjee@gmail.com</email>
</author>
<published>2015-09-26T09:31:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7022cfdfe07dcfccc294f04de5f75e0a37b16174'/>
<id>urn:sha1:7022cfdfe07dcfccc294f04de5f75e0a37b16174</id>
<content type='text'>
If dma_pool_alloc() fails we are jumping to fail and releasing all the
bd_tables which have been added to the chain but we missed freeing this
bd_table which was just allocated and still not added to the chain of
bd_table.

Signed-off-by: Sudip Mukherjee &lt;sudip@vectorindia.org&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: drop null test before destroy functions</title>
<updated>2015-09-21T19:42:36+00:00</updated>
<author>
<name>Julia Lawall</name>
<email>Julia.Lawall@lip6.fr</email>
</author>
<published>2015-09-13T12:15:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=51b91b7e6c1516c7d3ea70acc91aac9b32ae3e72'/>
<id>urn:sha1:51b91b7e6c1516c7d3ea70acc91aac9b32ae3e72</id>
<content type='text'>
Remove unneeded NULL test.

The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)

// &lt;smpl&gt;
@@ expression x; @@
-if (x != NULL)
  \(kmem_cache_destroy\|mempool_destroy\|dma_pool_destroy\)(x);
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;Julia.Lawall@lip6.fr&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: dummy_hcd: in transfer(), return data sent, not limit</title>
<updated>2015-09-21T19:42:36+00:00</updated>
<author>
<name>Igor Kotrasinski</name>
<email>i.kotrasinsk@samsung.com</email>
</author>
<published>2015-09-15T14:55:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=9a9ce1dfaef9aa15980cec22b806b39a65a9467e'/>
<id>urn:sha1:9a9ce1dfaef9aa15980cec22b806b39a65a9467e</id>
<content type='text'>
dummy_timer uses transfer() to update transfer limit. However,
limit passed to dummy_timer changes depending on transfer type,
so the actual limit is overwritten.

This can cause unpredictably slow / fast bulk transfers when
coupled with control / interrupt transfers.

Fix by returning actual amount of data sent in transfer() and
substracting from total.

Signed-off-by: Igor Kotrasinski &lt;i.kotrasinsk@samsung.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: dummy_hcd: fix rescan logic for transfer</title>
<updated>2015-09-21T19:42:36+00:00</updated>
<author>
<name>Igor Kotrasinski</name>
<email>i.kotrasinsk@samsung.com</email>
</author>
<published>2015-09-15T14:55:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e42bd6a54b97e2a39b5004deac66a0fcd6ebbe75'/>
<id>urn:sha1:e42bd6a54b97e2a39b5004deac66a0fcd6ebbe75</id>
<content type='text'>
transfer() schedules a rescan for transfers larger than
maxpacket, which is wrong for transfers that are multiples
of maxpacket.

Rewrite to fix and clarify packet multiple / remainder
transfer logic.

Signed-off-by: Igor Kotrasinski &lt;i.kotrasinsk@samsung.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: dummy_hcd: fix unneeded else-if condition</title>
<updated>2015-09-21T19:42:35+00:00</updated>
<author>
<name>Igor Kotrasinski</name>
<email>i.kotrasinsk@samsung.com</email>
</author>
<published>2015-09-15T14:55:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=5dda5be9d501084e8a6242e6dbeb8eea1daf01c8'/>
<id>urn:sha1:5dda5be9d501084e8a6242e6dbeb8eea1daf01c8</id>
<content type='text'>
We already know at this point that to_host is false.

Signed-off-by: Igor Kotrasinski &lt;i.kotrasinsk@samsung.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: dummy_hcd: emulate sending zlp in packet logic</title>
<updated>2015-09-21T19:42:35+00:00</updated>
<author>
<name>Igor Kotrasinski</name>
<email>i.kotrasinsk@samsung.com</email>
</author>
<published>2015-09-15T14:55:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=21c3ee93867694e8c7382ff77b4645b50d3233e9'/>
<id>urn:sha1:21c3ee93867694e8c7382ff77b4645b50d3233e9</id>
<content type='text'>
currently, when a zlp flag is set and an urb/usb_request
buffer is filled without a short packet, transfer() leaves
its status at -EINPROGRESS and does not rescan for short
packet.

In a scenario where ep.maxpacket bytes are copied,
URB_ZERO_PACKET is set, urb buffer is filled and usb_request
buffer is not, transfer() returns with an urb with
-EINPROGRESS status, which dummy_hcd treats as incomplete
transfer.

Check for zlp and rescan appropriately.

Signed-off-by: Igor Kotrasinski &lt;i.kotrasinsk@samsung.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: atmel_usba_udc: add ep capabilities support on device tree binding</title>
<updated>2015-09-21T19:42:35+00:00</updated>
<author>
<name>Sylvain Rochet</name>
<email>sylvain.rochet@finsecur.com</email>
</author>
<published>2015-09-18T14:58:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=cf261fd1a444e87894c2ed8f481606ead7916fab'/>
<id>urn:sha1:cf261fd1a444e87894c2ed8f481606ead7916fab</id>
<content type='text'>
The recently added endpoint capabilities flags verification breaks Atmel
USBA because the endpoint configuration was only added when the driver
is bound using the legacy pdata interface.

Convert endpoint configuration to new capabilities model when driver is
bound to a device tree as well.

Signed-off-by: Sylvain Rochet &lt;sylvain.rochet@finsecur.com&gt;
Fixes: 47bef3865115 ("usb: gadget: atmel_usba_udc: add ep capabilities support")
Signed-off-by: Nicolas Ferre &lt;nicolas.ferre@atmel.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
<entry>
<title>usb: gadget: amd5536udc: fix error handling in udc_pci_probe()</title>
<updated>2015-09-14T15:14:51+00:00</updated>
<author>
<name>Alexey Khoroshilov</name>
<email>khoroshilov@ispras.ru</email>
</author>
<published>2015-09-05T22:11:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6527cc27761a124de8c08e6488ce17fdcc74dbba'/>
<id>urn:sha1:6527cc27761a124de8c08e6488ce17fdcc74dbba</id>
<content type='text'>
If a failure happens early in udc_pci_probe(), error handling code
just kfree(dev) and returns. The patch adds proper resource
deallocations in udc_pci_probe() itself,
since udc_pci_remove() is not suitabe to be called so early
in initialization process.

By the way, iounmap(dev-&gt;regs) is replaced by iounmap(dev-&gt;virt_addr)
in udc_pci_remove() for clarity.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov &lt;khoroshilov@ispras.ru&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
</feed>
