Patchwork USB: ehci-fsl: Turn on cache snooping on MPC8xxx

login
register
mail settings
Submitter Pan Jiafei
Date Feb. 17, 2012, 5:57 a.m.
Message ID <1329458236-4619-1-git-send-email-Jiafei.Pan@freescale.com>
Download mbox | patch
Permalink /patch/141733/
State Not Applicable
Delegated to: Kumar Gala
Headers show

Comments

Pan Jiafei - Feb. 17, 2012, 5:57 a.m.
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@freescale.com>
---
 drivers/usb/host/ehci-fsl.c |   23 ++++++++++-------------
 1 files changed, 10 insertions(+), 13 deletions(-)
Yang Li - Feb. 17, 2012, 6:56 a.m.
On Fri, Feb 17, 2012 at 1:57 PM, Pan Jiafei <Jiafei.Pan@freescale.com> wrote:
> 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@freescale.com>

Hi Jiafei,

You should have sent this patch upstream earlier.  I remember you
asked about it a few months ago. :)

Acked-by: Li Yang <leoli@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 c26a82e..8327d3e 100644
> --- a/drivers/usb/host/ehci-fsl.c
> +++ b/drivers/usb/host/ehci-fsl.c
> @@ -252,21 +252,18 @@ static int 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))
> --
> 1.7.5.1

Patch

diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
index c26a82e..8327d3e 100644
--- a/drivers/usb/host/ehci-fsl.c
+++ b/drivers/usb/host/ehci-fsl.c
@@ -252,21 +252,18 @@  static int 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))