[PATCH] powerpc/usb: fix bug of kernel hang when initializing usb
Pan Jiafei-B37022
B37022 at freescale.com
Fri Feb 17 14:46:52 EST 2012
> -----Original Message-----
> From: Benjamin Herrenschmidt [mailto:benh at kernel.crashing.org]
> Sent: Friday, February 17, 2012 11:43 AM
> To: Pan Jiafei-B37022
> Cc: Liu Shengzhou-B36685; linux-usb at vger.kernel.org; linuxppc-
> dev at lists.ozlabs.org
> Subject: RE: [PATCH] powerpc/usb: fix bug of kernel hang when
> initializing usb
>
> On Fri, 2012-02-17 at 03:20 +0000, Pan Jiafei-B37022 wrote:
> > FYI, I once fixed this issue when backport P5020 BSP for WR Linux, The
> > following is the patch which I have submitted to linuxbj-internal.
>
> Should I just apply this to upstream ?
>
> Cheers,
> Ben.
>
[Pan Jiafei-B37022]
Feel free to apply this to upstream, thanks
Best Regards.
Jiafei
> > From: linuxbj-internal-bounces at linux.freescale.net
> > [mailto:linuxbj-internal-bounces at linux.freescale.net] On Behalf Of Pan
> > Jiafei-B37022
> > Sent: Friday, December 16, 2011 12:49 PM
> > To: linuxbj-internal at linux.freescale.net
> > Cc: Pan Jiafei-B37022
> > Subject: [Linuxbj-internal] [PATCH] USB: ehci-fsl: Turn on cache
> > snooping on MPC8xxx
> >
> > If a MPC8xxx was being used, 'have_sysif_regs' should be set and it
> > should setup cache snooping for all the 4GB space on both PPC32 and
> > PPC64.
> >
> > Signed-off-by: Pan Jiafei <Jiafei.Pan at freescale.com>
> > ---
> > drivers/usb/host/ehci-fsl.c | 23 ++++++++++-------------
> > 1 files changed, 10 insertions(+), 13 deletions(-)
> >
> > diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
> > index 90534cc..ee14fa7 100644
> > --- a/drivers/usb/host/ehci-fsl.c
> > +++ b/drivers/usb/host/ehci-fsl.c
> > @@ -260,21 +260,18 @@ static void ehci_fsl_usb_setup(struct ehci_hcd
> *ehci)
> > if (pdata->have_sysif_regs) {
> > temp = in_be32(non_ehci + FSL_SOC_USB_CTRL);
> > out_be32(non_ehci + FSL_SOC_USB_CTRL, temp | 0x00000004);
> > - out_be32(non_ehci + FSL_SOC_USB_SNOOP1, 0x0000001b);
> > - }
> >
> > -#if defined(CONFIG_PPC32) && !defined(CONFIG_NOT_COHERENT_CACHE)
> > - /*
> > - * Turn on cache snooping hardware, since some PowerPC platforms
> > - * wholly rely on hardware to deal with cache coherent
> > - */
> > + /*
> > + * Turn on cache snooping hardware, since some PowerPC
> platforms
> > + * wholly rely on hardware to deal with cache coherent
> > + */
> >
> > - /* Setup Snooping for all the 4GB space */
> > - /* SNOOP1 starts from 0x0, size 2G */
> > - out_be32(non_ehci + FSL_SOC_USB_SNOOP1, 0x0 | SNOOP_SIZE_2GB);
> > - /* SNOOP2 starts from 0x80000000, size 2G */
> > - out_be32(non_ehci + FSL_SOC_USB_SNOOP2, 0x80000000 |
> SNOOP_SIZE_2GB);
> > -#endif
> > + /* Setup Snooping for all the 4GB space */
> > + /* SNOOP1 starts from 0x0, size 2G */
> > + out_be32(non_ehci + FSL_SOC_USB_SNOOP1, 0x0 |
> SNOOP_SIZE_2GB);
> > + /* SNOOP2 starts from 0x80000000, size 2G */
> > + out_be32(non_ehci + FSL_SOC_USB_SNOOP2, 0x80000000 |
> SNOOP_SIZE_2GB);
> > + }
> >
> > if ((pdata->operating_mode == FSL_USB2_DR_HOST) ||
> > (pdata->operating_mode == FSL_USB2_DR_OTG))
>
>
More information about the Linuxppc-dev
mailing list