RE: [PATCH] usb: fsl_udc: errata - postpone freeing current dTD

From
Christoph Fritz <hidden>
Date
2012-05-21 06:53:48
Reply to
Chen Peter-B29397, 2012-05-21
Hi Chen,

On Mon, 2012-05-21 at 01:05 +0000, Chen Peter-B29397 wrote:
 
quoted
USB controller may access a wrong address for the dTD (endpoint transfer
descriptor) and then hang. This happens a lot when doing tests with
g_ether module and iperf, a tool for measuring maximum TCP and UDP
bandwidth.

This hardware bug is explained in detail by errata number 2858 for i.MX23:
http://cache.freescale.com/files/dsp/doc/errata/IMX23CE.pdf
Does this patch fix your problem?
yes, it does! :-)
quoted
+#if defined CONFIG_ARCH_MX51 || defined CONFIG_SOC_IMX35
+#define POSTPONE_FREE_LAST_DTD
+#else
+#undef POSTPONE_FREE_LAST_DTD
+#endif
+
All i.mx SoC has this problem, if PowerPC also has this problem, you can 
delete #if defined. Else, you can define it for all i.mx SoC 
(CONFIG_ARCH_MXC | CONFIG_ARCH_MXS)
I was unsure about this too. I can only test imx35. And mx51 was defined
in your tree. So these two should be defined anyway.

Marvell doesn't use any defines in mv_udc_core for their fix, so I would
be fine without ifdefs too. Any objections? Please see next mail with
patch v2.


Thanks,
 -- Christoph
Thread (42 messages) 42 messages, 7 authors, last reply 2012-10-22
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help