Subject: 3.7 kernel hangs when doing scp

From: [email-masked] (Peter Chen)
Date: Fri, 21 Dec 2012 10:22:50 +0800

On Thu, Dec 20, 2012 at 09:18:43AM -0200, Fabio Estevam wrote:
> On Thu, Dec 20, 2012 at 8:45 AM, Fabio Estevam <[email-masked]> wrote:
> 
> > Would this be the correct fix?
> >
> > --- a/include/linux/usb/chipidea.h
> > +++ b/include/linux/usb/chipidea.h
> > @@ -18,7 +18,7 @@ struct ci13xxx_platform_data {
> >  #define CI13XXX_REGS_SHARED            BIT(0)
> >  #define CI13XXX_REQUIRE_TRANSCEIVER    BIT(1)
> >  #define CI13XXX_PULLUP_ON_VBUS         BIT(2)
> > -#define CI13XXX_DISABLE_STREAMING      BIT(3)
> > +#define CI13XXX_DISABLE_STREAMING      BIT(4)
> 
> Ops, these are just the platform data flags.
> 
> I will take a look on why the chipidea driver is not properly
> disabling stream mode.

Current chipidea driver only considers disable stream mode at device
mode, in fact, it may be related to below chipidea bug, and needs
to consider all usb modes.

STAR 9000378958
Title: Non-Double Word Aligned Buffer Address Sometimes Causes Host to Hang on OUT Retry 
www.synopsys.com/dw/star.php?c=dwc_usb2_hs_otg_controller&fixedIn=2.20a

To fix this, we need to add CI13XXX_DISABLE_STREAMING after role->start/init.

> Regards,
> Fabio Estevam

-- 

Best Regards,
Peter Chen