<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/usb/chipidea, branch v3.12.16</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>usb: chipidea: need to mask when writting endptflush and endptprime</title>
<updated>2014-03-05T16:13:48+00:00</updated>
<author>
<name>Matthieu CASTET</name>
<email>matthieu.castet@parrot.com</email>
</author>
<published>2014-02-19T05:46:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2e7a84eab131472ea8f413428a9bdedd54a143b5'/>
<id>2e7a84eab131472ea8f413428a9bdedd54a143b5</id>
<content type='text'>
commit 5bf5dbeda2454296f1984adfbfc8e6f5965ac389 upstream.

ENDPTFLUSH and ENDPTPRIME registers are set by software and clear
by hardware. There is a bit for each endpoint. When we are setting
a bit for an endpoint we should make sure we do not touch other
endpoint bit. There is a race condition if the hardware clear the
bit between the read and the write in hw_write.

Signed-off-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Signed-off-by: Matthieu CASTET &lt;matthieu.castet@parrot.com&gt;
Tested-by: Michael Grzeschik &lt;mgrzeschik@pengutronix.de&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 5bf5dbeda2454296f1984adfbfc8e6f5965ac389 upstream.

ENDPTFLUSH and ENDPTPRIME registers are set by software and clear
by hardware. There is a bit for each endpoint. When we are setting
a bit for an endpoint we should make sure we do not touch other
endpoint bit. There is a race condition if the hardware clear the
bit between the read and the write in hw_write.

Signed-off-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Signed-off-by: Matthieu CASTET &lt;matthieu.castet@parrot.com&gt;
Tested-by: Michael Grzeschik &lt;mgrzeschik@pengutronix.de&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>usb: chipidea: udc: using MultO at TD as real mult value for ISO-TX</title>
<updated>2014-02-06T19:22:14+00:00</updated>
<author>
<name>Peter Chen</name>
<email>peter.chen@freescale.com</email>
</author>
<published>2014-01-10T05:51:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c3d0a890ee3d67198fce4510e073f087c8f3b42f'/>
<id>c3d0a890ee3d67198fce4510e073f087c8f3b42f</id>
<content type='text'>
commit 2fc5a7dace3c43e62402ab4e8800a8f1834ffe2a upstream.

We have met a bug that the high bandwidth ISO-TX transfer has failed
at the last packet if it is less than 1024, the TD status shows it
is "Transaction Error".

The root cause of this problem is: the mult value at qh is not correct
for current TD's transfer length. We use TD list to queue un-transfer
TDs, and change mult for new adding TDs. If new adding TDs transfer length
less than 1024, but the queued un-transfer TDs transfer length is larger
than 1024, the transfer error will occur, and vice versa.
Usually, this problem occurs at the last packet, and the first packet for
new frame.

We fixed this problem by setting Mult at QH as the largest value (3), and
set MultO (Multiplier Override) at TD according to every transfer length.
It can cover both hardware version less than 2.3 (the real mult is MultO
if it is not 0) and 2.3+ (the real mult is min(qh.mult, td.multo)).

Since the MultO bits are only existed at TX TD, we keep the ISO-RX behavior
unchanged.

For stable tree: 3.11+.

Cc: Michael Grzeschik &lt;m.grzeschik@pengutronix.de&gt;
Reported-by: Matthieu Vanin &lt;b47495@freescale.com&gt;
Tested-by: Matthieu Vanin &lt;b47495@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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 2fc5a7dace3c43e62402ab4e8800a8f1834ffe2a upstream.

We have met a bug that the high bandwidth ISO-TX transfer has failed
at the last packet if it is less than 1024, the TD status shows it
is "Transaction Error".

The root cause of this problem is: the mult value at qh is not correct
for current TD's transfer length. We use TD list to queue un-transfer
TDs, and change mult for new adding TDs. If new adding TDs transfer length
less than 1024, but the queued un-transfer TDs transfer length is larger
than 1024, the transfer error will occur, and vice versa.
Usually, this problem occurs at the last packet, and the first packet for
new frame.

We fixed this problem by setting Mult at QH as the largest value (3), and
set MultO (Multiplier Override) at TD according to every transfer length.
It can cover both hardware version less than 2.3 (the real mult is MultO
if it is not 0) and 2.3+ (the real mult is min(qh.mult, td.multo)).

Since the MultO bits are only existed at TX TD, we keep the ISO-RX behavior
unchanged.

For stable tree: 3.11+.

Cc: Michael Grzeschik &lt;m.grzeschik@pengutronix.de&gt;
Reported-by: Matthieu Vanin &lt;b47495@freescale.com&gt;
Tested-by: Matthieu Vanin &lt;b47495@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;

</pre>
</div>
</content>
</entry>
<entry>
<title>usb: chipidea: need to mask INT_STATUS when write otgsc</title>
<updated>2014-02-06T19:22:14+00:00</updated>
<author>
<name>Peter Chen</name>
<email>peter.chen@freescale.com</email>
</author>
<published>2014-01-10T05:51:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=92083ad956978ee6a79e8a14b38dce6f3e278db2'/>
<id>92083ad956978ee6a79e8a14b38dce6f3e278db2</id>
<content type='text'>
commit 5332ff1fb63c46588656e4208201bc131627c878 upstream.

For otgsc, both enable bits and status bits are in it. So we need
to make sure the status bits are not be cleared when write enable
bits. It can fix one bug that we plug in/out Micro AB cable fast,
and sometimes, the IDIS will be cleared wrongly when handle last
ID interrupt (ID 0-&gt;1), so the current interrupt will not occur.

For stable tree: 3.12+

Signed-off-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 5332ff1fb63c46588656e4208201bc131627c878 upstream.

For otgsc, both enable bits and status bits are in it. So we need
to make sure the status bits are not be cleared when write enable
bits. It can fix one bug that we plug in/out Micro AB cable fast,
and sometimes, the IDIS will be cleared wrongly when handle last
ID interrupt (ID 0-&gt;1), so the current interrupt will not occur.

For stable tree: 3.12+

Signed-off-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>usb: chipidea: imx: set CI_HDRC_IMX28_WRITE_FIX for imx28</title>
<updated>2014-02-06T19:22:14+00:00</updated>
<author>
<name>Peter Chen</name>
<email>peter.chen@freescale.com</email>
</author>
<published>2014-01-10T05:51:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cdde9f60ed6516f020926863a765a3cb624b1854'/>
<id>cdde9f60ed6516f020926863a765a3cb624b1854</id>
<content type='text'>
commit 1071055e2a118a81c0b300d7f4af7eba3f7a7c82 upstream.

Due to imx28 needs ARM swp instruction for writing, we set
CI_HDRC_IMX28_WRITE_FIX for imx28.

This patch is needed for stable tree 3.11+

Cc: robert.hodaszi@digi.com
Signed-off-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Tested-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 1071055e2a118a81c0b300d7f4af7eba3f7a7c82 upstream.

Due to imx28 needs ARM swp instruction for writing, we set
CI_HDRC_IMX28_WRITE_FIX for imx28.

This patch is needed for stable tree 3.11+

Cc: robert.hodaszi@digi.com
Signed-off-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Tested-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>usb: chipidea: add freescale imx28 special write register method</title>
<updated>2014-02-06T19:22:14+00:00</updated>
<author>
<name>Peter Chen</name>
<email>peter.chen@freescale.com</email>
</author>
<published>2014-01-10T05:51:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=03df63f78245cd9db67a2b4f049348783f31ed6e'/>
<id>03df63f78245cd9db67a2b4f049348783f31ed6e</id>
<content type='text'>
commit ed8f8318d2ef3e5f9e4ddf79349508c116b68d7f upstream.

According to Freescale imx28 Errata, "ENGR119653 USB: ARM to USB
register error issue", All USB register write operations must
use the ARM SWP instruction. So, we implement special hw_write
and hw_test_and_clear for imx28.

Discussion for it at below:
http://marc.info/?l=linux-usb&amp;m=137996395529294&amp;w=2

This patch is needed for stable tree 3.11+.

Cc: robert.hodaszi@digi.com
Signed-off-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Tested-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit ed8f8318d2ef3e5f9e4ddf79349508c116b68d7f upstream.

According to Freescale imx28 Errata, "ENGR119653 USB: ARM to USB
register error issue", All USB register write operations must
use the ARM SWP instruction. So, we implement special hw_write
and hw_test_and_clear for imx28.

Discussion for it at below:
http://marc.info/?l=linux-usb&amp;m=137996395529294&amp;w=2

This patch is needed for stable tree 3.11+.

Cc: robert.hodaszi@digi.com
Signed-off-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Tested-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</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='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=bfb4a262bf2ce2b8f7d4f444eb00059b3078bf64'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;

</pre>
</div>
</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='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=811dac78101fa1dda71fe86742cfeefd7ae3bb3a'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;

</pre>
</div>
</content>
</entry>
<entry>
<title>usb/chipidea: fix oops on memory allocation failure</title>
<updated>2013-10-16T20:52:16+00:00</updated>
<author>
<name>Russell King - ARM Linux</name>
<email>linux@arm.linux.org.uk</email>
</author>
<published>2013-10-16T12:45:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=41314fea2ffb6dc716b7e698a47c68b329602fc0'/>
<id>41314fea2ffb6dc716b7e698a47c68b329602fc0</id>
<content type='text'>
When CMA fails to initialize in v3.12-rc4, the chipidea driver oopses
the kernel while trying to remove and put the HCD which doesn't exist:

WARNING: CPU: 0 PID: 6 at /home/rmk/git/linux-rmk/arch/arm/mm/dma-mapping.c:511
__dma_alloc+0x200/0x240()
coherent pool not initialised!
Modules linked in:
CPU: 0 PID: 6 Comm: kworker/u2:0 Tainted: G        W    3.12.0-rc4+ #56
Workqueue: deferwq deferred_probe_work_func
Backtrace:
[&lt;c001218c&gt;] (dump_backtrace+0x0/0x10c) from [&lt;c0012328&gt;] (show_stack+0x18/0x1c)
 r6:c05fd9cc r5:000001ff r4:00000000 r3:df86ad00
[&lt;c0012310&gt;] (show_stack+0x0/0x1c) from [&lt;c05f3a4c&gt;] (dump_stack+0x70/0x8c)
[&lt;c05f39dc&gt;] (dump_stack+0x0/0x8c) from [&lt;c00230a8&gt;] (warn_slowpath_common+0x6c/0x8c)
 r4:df883a60 r3:df86ad00
[&lt;c002303c&gt;] (warn_slowpath_common+0x0/0x8c) from [&lt;c002316c&gt;] (warn_slowpath_fmt+0x38/0x40)
 r8:ffffffff r7:00001000 r6:c083b808 r5:00000000 r4:df2efe80
[&lt;c0023134&gt;] (warn_slowpath_fmt+0x0/0x40) from [&lt;c00196bc&gt;] (__dma_alloc+0x200/0x240)
 r3:00000000 r2:c05fda00
[&lt;c00194bc&gt;] (__dma_alloc+0x0/0x240) from [&lt;c001982c&gt;] (arm_dma_alloc+0x88/0xa0)
[&lt;c00197a4&gt;] (arm_dma_alloc+0x0/0xa0) from [&lt;c03e2904&gt;] (ehci_setup+0x1f4/0x438)
[&lt;c03e2710&gt;] (ehci_setup+0x0/0x438) from [&lt;c03cbd60&gt;] (usb_add_hcd+0x18c/0x664)
[&lt;c03cbbd4&gt;] (usb_add_hcd+0x0/0x664) from [&lt;c03e89f4&gt;] (host_start+0xf0/0x180)
[&lt;c03e8904&gt;] (host_start+0x0/0x180) from [&lt;c03e7c34&gt;] (ci_hdrc_probe+0x360/0x670
)
 r6:df2ef410 r5:00000000 r4:df2c3010 r3:c03e8904
[&lt;c03e78d4&gt;] (ci_hdrc_probe+0x0/0x670) from [&lt;c0311044&gt;] (platform_drv_probe+0x20/0x24)
[&lt;c0311024&gt;] (platform_drv_probe+0x0/0x24) from [&lt;c030fcac&gt;] (driver_probe_device+0x9c/0x234)
...
---[ end trace c88ccaf3969e8422 ]---
Unable to handle kernel NULL pointer dereference at virtual address 00000028
pgd = c0004000
[00000028] *pgd=00000000
Internal error: Oops: 17 [#1] SMP ARM
Modules linked in:
CPU: 0 PID: 6 Comm: kworker/u2:0 Tainted: G        W    3.12.0-rc4+ #56
Workqueue: deferwq deferred_probe_work_func
task: df86ad00 ti: df882000 task.ti: df882000
PC is at usb_remove_hcd+0x10/0x150
LR is at host_stop+0x1c/0x3c
pc : [&lt;c03cacec&gt;]    lr : [&lt;c03e88e4&gt;]    psr: 60000013
sp : df883b50  ip : df883b78  fp : df883b74
r10: c11f4c54  r9 : c0836450  r8 : df30c400
r7 : fffffff4  r6 : df2ef410  r5 : 00000000  r4 : df2c3010
r3 : 00000000  r2 : 00000000  r1 : df86b0a0  r0 : 00000000
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c53c7d  Table: 2f29404a  DAC: 00000015
Process kworker/u2:0 (pid: 6, stack limit = 0xdf882240)
Stack: (0xdf883b50 to 0xdf884000)
...
Backtrace:
[&lt;c03cacdc&gt;] (usb_remove_hcd+0x0/0x150) from [&lt;c03e88e4&gt;] (host_stop+0x1c/0x3c)
 r6:df2ef410 r5:00000000 r4:df2c3010
[&lt;c03e88c8&gt;] (host_stop+0x0/0x3c) from [&lt;c03e8aa0&gt;] (ci_hdrc_host_destroy+0x1c/0x20)
 r5:00000000 r4:df2c3010
[&lt;c03e8a84&gt;] (ci_hdrc_host_destroy+0x0/0x20) from [&lt;c03e7c80&gt;] (ci_hdrc_probe+0x3ac/0x670)
[&lt;c03e78d4&gt;] (ci_hdrc_probe+0x0/0x670) from [&lt;c0311044&gt;] (platform_drv_probe+0x20/0x24)
[&lt;c0311024&gt;] (platform_drv_probe+0x0/0x24) from [&lt;c030fcac&gt;] (driver_probe_device+0x9c/0x234)
[&lt;c030fc10&gt;] (driver_probe_device+0x0/0x234) from [&lt;c030ff28&gt;] (__device_attach+0x44/0x48)
...
---[ end trace c88ccaf3969e8423 ]---

Fix this so at least we can continue booting and get to a shell prompt.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Tested-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When CMA fails to initialize in v3.12-rc4, the chipidea driver oopses
the kernel while trying to remove and put the HCD which doesn't exist:

WARNING: CPU: 0 PID: 6 at /home/rmk/git/linux-rmk/arch/arm/mm/dma-mapping.c:511
__dma_alloc+0x200/0x240()
coherent pool not initialised!
Modules linked in:
CPU: 0 PID: 6 Comm: kworker/u2:0 Tainted: G        W    3.12.0-rc4+ #56
Workqueue: deferwq deferred_probe_work_func
Backtrace:
[&lt;c001218c&gt;] (dump_backtrace+0x0/0x10c) from [&lt;c0012328&gt;] (show_stack+0x18/0x1c)
 r6:c05fd9cc r5:000001ff r4:00000000 r3:df86ad00
[&lt;c0012310&gt;] (show_stack+0x0/0x1c) from [&lt;c05f3a4c&gt;] (dump_stack+0x70/0x8c)
[&lt;c05f39dc&gt;] (dump_stack+0x0/0x8c) from [&lt;c00230a8&gt;] (warn_slowpath_common+0x6c/0x8c)
 r4:df883a60 r3:df86ad00
[&lt;c002303c&gt;] (warn_slowpath_common+0x0/0x8c) from [&lt;c002316c&gt;] (warn_slowpath_fmt+0x38/0x40)
 r8:ffffffff r7:00001000 r6:c083b808 r5:00000000 r4:df2efe80
[&lt;c0023134&gt;] (warn_slowpath_fmt+0x0/0x40) from [&lt;c00196bc&gt;] (__dma_alloc+0x200/0x240)
 r3:00000000 r2:c05fda00
[&lt;c00194bc&gt;] (__dma_alloc+0x0/0x240) from [&lt;c001982c&gt;] (arm_dma_alloc+0x88/0xa0)
[&lt;c00197a4&gt;] (arm_dma_alloc+0x0/0xa0) from [&lt;c03e2904&gt;] (ehci_setup+0x1f4/0x438)
[&lt;c03e2710&gt;] (ehci_setup+0x0/0x438) from [&lt;c03cbd60&gt;] (usb_add_hcd+0x18c/0x664)
[&lt;c03cbbd4&gt;] (usb_add_hcd+0x0/0x664) from [&lt;c03e89f4&gt;] (host_start+0xf0/0x180)
[&lt;c03e8904&gt;] (host_start+0x0/0x180) from [&lt;c03e7c34&gt;] (ci_hdrc_probe+0x360/0x670
)
 r6:df2ef410 r5:00000000 r4:df2c3010 r3:c03e8904
[&lt;c03e78d4&gt;] (ci_hdrc_probe+0x0/0x670) from [&lt;c0311044&gt;] (platform_drv_probe+0x20/0x24)
[&lt;c0311024&gt;] (platform_drv_probe+0x0/0x24) from [&lt;c030fcac&gt;] (driver_probe_device+0x9c/0x234)
...
---[ end trace c88ccaf3969e8422 ]---
Unable to handle kernel NULL pointer dereference at virtual address 00000028
pgd = c0004000
[00000028] *pgd=00000000
Internal error: Oops: 17 [#1] SMP ARM
Modules linked in:
CPU: 0 PID: 6 Comm: kworker/u2:0 Tainted: G        W    3.12.0-rc4+ #56
Workqueue: deferwq deferred_probe_work_func
task: df86ad00 ti: df882000 task.ti: df882000
PC is at usb_remove_hcd+0x10/0x150
LR is at host_stop+0x1c/0x3c
pc : [&lt;c03cacec&gt;]    lr : [&lt;c03e88e4&gt;]    psr: 60000013
sp : df883b50  ip : df883b78  fp : df883b74
r10: c11f4c54  r9 : c0836450  r8 : df30c400
r7 : fffffff4  r6 : df2ef410  r5 : 00000000  r4 : df2c3010
r3 : 00000000  r2 : 00000000  r1 : df86b0a0  r0 : 00000000
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c53c7d  Table: 2f29404a  DAC: 00000015
Process kworker/u2:0 (pid: 6, stack limit = 0xdf882240)
Stack: (0xdf883b50 to 0xdf884000)
...
Backtrace:
[&lt;c03cacdc&gt;] (usb_remove_hcd+0x0/0x150) from [&lt;c03e88e4&gt;] (host_stop+0x1c/0x3c)
 r6:df2ef410 r5:00000000 r4:df2c3010
[&lt;c03e88c8&gt;] (host_stop+0x0/0x3c) from [&lt;c03e8aa0&gt;] (ci_hdrc_host_destroy+0x1c/0x20)
 r5:00000000 r4:df2c3010
[&lt;c03e8a84&gt;] (ci_hdrc_host_destroy+0x0/0x20) from [&lt;c03e7c80&gt;] (ci_hdrc_probe+0x3ac/0x670)
[&lt;c03e78d4&gt;] (ci_hdrc_probe+0x0/0x670) from [&lt;c0311044&gt;] (platform_drv_probe+0x20/0x24)
[&lt;c0311024&gt;] (platform_drv_probe+0x0/0x24) from [&lt;c030fcac&gt;] (driver_probe_device+0x9c/0x234)
[&lt;c030fc10&gt;] (driver_probe_device+0x0/0x234) from [&lt;c030ff28&gt;] (__device_attach+0x44/0x48)
...
---[ end trace c88ccaf3969e8423 ]---

Fix this so at least we can continue booting and get to a shell prompt.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Tested-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: chipidea: add Intel Clovertrail pci id</title>
<updated>2013-10-03T22:41:54+00:00</updated>
<author>
<name>David Cohen</name>
<email>david.a.cohen@linux.intel.com</email>
</author>
<published>2013-10-01T21:32:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a214339d764a07b99dc0418685d6cc8a0a1970d5'/>
<id>a214339d764a07b99dc0418685d6cc8a0a1970d5</id>
<content type='text'>
Also clean up the last item of the pci id list to be "cleaner".

Signed-off-by: David Cohen &lt;david.a.cohen@linux.intel.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also clean up the last item of the pci id list to be "cleaner".

Signed-off-by: David Cohen &lt;david.a.cohen@linux.intel.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: chipidea: USB_CHIPIDEA should depend on HAS_DMA</title>
<updated>2013-09-26T00:30:39+00:00</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert@linux-m68k.org</email>
</author>
<published>2013-09-17T04:37:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2c740336159d9785ae81e8f9d6ba1a6b922723c9'/>
<id>2c740336159d9785ae81e8f9d6ba1a6b922723c9</id>
<content type='text'>
If NO_DMA=y:

drivers/built-in.o: In function `dma_set_coherent_mask':
include/linux/dma-mapping.h:93: undefined reference to `dma_supported'

Reviewed-and-tested-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If NO_DMA=y:

drivers/built-in.o: In function `dma_set_coherent_mask':
include/linux/dma-mapping.h:93: undefined reference to `dma_supported'

Reviewed-and-tested-by: Peter Chen &lt;peter.chen@freescale.com&gt;
Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
