<feed xmlns='http://www.w3.org/2005/Atom'>
<title>talos-op-linux/drivers/usb, branch v4.4-rc4</title>
<subtitle>Talos™ II Linux sources for OpenPOWER</subtitle>
<id>https://git.raptorcs.com/git/talos-op-linux/atom?h=v4.4-rc4</id>
<link rel='self' href='https://git.raptorcs.com/git/talos-op-linux/atom?h=v4.4-rc4'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/'/>
<updated>2015-11-20T00:31:42+00:00</updated>
<entry>
<title>usblp: do not set TASK_INTERRUPTIBLE before lock</title>
<updated>2015-11-20T00:31:42+00:00</updated>
<author>
<name>Jiri Slaby</name>
<email>jslaby@suse.cz</email>
</author>
<published>2015-11-02T09:27:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=19cd80a214821f4b558560ebd76bfb2c38b4f3d8'/>
<id>urn:sha1:19cd80a214821f4b558560ebd76bfb2c38b4f3d8</id>
<content type='text'>
It is not permitted to set task state before lock. usblp_wwait sets
the state to TASK_INTERRUPTIBLE and calls mutex_lock_interruptible.
Upon return from that function, the state will be TASK_RUNNING again.

This is clearly a bug and a warning is generated with LOCKDEP too:
WARNING: CPU: 1 PID: 5109 at kernel/sched/core.c:7404 __might_sleep+0x7d/0x90()
do not call blocking ops when !TASK_RUNNING; state=1 set at [&lt;ffffffffa0c588d0&gt;] usblp_wwait+0xa0/0x310 [usblp]
Modules linked in: ...
CPU: 1 PID: 5109 Comm: captmon Tainted: G        W       4.2.5-0.gef2823b-default #1
Hardware name: LENOVO 23252SG/23252SG, BIOS G2ET33WW (1.13 ) 07/24/2012
 ffffffff81a4edce ffff880236ec7ba8 ffffffff81716651 0000000000000000
 ffff880236ec7bf8 ffff880236ec7be8 ffffffff8106e146 0000000000000282
 ffffffff81a50119 000000000000028b 0000000000000000 ffff8802dab7c508
Call Trace:
...
 [&lt;ffffffff8106e1c6&gt;] warn_slowpath_fmt+0x46/0x50
 [&lt;ffffffff8109a8bd&gt;] __might_sleep+0x7d/0x90
 [&lt;ffffffff8171b20f&gt;] mutex_lock_interruptible_nested+0x2f/0x4b0
 [&lt;ffffffffa0c588fc&gt;] usblp_wwait+0xcc/0x310 [usblp]
 [&lt;ffffffffa0c58bb2&gt;] usblp_write+0x72/0x350 [usblp]
 [&lt;ffffffff8121ed98&gt;] __vfs_write+0x28/0xf0
...

Commit 7f477358e2384c54b190cc3b6ce28277050a041b (usblp: Implement the
ENOSPC convention) moved the set prior locking. So move it back after
the lock.

Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Fixes: 7f477358e2 ("usblp: Implement the ENOSPC convention")
Acked-By: Pete Zaitcev &lt;zaitcev@yahoo.com&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: kconfig: fix warning of select USB_OTG</title>
<updated>2015-11-20T00:31:42+00:00</updated>
<author>
<name>Peter Chen</name>
<email>peter.chen@freescale.com</email>
</author>
<published>2015-11-19T03:47:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=c4f161308ac280ce5b27681ddcc2bbac6de39c20'/>
<id>urn:sha1:c4f161308ac280ce5b27681ddcc2bbac6de39c20</id>
<content type='text'>
When choose randconfig for kernel build, it reports below warning:
"warning: (USB_OTG_FSM &amp;&amp; FSL_USB2_OTG &amp;&amp; USB_MV_OTG) selects USB_OTG
which has unmet direct dependencies (USB_SUPPORT &amp;&amp; USB &amp;&amp; PM)"

In fact, USB_OTG is visible symbol and depends on PM, so the driver
needs to depend on it to reduce dependency problem.

Signed-off-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Reported-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: Felipe Balbi &lt;balbi@ti.com&gt;
Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>USB: option: add XS Stick W100-2 from 4G Systems</title>
<updated>2015-11-20T00:31:42+00:00</updated>
<author>
<name>Bjørn Mork</name>
<email>bjorn@mork.no</email>
</author>
<published>2015-11-18T20:12:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=638148e20c7f8f6e95017fdc13bce8549a6925e0'/>
<id>urn:sha1:638148e20c7f8f6e95017fdc13bce8549a6925e0</id>
<content type='text'>
Thomas reports
"
4gsystems sells two total different LTE-surfsticks under the same name.
..
The newer version of XS Stick W100 is from "omega"
..
Under windows the driver switches to the same ID, and uses MI03\6 for
network and MI01\6 for modem.
..
echo "1c9e 9b01" &gt; /sys/bus/usb/drivers/qmi_wwan/new_id
echo "1c9e 9b01" &gt; /sys/bus/usb-serial/drivers/option1/new_id

T:  Bus=01 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#=  4 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(&gt;ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1c9e ProdID=9b01 Rev=02.32
S:  Manufacturer=USB Modem
S:  Product=USB Modem
S:  SerialNumber=
C:  #Ifs= 5 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
I:  If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage

Now all important things are there:

wwp0s29f7u2i3 (net), ttyUSB2 (at), cdc-wdm0 (qmi), ttyUSB1 (at)

There is also ttyUSB0, but it is not usable, at least not for at.

The device works well with qmi and ModemManager-NetworkManager.
"

Reported-by: Thomas Schäfer &lt;tschaefer@t-online.de&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'usb-serial-4.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus</title>
<updated>2015-11-19T22:08:37+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2015-11-19T22:08:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=0a72f2ad84cc9dde5e4c7ab905a2f89593ddc0b6'/>
<id>urn:sha1:0a72f2ad84cc9dde5e4c7ab905a2f89593ddc0b6</id>
<content type='text'>
Johan writes:

USB-serial fixes for v4.4-rc2

Here are some new device ids, support for an odd qcserial Gobi interface
layout and a fix for the qcserial Huawei interface layout.

Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
</content>
</entry>
<entry>
<title>xhci: Fix a race in usb2 LPM resume, blocking U3 for usb2 devices</title>
<updated>2015-11-18T17:24:41+00:00</updated>
<author>
<name>Mathias Nyman</name>
<email>mathias.nyman@linux.intel.com</email>
</author>
<published>2015-11-18T08:48:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=dad67d5f3d0efe01d38c6cebcb6698280e51927b'/>
<id>urn:sha1:dad67d5f3d0efe01d38c6cebcb6698280e51927b</id>
<content type='text'>
Clear device initiated resume variables once device is fully up and running
in U0 state.

Resume needs to be signaled for 20ms for usb2 devices before they can be
moved to U0 state.

An interrupt is triggered if a device initiates resume. As we handle the
event in interrupt context we can not sleep for 20ms, so we instead set
a resume flag, a timestamp, and start the roothub polling.

The roothub code will later move the port to U0 when it finds a port in
resume state with the resume flag set, and timestamp passed by 20ms.

A host initiated resume is however not done in interrupt context, and
host initiated resume code will directly signal resume, wait 20ms and then
move the port to U0.

These two codepaths can race, if we are in the middle of a host initated
resume, while sleeping for 20ms, we may handle a port event and find the
port in resume state. The port event handling code will assume the resume
was device initiated and set the resume flag and timestamp.

Root hub code will however not catch the port in resume state again as the
host initated resume code has already moved the port to U0.
The resume flag and timestamp will remain set for this port preventing port
from suspending again  (LPM setting port to U3)

Fix this for now by always clearing the device initated resume parameters
once port is in U0

Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>usb: xhci: fix checking ep busy for CFC</title>
<updated>2015-11-18T17:24:41+00:00</updated>
<author>
<name>Lu Baolu</name>
<email>baolu.lu@linux.intel.com</email>
</author>
<published>2015-11-18T08:48:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=42df7215facf27be8d53e657dd4a12d4ebad0a44'/>
<id>urn:sha1:42df7215facf27be8d53e657dd4a12d4ebad0a44</id>
<content type='text'>
Function ep_ring_is_processing() checks the dequeue pointer
in endpoint context to know whether an endpoint is busy with
processing TRBs. This is not correct since dequeue pointer
field in an endpoint context is only valid when the endpoint
is in Halted or Stopped states. This buggy code causes audio
noise when playing sound with USB headset connected to host
controllers which support CFC (one of xhci 1.1 features).

This patch should exist in stable kernel since v4.3.

Reported-and-tested-by: YD Tseng &lt;yd_tseng@asmedia.com.tw&gt;
Signed-off-by: Lu Baolu &lt;baolu.lu@linux.intel.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt; # v4.3
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>xhci: Workaround to get Intel xHCI reset working more reliably</title>
<updated>2015-11-18T17:24:41+00:00</updated>
<author>
<name>Rajmohan Mani</name>
<email>rajmohan.mani@intel.com</email>
</author>
<published>2015-11-18T08:48:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=a5964396190d0c40dd549c23848c282fffa5d1f2'/>
<id>urn:sha1:a5964396190d0c40dd549c23848c282fffa5d1f2</id>
<content type='text'>
Existing Intel xHCI controllers require a delay of 1 mS,
after setting the CMD_RESET bit in command register, before
accessing any HC registers. This allows the HC to complete
the reset operation and be ready for HC register access.
Without this delay, the subsequent HC register access,
may result in a system hang, very rarely.

Verified CherryView / Braswell platforms go through over
5000 warm reboot cycles (which was not possible without
this patch), without any xHCI reset hang.

Signed-off-by: Rajmohan Mani &lt;rajmohan.mani@intel.com&gt;
Tested-by: Joe Lawrence &lt;joe.lawrence@stratus.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>usb: chipidea: imx: fix a possible NULL dereference</title>
<updated>2015-11-18T07:27:31+00:00</updated>
<author>
<name>LABBE Corentin</name>
<email>clabbe.montjoie@gmail.com</email>
</author>
<published>2015-11-12T07:43:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=6f51bc340d2a1c71a2409f80f3e60fe2c44e35ae'/>
<id>urn:sha1:6f51bc340d2a1c71a2409f80f3e60fe2c44e35ae</id>
<content type='text'>
of_match_device could return NULL, and so cause a NULL pointer
dereference later.

Reported-by: coverity (CID 1324138)
Signed-off-by: LABBE Corentin &lt;clabbe.montjoie@gmail.com&gt;
Signed-off-by: Peter Chen &lt;peter.chen@freescale.com&gt;
</content>
</entry>
<entry>
<title>usb: chipidea: usbmisc_imx: fix a possible NULL dereference</title>
<updated>2015-11-18T07:27:12+00:00</updated>
<author>
<name>LABBE Corentin</name>
<email>clabbe.montjoie@gmail.com</email>
</author>
<published>2015-11-12T07:43:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=090bc267ea1013bbb33778b343b4acd78b9c5d9b'/>
<id>urn:sha1:090bc267ea1013bbb33778b343b4acd78b9c5d9b</id>
<content type='text'>
of_match_device could return NULL, and so cause a NULL pointer
dereference later. Renaming tmp_dev to of_id (like all others do) in the
process.

Reported-by: coverity (CID 1324135)
Signed-off-by: LABBE Corentin &lt;clabbe.montjoie@gmail.com&gt;
Signed-off-by: Peter Chen &lt;peter.chen@freescale.com&gt;
</content>
</entry>
<entry>
<title>usb: chipidea: otg: gadget module load and unload support</title>
<updated>2015-11-18T06:07:54+00:00</updated>
<author>
<name>Li Jun</name>
<email>B47624@freescale.com</email>
</author>
<published>2014-12-12T01:11:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=85da852df66e5e0d3aba761b0fece7c958ff0685'/>
<id>urn:sha1:85da852df66e5e0d3aba761b0fece7c958ff0685</id>
<content type='text'>
This patch is to support load and unload gadget driver in full OTG mode.

Signed-off-by: Li Jun &lt;jun.li@freescale.com&gt;
Signed-off-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Tested-by: Jiada Wang &lt;jiada_wang@mentor.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #v4.0+
</content>
</entry>
</feed>
