<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/drivers/usb, branch v3.14.16</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.14.16</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.14.16'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2014-07-28T15:05:56Z</updated>
<entry>
<title>usb: chipidea: udc: Disable auto ZLP generation on ep0</title>
<updated>2014-07-28T15:05:56Z</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=3b5e2408ca94673c8b1d61d388ca67d282c12fd1'/>
<id>urn:sha1:3b5e2408ca94673c8b1d61d388ca67d282c12fd1</id>
<content type='text'>
commit 953c66469735aed8d2ada639a72b150f01dae605 upstream.

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.

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: Check if port status is equal to RxDetect</title>
<updated>2014-07-28T15:05:56Z</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e354b2e1f10aceec9ab4a3dd0e1078ada894f45b'/>
<id>urn:sha1:e354b2e1f10aceec9ab4a3dd0e1078ada894f45b</id>
<content type='text'>
commit bb86cf569bbd7ad4dce581a37c7fbd748057e9dc upstream.

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;
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-17T23:21:02Z</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=10303497df81a3f33c83898790bc99791a5541ba'/>
<id>urn:sha1:10303497df81a3f33c83898790bc99791a5541ba</id>
<content type='text'>
commit d8279a40e50ad55539780aa617a32a53d7f0953e upstream.

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;
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-17T23:21:02Z</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=2467bdcf6a112f34cb6112ddf9ac0cb6c99f769c'/>
<id>urn:sha1:2467bdcf6a112f34cb6112ddf9ac0cb6c99f769c</id>
<content type='text'>
commit 5a7fbe7e9ea0b1b9d7ffdba64db1faa3a259164c upstream.

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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>USB: cp210x: add support for Corsair usb dongle</title>
<updated>2014-07-17T23:21:02Z</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=384419815294a0d2fbfa05bf6eb539da190251e2'/>
<id>urn:sha1:384419815294a0d2fbfa05bf6eb539da190251e2</id>
<content type='text'>
commit b9326057a3d8447f5d2e74a7b521ccf21add2ec0 upstream.

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;
Signed-off-by: Johan Hovold &lt;johan@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-17T23:21:02Z</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=f6928264469915217084727f34a34136e6975ed4'/>
<id>urn:sha1:f6928264469915217084727f34a34136e6975ed4</id>
<content type='text'>
commit 3d28bd840b2d3981cd28caf5fe1df38f1344dd60 upstream.

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;
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>usb: gadget: f_fs: fix NULL pointer dereference when there are no strings</title>
<updated>2014-07-09T18:18:24Z</updated>
<author>
<name>Michal Nazarewicz</name>
<email>mina86@mina86.com</email>
</author>
<published>2014-06-17T15:47:41Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=d4d3b27333ded534e1cab26a33b7e4f1163e8ff9'/>
<id>urn:sha1:d4d3b27333ded534e1cab26a33b7e4f1163e8ff9</id>
<content type='text'>
commit f0688c8b81d2ea239c3fb0b848f623b579238d99 upstream.

If the descriptors do not need any strings and user space sends empty
set of strings, the ffs-&gt;stringtabs field remains NULL.  Thus
*ffs-&gt;stringtabs in functionfs_bind leads to a NULL pointer
dereferenece.

The bug was introduced by commit [fd7c9a007f: “use usb_string_ids_n()”].

While at it, remove double initialisation of lang local variable in
that function.

ffs-&gt;strings_count does not need to be checked in any way since in
the above scenario it will remain zero and usb_string_ids_n() is
a no-operation when colled with 0 argument.

Signed-off-by: Michal Nazarewicz &lt;mina86@mina86.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: ftdi_sio: fix null deref at port probe</title>
<updated>2014-07-09T18:18:24Z</updated>
<author>
<name>Johan Hovold</name>
<email>johan@kernel.org</email>
</author>
<published>2014-06-05T14:05:52Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=de49c5f1702ce48835fcf9e13e11314ec9f1be28'/>
<id>urn:sha1:de49c5f1702ce48835fcf9e13e11314ec9f1be28</id>
<content type='text'>
commit aea1ae8760314e072bf1b773521e9de5d5dda10d upstream.

Fix NULL-pointer dereference when probing an interface with no
endpoints.

These devices have two bulk endpoints per interface, but this avoids
crashing the kernel if a user forces a non-FTDI device to be probed.

Note that the iterator variable was made unsigned in order to avoid
a maybe-uninitialized compiler warning for ep_desc after the loop.

Fixes: 895f28badce9 ("USB: ftdi_sio: fix hi-speed device packet size
calculation")

Reported-by: Mike Remski &lt;mremski@mutualink.net&gt;
Tested-by: Mike Remski &lt;mremski@mutualink.net&gt;
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>usb: chipidea: udc: delete td from req's td list at ep_dequeue</title>
<updated>2014-07-09T18:18:24Z</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.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=0d845a46caab134b9ffc05e86d1acacdde353c34'/>
<id>urn:sha1:0d845a46caab134b9ffc05e86d1acacdde353c34</id>
<content type='text'>
commit e4adcff09ca39ecbcc4851d40d0f0a5458e7b77a upstream.

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;
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: musb: Fix panic upon musb_am335x module removal</title>
<updated>2014-07-09T18:18:24Z</updated>
<author>
<name>Ezequiel Garcia</name>
<email>ezequiel@vanguardiasur.com.ar</email>
</author>
<published>2014-06-23T18:34:22Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=6ea07d9b040bd42f4398e413a09d8f5795756886'/>
<id>urn:sha1:6ea07d9b040bd42f4398e413a09d8f5795756886</id>
<content type='text'>
commit 7adb5c876e9c0677078a1e1094c6eafd29c30b74 upstream.

At probe time, the musb_am335x driver register its childs by
calling of_platform_populate(), which registers all childs in
the devicetree hierarchy recursively.

On the other side, the driver's remove() function uses of_device_unregister()
to remove each child of musb_am335x's.

However, when musb_dsps is loaded, its devices are attached to the musb_am335x
device as musb_am335x childs. Hence, musb_am335x remove() will attempt to
unregister the devices registered by musb_dsps, which produces a kernel panic.

In other words, the childs in the "struct device" hierarchy are not the same
as the childs in the "devicetree" hierarchy.

Ideally, we should enforce the removal of the devices registered by
musb_am335x *only*, instead of all its child devices. However, because of the
recursive nature of of_platform_populate, this doesn't seem possible.

Therefore, as the only solution at hand, this commit disables musb_am335x
driver removal capability, preventing it from being ever removed. This was
originally suggested by Sebastian Siewior:

https://www.mail-archive.com/linux-omap@vger.kernel.org/msg104946.html

And for reference, here's the panic upon module removal:

musb-hdrc musb-hdrc.0.auto: remove, state 4
usb usb1: USB disconnect, device number 1
musb-hdrc musb-hdrc.0.auto: USB bus 1 deregistered
Unable to handle kernel NULL pointer dereference at virtual address 0000008c
pgd = de11c000
[0000008c] *pgd=9e174831, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1] ARM
Modules linked in: musb_am335x(-) musb_dsps musb_hdrc usbcore usb_common
CPU: 0 PID: 623 Comm: modprobe Not tainted 3.15.0-rc4-00001-g24efd13 #69
task: de1b7500 ti: de122000 task.ti: de122000
PC is at am335x_shutdown+0x10/0x28
LR is at am335x_shutdown+0xc/0x28
pc : [&lt;c0327798&gt;]    lr : [&lt;c0327794&gt;]    psr: a0000013
sp : de123df8  ip : 00000004  fp : 00028f00
r10: 00000000  r9 : de122000  r8 : c000e6c4
r7 : de0e3c10  r6 : de0e3800  r5 : de624010  r4 : de1ec750
r3 : de0e3810  r2 : 00000000  r1 : 00000001  r0 : 00000000
Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 10c5387d  Table: 9e11c019  DAC: 00000015
Process modprobe (pid: 623, stack limit = 0xde122240)
Stack: (0xde123df8 to 0xde124000)
3de0:                                                       de0e3810 bf054488
3e00: bf05444c de624010 60000013 bf043650 000012fc de624010 de0e3810 bf043a20
3e20: de0e3810 bf04b240 c0635b88 c02ca37c c02ca364 c02c8db0 de1b7500 de0e3844
3e40: de0e3810 c02c8e28 c0635b88 de02824c de0e3810 c02c884c de0e3800 de0e3810
3e60: de0e3818 c02c5b20 bf05417c de0e3800 de0e3800 c0635b88 de0f2410 c02ca838
3e80: bf05417c de0e3800 bf055438 c02ca8cc de0e3c10 bf054194 de0e3c10 c02ca37c
3ea0: c02ca364 c02c8db0 de1b7500 de0e3c44 de0e3c10 c02c8e28 c0635b88 de02824c
3ec0: de0e3c10 c02c884c de0e3c10 de0e3c10 de0e3c18 c02c5b20 de0e3c10 de0e3c10
3ee0: 00000000 bf059000 a0000013 c02c5bc0 00000000 bf05900c de0e3c10 c02c5c48
3f00: de0dd0c0 de1ec970 de0f2410 bf05929c de0f2444 bf05902c de0f2410 c02ca37c
3f20: c02ca364 c02c8db0 bf05929c de0f2410 bf05929c c02c94c8 bf05929c 00000000
3f40: 00000800 c02c8ab4 bf0592e0 c007fc40 c00dd820 6273756d 336d615f 00783533
3f60: c064a0ac de1b7500 de122000 de1b7500 c000e590 00000001 c000e6c4 c0060160
3f80: 00028e70 00028e70 00028ea4 00000081 60000010 00028e70 00028e70 00028ea4
3fa0: 00000081 c000e500 00028e70 00028e70 00028ea4 00000800 becb59f8 00027608
3fc0: 00028e70 00028e70 00028ea4 00000081 00000001 00000001 00000000 00028f00
3fe0: b6e6b6f0 becb59d4 000160e8 b6e6b6fc 60000010 00028ea4 00000000 00000000
[&lt;c0327798&gt;] (am335x_shutdown) from [&lt;bf054488&gt;] (dsps_musb_exit+0x3c/0x4c [musb_dsps])
[&lt;bf054488&gt;] (dsps_musb_exit [musb_dsps]) from [&lt;bf043650&gt;] (musb_shutdown+0x80/0x90 [musb_hdrc])
[&lt;bf043650&gt;] (musb_shutdown [musb_hdrc]) from [&lt;bf043a20&gt;] (musb_remove+0x24/0x68 [musb_hdrc])
[&lt;bf043a20&gt;] (musb_remove [musb_hdrc]) from [&lt;c02ca37c&gt;] (platform_drv_remove+0x18/0x1c)
[&lt;c02ca37c&gt;] (platform_drv_remove) from [&lt;c02c8db0&gt;] (__device_release_driver+0x70/0xc8)
[&lt;c02c8db0&gt;] (__device_release_driver) from [&lt;c02c8e28&gt;] (device_release_driver+0x20/0x2c)
[&lt;c02c8e28&gt;] (device_release_driver) from [&lt;c02c884c&gt;] (bus_remove_device+0xdc/0x10c)
[&lt;c02c884c&gt;] (bus_remove_device) from [&lt;c02c5b20&gt;] (device_del+0x104/0x198)
[&lt;c02c5b20&gt;] (device_del) from [&lt;c02ca838&gt;] (platform_device_del+0x14/0x9c)
[&lt;c02ca838&gt;] (platform_device_del) from [&lt;c02ca8cc&gt;] (platform_device_unregister+0xc/0x20)
[&lt;c02ca8cc&gt;] (platform_device_unregister) from [&lt;bf054194&gt;] (dsps_remove+0x18/0x38 [musb_dsps])
[&lt;bf054194&gt;] (dsps_remove [musb_dsps]) from [&lt;c02ca37c&gt;] (platform_drv_remove+0x18/0x1c)
[&lt;c02ca37c&gt;] (platform_drv_remove) from [&lt;c02c8db0&gt;] (__device_release_driver+0x70/0xc8)
[&lt;c02c8db0&gt;] (__device_release_driver) from [&lt;c02c8e28&gt;] (device_release_driver+0x20/0x2c)
[&lt;c02c8e28&gt;] (device_release_driver) from [&lt;c02c884c&gt;] (bus_remove_device+0xdc/0x10c)
[&lt;c02c884c&gt;] (bus_remove_device) from [&lt;c02c5b20&gt;] (device_del+0x104/0x198)
[&lt;c02c5b20&gt;] (device_del) from [&lt;c02c5bc0&gt;] (device_unregister+0xc/0x20)
[&lt;c02c5bc0&gt;] (device_unregister) from [&lt;bf05900c&gt;] (of_remove_populated_child+0xc/0x14 [musb_am335x])
[&lt;bf05900c&gt;] (of_remove_populated_child [musb_am335x]) from [&lt;c02c5c48&gt;] (device_for_each_child+0x44/0x70)
[&lt;c02c5c48&gt;] (device_for_each_child) from [&lt;bf05902c&gt;] (am335x_child_remove+0x18/0x30 [musb_am335x])
[&lt;bf05902c&gt;] (am335x_child_remove [musb_am335x]) from [&lt;c02ca37c&gt;] (platform_drv_remove+0x18/0x1c)
[&lt;c02ca37c&gt;] (platform_drv_remove) from [&lt;c02c8db0&gt;] (__device_release_driver+0x70/0xc8)
[&lt;c02c8db0&gt;] (__device_release_driver) from [&lt;c02c94c8&gt;] (driver_detach+0xb4/0xb8)
[&lt;c02c94c8&gt;] (driver_detach) from [&lt;c02c8ab4&gt;] (bus_remove_driver+0x4c/0xa0)
[&lt;c02c8ab4&gt;] (bus_remove_driver) from [&lt;c007fc40&gt;] (SyS_delete_module+0x128/0x1cc)
[&lt;c007fc40&gt;] (SyS_delete_module) from [&lt;c000e500&gt;] (ret_fast_syscall+0x0/0x48)

Fixes: 97238b35d5bb ("usb: musb: dsps: use proper child nodes")
Acked-by: George Cherian &lt;george.cherian@ti.com&gt;
Signed-off-by: Ezequiel Garcia &lt;ezequiel@vanguardiasur.com.ar&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

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