[PATCH] usb: fsl_udc: errata - postpone freeing current dTD
Christoph Fritz
chf.fritz at googlemail.com
Mon May 21 16:53:41 EST 2012
Hi Chen,
On Mon, 2012-05-21 at 01:05 +0000, Chen Peter-B29397 wrote:
>
>
> >
> > 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! :-)
> > +#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
More information about the Linuxppc-dev
mailing list