RE: [PATCH] powerpc/usb: fix bug of kernel hang when initializing usb

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

> From: linuxbj-internal-bounces@xxxxxxxxxxxxxxxxxxx [mailto:linuxbj-internal-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Pan Jiafei-B37022
> Sent: Friday, December 16, 2011 12:49 PM
> To: linuxbj-internal@xxxxxxxxxxxxxxxxxxx
> 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@xxxxxxxxxxxxx>
> ---
> 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))


--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux