<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/drivers/usb, branch v3.12.8</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v3.12.8</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v3.12.8'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2014-01-09T20:25:08+00:00</updated>
<entry>
<title>usb: musb: only cancel work if it is initialized</title>
<updated>2014-01-09T20:25:08+00:00</updated>
<author>
<name>Sebastian Andrzej Siewior</name>
<email>bigeasy@linutronix.de</email>
</author>
<published>2013-11-06T08:25:27+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=0393ff7501c2f3ba61e7a17c1f7332fde9ed1f2c'/>
<id>urn:sha1:0393ff7501c2f3ba61e7a17c1f7332fde9ed1f2c</id>
<content type='text'>
commit 66fadea5b79c07154126bb0db375be915f611246 upstream.

Since commit c5340bd14 ("usb: musb: cancel work on removal") the workqueue
is cancelled but then if we bail out before the workqueue is setup we
get this:

|INFO: trying to register non-static key.
|the code is fine but needs lockdep annotation.
|turning off the locking correctness validator.
|CPU: 0 PID: 708 Comm: modprobe Not tainted 3.12.0+ #435
|[&lt;c00867bc&gt;] (lock_acquire+0xf0/0x108) from [&lt;c00529d0&gt;] (flush_work+0x38/0x2ec)
|[&lt;c00529d0&gt;] (flush_work+0x38/0x2ec) from [&lt;c0052d24&gt;] (__cancel_work_timer+0xa0/0x134)
|[&lt;c0052d24&gt;] (__cancel_work_timer+0xa0/0x134) from [&lt;bf0e4ae4&gt;] (musb_free+0x40/0x60 [musb_hdrc])
|[&lt;bf0e4ae4&gt;] (musb_free+0x40/0x60 [musb_hdrc]) from [&lt;bf0e5364&gt;] (musb_probe+0x678/0xb78 [musb_hdrc])
|[&lt;bf0e5364&gt;] (musb_probe+0x678/0xb78 [musb_hdrc]) from [&lt;c0294bf0&gt;] (platform_drv_probe+0x1c/0x24)
|[&lt;c0294bf0&gt;] (platform_drv_probe+0x1c/0x24) from [&lt;c0293970&gt;] (driver_probe_device+0x90/0x224)
|[&lt;c0293970&gt;] (driver_probe_device+0x90/0x224) from [&lt;c0291ef0&gt;] (bus_for_each_drv+0x60/0x8c)
|[&lt;c0291ef0&gt;] (bus_for_each_drv+0x60/0x8c) from [&lt;c02938bc&gt;] (device_attach+0x80/0xa4)
|[&lt;c02938bc&gt;] (device_attach+0x80/0xa4) from [&lt;c0292b24&gt;] (bus_probe_device+0x88/0xac)
|[&lt;c0292b24&gt;] (bus_probe_device+0x88/0xac) from [&lt;c0291490&gt;] (device_add+0x388/0x6c8)
|[&lt;c0291490&gt;] (device_add+0x388/0x6c8) from [&lt;c02952a0&gt;] (platform_device_add+0x188/0x22c)
|[&lt;c02952a0&gt;] (platform_device_add+0x188/0x22c) from [&lt;bf11ea30&gt;] (dsps_probe+0x294/0x394 [musb_dsps])
|[&lt;bf11ea30&gt;] (dsps_probe+0x294/0x394 [musb_dsps]) from [&lt;c0294bf0&gt;] (platform_drv_probe+0x1c/0x24)
|platform musb-hdrc.1.auto: Driver musb-hdrc requests probe deferral
|musb-hdrc musb-hdrc.1.auto: musb_init_controller failed with status -517

This patch moves the init part to earlier part so it can be cleaned as
part of the fail3 label because now it is surrounded by the fail4 label.
Step two is to remove it from musb_free() and add it to the two cleanup
paths (error path and device removal) separately.

Signed-off-by: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&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: musb: core: Call dma_controller_destroy() in error path only once.</title>
<updated>2014-01-09T20:25:08+00:00</updated>
<author>
<name>Sebastian Andrzej Siewior</name>
<email>bigeasy@linutronix.de</email>
</author>
<published>2013-10-16T10:50:07+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=00e0aaa745c90725c28fe1b374d054a94d5682f2'/>
<id>urn:sha1:00e0aaa745c90725c28fe1b374d054a94d5682f2</id>
<content type='text'>
commit 8d1aad7485e653c2c5fd985b326096f680f7d918 upstream.

In commit f3ce4d5 ("usb: musb: core: call dma_controller_destroy() in the err path")
I erroneously assumed that the dma controller is not removed in the
error patch. This was wrong because it happens later via musb_free().
That means the original commit can be reverted because it is wrong or we
do this, so it is more obvious.

Signed-off-by: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&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: chipidea: fix nobody cared IRQ when booting with host role</title>
<updated>2014-01-09T20:25:08+00:00</updated>
<author>
<name>Peter Chen</name>
<email>peter.chen@freescale.com</email>
</author>
<published>2013-12-05T07:20:50+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=bfb4a262bf2ce2b8f7d4f444eb00059b3078bf64'/>
<id>urn:sha1:bfb4a262bf2ce2b8f7d4f444eb00059b3078bf64</id>
<content type='text'>
commit 5a1e1456fc633da5291285b1fff75d2a7507375b upstream.

If we connect Male-A-To-Male-A cable between otg-host and host pc,
the ci-&gt;vbus_active is set wrongly, and cause the controller run
at peripheral mode when we load gadget module (ci_udc_start will be run),
but the software runs at host mode due to id = 0. The ehci_irq
can't handle suspend (USBi_SLI) interrupt which is enabled for
peripheral mode, it causes no one will handle irq error.

This patch is needed for 3.12 stable

Acked-by: Michael Grzeschik &lt;mgr@pengutronix.de&gt;
Reported-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Tested-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&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: chipidea: host: Only disable the vbus regulator if it is not NULL</title>
<updated>2014-01-09T20:25:08+00:00</updated>
<author>
<name>Fabio Estevam</name>
<email>fabio.estevam@freescale.com</email>
</author>
<published>2013-12-05T07:20:49+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=811dac78101fa1dda71fe86742cfeefd7ae3bb3a'/>
<id>urn:sha1:811dac78101fa1dda71fe86742cfeefd7ae3bb3a</id>
<content type='text'>
commit cc5c9eb67f912cb2c349b04063ff9f444affbc59 upstream.

Commit 40ed51a4b (usb: chipidea: host: add vbus regulator
control) introduced a smatch complaint because regulator_disable() is called
without checking whether ci-&gt;platdata-&gt;reg_vbus is not NULL.

Fix this by adding the check.

This patch is needed for 3.12 stable

Reported-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Fabio Estevam &lt;fabio.estevam@freescale.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: cdc-wdm: manage_power should always set needs_remote_wakeup</title>
<updated>2014-01-09T20:25:08+00:00</updated>
<author>
<name>Bjørn Mork</name>
<email>bjorn@mork.no</email>
</author>
<published>2013-11-29T19:17:45+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=ca36cb27c934ec46bdb46b355ed57066bb1895b8'/>
<id>urn:sha1:ca36cb27c934ec46bdb46b355ed57066bb1895b8</id>
<content type='text'>
commit 4144bc861ed7934d56f16d2acd808d44af0fcc90 upstream.

Reported-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Acked-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>xhci: Limit the spurious wakeup fix only to HP machines</title>
<updated>2014-01-09T20:25:08+00:00</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2013-12-09T13:53:36+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=0d1ffc541943dd3133615d8a5b21549b25c58751'/>
<id>urn:sha1:0d1ffc541943dd3133615d8a5b21549b25c58751</id>
<content type='text'>
commit 6962d914f317b119e0db7189199b21ec77a4b3e0 upstream.

We've got regression reports that my previous fix for spurious wakeups
after S5 on HP Haswell machines leads to the automatic reboot at
shutdown on some machines.  It turned out that the fix for one side
triggers another BIOS bug in other side.  So, it's exclusive.

Since the original S5 wakeups have been confirmed only on HP machines,
it'd be safer to apply it only to limited machines.  As a wild guess,
limiting to machines with HP PCI SSID should suffice.

This patch should be backported to kernels as old as 3.12, that
contain the commit 638298dc66ea36623dbc2757a24fc2c4ab41b016 "xhci: Fix
spurious wakeups after S5 on Haswell".

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=66171
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Sarah Sharp &lt;sarah.a.sharp@linux.intel.com&gt;
Tested-by: &lt;dashing.meng@gmail.com&gt;
Reported-by: Niklas Schnelle &lt;niklas@komani.de&gt;
Reported-by: Giorgos &lt;ganastasiouGR@gmail.com&gt;
Reported-by: &lt;art1@vhex.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>usb: serial: zte_ev: move support for ZTE AC2726 from zte_ev back to option</title>
<updated>2014-01-09T20:25:08+00:00</updated>
<author>
<name>Dmitry Kunilov</name>
<email>dmitry.kunilov@gmail.com</email>
</author>
<published>2013-12-03T20:11:30+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=e71e1767d6081fc502054cfad9306f74aeaae8c4'/>
<id>urn:sha1:e71e1767d6081fc502054cfad9306f74aeaae8c4</id>
<content type='text'>
commit 52d0dc7597c89b2ab779f3dcb9b9bf0800dd9218 upstream.

ZTE AC2726 EVDO modem drops ppp connection every minute when driven by
zte_ev but works fine when driven by option. Move the support for AC2726
back to option driver.

Signed-off-by: Dmitry Kunilov &lt;dmitry.kunilov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>USB: serial: fix race in generic write</title>
<updated>2014-01-09T20:25:06+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>jhovold@gmail.com</email>
</author>
<published>2013-11-09T11:38:09+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=f6b9ef96f825e6f8a33b2a230389c6358dcce073'/>
<id>urn:sha1:f6b9ef96f825e6f8a33b2a230389c6358dcce073</id>
<content type='text'>
commit 6f6485463aada1ec6a0f3db6a03eb8e393d6bb55 upstream.

Fix race in generic write implementation, which could lead to
temporarily degraded throughput.

The current generic write implementation introduced by commit
27c7acf22047 ("USB: serial: reimplement generic fifo-based writes") has
always had this bug, although it's fairly hard to trigger and the
consequences are not likely to be noticed.

Specifically, a write() on one CPU while the completion handler is
running on another could result in only one of the two write urbs being
utilised to empty the remainder of the write fifo (unless there is a
second write() that doesn't race during that time).

Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>USB: option: support new huawei devices</title>
<updated>2013-12-20T15:48:56+00:00</updated>
<author>
<name>Fangxiaozhi (Franko)</name>
<email>fangxiaozhi@huawei.com</email>
</author>
<published>2013-12-02T09:00:11+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=9d93dae88cedd47e58f4e34126420a80a521998d'/>
<id>urn:sha1:9d93dae88cedd47e58f4e34126420a80a521998d</id>
<content type='text'>
commit 2bf308d7bc5e8cdd69672199f59532f35339133c upstream.

Add new supporting declarations to option.c, to support Huawei new
devices with new bInterfaceProtocol value.

Signed-off-by: fangxiaozhi &lt;huananhu@huawei.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>USB: serial: option: blacklist interface 1 for Huawei E173s-6</title>
<updated>2013-12-20T15:48:55+00:00</updated>
<author>
<name>Gustavo Zacarias</name>
<email>gustavo@zacarias.com.ar</email>
</author>
<published>2013-11-11T12:59:15+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=588cd6b701fed893d55a5aec76b06fa2aa445147'/>
<id>urn:sha1:588cd6b701fed893d55a5aec76b06fa2aa445147</id>
<content type='text'>
commit 8f173e22abf2258ddfa73f46eadbb6a6c29f1631 upstream.

Interface 1 on this device isn't for option to bind to otherwise an oops
on usb_wwan with log flooding will happen when accessing the port:

tty_release: ttyUSB1: read/write wait queue active!

It doesn't seem to respond to QMI if it's added to qmi_wwan so don't add
it there - it's likely used by the card reader.

Signed-off-by: Gustavo Zacarias &lt;gustavo@zacarias.com.ar&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
</feed>
