<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/usb, branch mybooklive-amatus</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/usb?h=mybooklive-amatus</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/usb?h=mybooklive-amatus'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2014-07-18T00:14:01Z</updated>
<entry>
<title>usb: Check if port status is equal to RxDetect</title>
<updated>2014-07-18T00:14:01Z</updated>
<author>
<name>Gavin Guo</name>
<email>gavin.guo@canonical.com</email>
</author>
<published>2014-07-17T17:12:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=bb86cf569bbd7ad4dce581a37c7fbd748057e9dc'/>
<id>urn:sha1:bb86cf569bbd7ad4dce581a37c7fbd748057e9dc</id>
<content type='text'>
When using USB 3.0 pen drive with the [AMD] FCH USB XHCI Controller
[1022:7814], the second hotplugging will experience the USB 3.0 pen
drive is recognized as high-speed device. After bisecting the kernel,
I found the commit number 41e7e056cdc662f704fa9262e5c6e213b4ab45dd
(USB: Allow USB 3.0 ports to be disabled.) causes the bug. After doing
some experiments, the bug can be fixed by avoiding executing the function
hub_usb3_port_disable(). Because the port status with [AMD] FCH USB
XHCI Controlleris [1022:7814] is already in RxDetect
(I tried printing out the port status before setting to Disabled state),
it's reasonable to check the port status before really executing
hub_usb3_port_disable().

Fixes: 41e7e056cdc6 (USB: Allow USB 3.0 ports to be disabled.)
Signed-off-by: Gavin Guo &lt;gavin.guo@canonical.com&gt;
Acked-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>usb: chipidea: udc: Disable auto ZLP generation on ep0</title>
<updated>2014-07-17T23:51:22Z</updated>
<author>
<name>Abbas Raza</name>
<email>Abbas_Raza@mentor.com</email>
</author>
<published>2014-07-17T11:34:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=953c66469735aed8d2ada639a72b150f01dae605'/>
<id>urn:sha1:953c66469735aed8d2ada639a72b150f01dae605</id>
<content type='text'>
There are 2 methods for ZLP (zero-length packet) generation:
1) In software
2) Automatic generation by device controller

1) is implemented in UDC driver and it attaches ZLP to IN packet if
   descriptor-&gt;size &lt; wLength
2) can be enabled/disabled by setting ZLT bit in the QH

When gadget ffs is connected to ubuntu host, the host sends
get descriptor request and wLength in setup packet is 255 while the
size of descriptor which will be sent by gadget in IN packet is
64 byte. So the composite driver sets req-&gt;zero = 1.
In UDC driver following code will be executed then

        if (hwreq-&gt;req.zero &amp;&amp; hwreq-&gt;req.length
            &amp;&amp; (hwreq-&gt;req.length % hwep-&gt;ep.maxpacket == 0))
                add_td_to_list(hwep, hwreq, 0);

Case-A:
So in case of ubuntu host, UDC driver will attach a ZLP to the IN packet.
ubuntu host will request 255 byte in IN request, gadget will send 64 byte
with ZLP and host will come to know that there is no more data.
But hold on, by default ZLT=0 for endpoint 0 so hardware also tries to
automatically generate the ZLP which blocks enumeration for ~6 seconds due
to endpoint 0 STALL, NAKs are sent to host for any requests (OUT/PING)

Case-B:
In case when gadget ffs is connected to Apple device, Apple device sends
setup packet with wLength=64. So descriptor-&gt;size = 64 and wLength=64
therefore req-&gt;zero = 0 and UDC driver will not attach any ZLP to the
IN packet. Apple device requests 64 bytes, gets 64 bytes and doesn't
further request for IN data. But ZLT=0 by default for endpoint 0 so
hardware tries to automatically generate the ZLP which blocks enumeration
for ~6 seconds due to endpoint 0 STALL, NAKs are sent to host for any
requests (OUT/PING)

According to USB2.0 specs:

    8.5.3.2 Variable-length Data Stage
    A control pipe may have a variable-length data phase in which the
    host requests more data than is contained in the specified data
    structure. When all of the data structure is returned to the host,
    the function should indicate that the Data stage is ended by
    returning a packet that is shorter than the MaxPacketSize for the
    pipe. If the data structure is an exact multiple of wMaxPacketSize
    for the pipe, the function will return a zero-length packet to indicate
    the end of the Data stage.

In Case-A mentioned above:
If we disable software ZLP generation &amp; ZLT=0 for endpoint 0 OR if software
ZLP generation is not disabled but we set ZLT=1 for endpoint 0 then
enumeration doesn't block for 6 seconds.

In Case-B mentioned above:
If we disable software ZLP generation &amp; ZLT=0 for endpoint then enumeration
still blocks due to ZLP automatically generated by hardware and host not needing
it. But if we keep software ZLP generation enabled but we set ZLT=1 for
endpoint 0 then enumeration doesn't block for 6 seconds.

So the proper solution for this issue seems to disable automatic ZLP generation
by hardware (i.e by setting ZLT=1 for endpoint 0) and let software (UDC driver)
handle the ZLP generation based on req-&gt;zero field.

Cc: stable@vger.kernel.org
Signed-off-by: Abbas Raza &lt;Abbas_Raza@mentor.com&gt;
Signed-off-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>USB: serial: ftdi_sio: Add Infineon Triboard</title>
<updated>2014-07-12T01:22:38Z</updated>
<author>
<name>Michal Sojka</name>
<email>sojkam1@fel.cvut.cz</email>
</author>
<published>2014-07-10T12:00:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d8279a40e50ad55539780aa617a32a53d7f0953e'/>
<id>urn:sha1:d8279a40e50ad55539780aa617a32a53d7f0953e</id>
<content type='text'>
This adds support for Infineon TriBoard TC1798 [1]. Only interface 1
is used as serial line (see [2], Figure 8-6).

[1] http://www.infineon.com/cms/de/product/microcontroller/development-tools-software-and-kits/tricore-tm-development-tools-software-and-kits/starterkits-and-evaluation-boards/starter-kit-tc1798/channel.html?channel=db3a304333b8a7ca0133cfa3d73e4268
[2] http://www.infineon.com/dgdl/TriBoardManual-TC1798-V10.pdf?folderId=db3a304412b407950112b409ae7c0343&amp;fileId=db3a304333b8a7ca0133cfae99fe426a

Signed-off-by: Michal Sojka &lt;sojkam1@fel.cvut.cz&gt;
Cc: Johan Hovold &lt;johan@kernel.org&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>USB: ftdi_sio: Add extra PID.</title>
<updated>2014-07-09T23:27:40Z</updated>
<author>
<name>Bert Vermeulen</name>
<email>bert@biot.com</email>
</author>
<published>2014-07-08T12:42:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5a7fbe7e9ea0b1b9d7ffdba64db1faa3a259164c'/>
<id>urn:sha1:5a7fbe7e9ea0b1b9d7ffdba64db1faa3a259164c</id>
<content type='text'>
This patch adds PID 0x0003 to the VID 0x128d (Testo). At least the
Testo 435-4 uses this, likely other gear as well.

Signed-off-by: Bert Vermeulen &lt;bert@biot.com&gt;
Cc: Johan Hovold &lt;johan@kernel.org&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>usb: option: Add ID for Telewell TW-LTE 4G v2</title>
<updated>2014-07-07T08:31:14Z</updated>
<author>
<name>Bernd Wachter</name>
<email>bernd.wachter@jolla.com</email>
</author>
<published>2014-07-02T09:36:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3d28bd840b2d3981cd28caf5fe1df38f1344dd60'/>
<id>urn:sha1:3d28bd840b2d3981cd28caf5fe1df38f1344dd60</id>
<content type='text'>
Add ID of the Telewell 4G v2 hardware to option driver to get legacy
serial interface working

Signed-off-by: Bernd Wachter &lt;bernd.wachter@jolla.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
</content>
</entry>
<entry>
<title>USB: cp210x: add support for Corsair usb dongle</title>
<updated>2014-07-07T08:28:18Z</updated>
<author>
<name>Andras Kovacs</name>
<email>andras@sth.sze.hu</email>
</author>
<published>2014-06-27T12:50:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b9326057a3d8447f5d2e74a7b521ccf21add2ec0'/>
<id>urn:sha1:b9326057a3d8447f5d2e74a7b521ccf21add2ec0</id>
<content type='text'>
Corsair USB Dongles are shipped with Corsair AXi series PSUs.
These are cp210x serial usb devices, so make driver detect these.
I have a program, that can get information from these PSUs.

Tested with 2 different dongles shipped with Corsair AX860i and
AX1200i units.

Signed-off-by: Andras Kovacs &lt;andras@sth.sze.hu&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
</content>
</entry>
<entry>
<title>usb: chipidea: udc: delete td from req's td list at ep_dequeue</title>
<updated>2014-07-02T06:06:02Z</updated>
<author>
<name>Peter Chen</name>
<email>peter.chen@freescale.com</email>
</author>
<published>2014-07-02T04:16:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e4adcff09ca39ecbcc4851d40d0f0a5458e7b77a'/>
<id>urn:sha1:e4adcff09ca39ecbcc4851d40d0f0a5458e7b77a</id>
<content type='text'>
We need to delete un-finished td from current request's td list
at ep_dequeue API, otherwise, this non-user td will be remained
at td list before this request is freed. So if we do ep_queue-&gt;
ep_dequeue-&gt;ep_queue sequence, when the complete interrupt for
the second ep_queue comes, we search td list for this request,
the first td (added by the first ep_queue) will be handled, and
its status is still active, so we will consider the this transfer
still not be completed, but in fact, it has completed. It causes
the peripheral side considers it never receives current data for
this transfer.

We met this problem when do "Error Recovery Test - Device Configured"
test item for USBCV2 MSC test, the host has never received ACK for
the IN token for CSW due to peripheral considers it does not get this
CBW, the USBCV test log like belows:

--------------------------------------------------------------------------
INFO
Issuing BOT MSC Reset, reset should always succeed
INFO
Retrieving status on CBW endpoint
INFO
CBW endpoint status = 0x0
INFO
Retrieving status on CSW endpoint
INFO
CSW endpoint status = 0x0
INFO
Issuing required command (Test Unit Ready) to verify device has recovered
INFO
Issuing CBW (attempt #1):
INFO
|----- CBW LUN                  = 0x0
INFO
|----- CBW Flags                = 0x0
INFO
|----- CBW Data Transfer Length = 0x0
INFO
|----- CBW CDB Length           = 0x6
INFO
|----- CBW CDB-00 = 0x0
INFO
|----- CBW CDB-01 = 0x0
INFO
|----- CBW CDB-02 = 0x0
INFO
|----- CBW CDB-03 = 0x0
INFO
|----- CBW CDB-04 = 0x0
INFO
|----- CBW CDB-05 = 0x0
INFO
Issuing CSW : try 1
INFO
CSW Bulk Request timed out!
ERROR
Failed CSW phase : should have been success or stall
FAIL
(5.3.4) The CSW status value must be 0x00, 0x01, or 0x02.
ERROR
BOTCommonMSCRequest failed:  error=80004000

Cc: Andrzej Pietrasiewicz &lt;andrzej.p@samsung.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>usb: Kconfig: make EHCI_MSM selectable for QCOM SOCs</title>
<updated>2014-07-01T05:47:18Z</updated>
<author>
<name>Srinivas Kandagatla</name>
<email>srinivas.kandagatla@linaro.org</email>
</author>
<published>2014-06-30T17:29:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8ae587e5df6db3a950c2f417d48ce0a8d55b1792'/>
<id>urn:sha1:8ae587e5df6db3a950c2f417d48ce0a8d55b1792</id>
<content type='text'>
This patch makes the msm ehci driver available to use on QCOM SOCs,
which have the same IP.

Signed-off-by: Srinivas Kandagatla &lt;srinivas.kandagatla@linaro.org&gt;
Acked-by: Felipe Balbi &lt;balbi@ti.com&gt;
Acked-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>usb-storage/SCSI: Add broken_fua blacklist flag</title>
<updated>2014-07-01T05:47:18Z</updated>
<author>
<name>Alan Stern</name>
<email>stern@rowland.harvard.edu</email>
</author>
<published>2014-06-30T15:04:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b14bf2d0c0358140041d1c1805a674376964d0e0'/>
<id>urn:sha1:b14bf2d0c0358140041d1c1805a674376964d0e0</id>
<content type='text'>
Some buggy JMicron USB-ATA bridges don't know how to translate the FUA
bit in READs or WRITEs.  This patch adds an entry in unusual_devs.h
and a blacklist flag to tell the sd driver not to use FUA.

Signed-off-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Reported-by: Michael Büsch &lt;m@bues.ch&gt;
Tested-by: Michael Büsch &lt;m@bues.ch&gt;
Acked-by: James Bottomley &lt;James.Bottomley@HansenPartnership.com&gt;
CC: Matthew Dharm &lt;mdharm-usb@one-eyed-alien.net&gt;
CC: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'fixes-for-v3.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus</title>
<updated>2014-07-01T04:15:15Z</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2014-07-01T04:15:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ba1ba3a4ed0c5c6a6121169abe61802aeab6c1d2'/>
<id>urn:sha1:ba1ba3a4ed0c5c6a6121169abe61802aeab6c1d2</id>
<content type='text'>
Felipe writes:

usb: fixes for v3.16-rc4

A few more fixes for this RC cycle. There's a revert of a previous patch
which ended up being the wrong version, so we reverted that commit and
applied a better fix.

CPPI41 got a race condition fix which was found by Thomas Gleixner.

The MSM PHY driver got a runtime pm usage fix so that it wouldn't
kill the PHY while it was still being used.

We also have a fix for a panic caused when removing musb_am335x driver.

Other than that, a few other minor fixes.

Signed-of-by: Felipe Balbi &lt;balbi@ti.com&gt;
</content>
</entry>
</feed>
