aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host
diff options
context:
space:
mode:
authorPan Jiafei <Jiafei.Pan@freescale.com>2012-02-17 00:57:16 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-02-24 16:12:15 -0500
commit4c954326823585bd014f36b2babd39c107c2bbb4 (patch)
tree015e5e293dcb7b90f3d6ad7a8280f437e4892072 /drivers/usb/host
parentb7a205545345578712611106b371538992e142ff (diff)
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@freescale.com> Acked-by: Li Yang <leoli@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host')
-rw-r--r--drivers/usb/host/ehci-fsl.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
index 10e008a730a5..cd30ea4416a6 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)
252 if (pdata->have_sysif_regs) { 252 if (pdata->have_sysif_regs) {
253 temp = in_be32(non_ehci + FSL_SOC_USB_CTRL); 253 temp = in_be32(non_ehci + FSL_SOC_USB_CTRL);
254 out_be32(non_ehci + FSL_SOC_USB_CTRL, temp | 0x00000004); 254 out_be32(non_ehci + FSL_SOC_USB_CTRL, temp | 0x00000004);
255 out_be32(non_ehci + FSL_SOC_USB_SNOOP1, 0x0000001b);
256 }
257
258#if defined(CONFIG_PPC32) && !defined(CONFIG_NOT_COHERENT_CACHE)
259 /*
260 * Turn on cache snooping hardware, since some PowerPC platforms
261 * wholly rely on hardware to deal with cache coherent
262 */
263 255
264 /* Setup Snooping for all the 4GB space */ 256 /*
265 /* SNOOP1 starts from 0x0, size 2G */ 257 * Turn on cache snooping hardware, since some PowerPC platforms
266 out_be32(non_ehci + FSL_SOC_USB_SNOOP1, 0x0 | SNOOP_SIZE_2GB); 258 * wholly rely on hardware to deal with cache coherent
267 /* SNOOP2 starts from 0x80000000, size 2G */ 259 */
268 out_be32(non_ehci + FSL_SOC_USB_SNOOP2, 0x80000000 | SNOOP_SIZE_2GB); 260
269#endif 261 /* Setup Snooping for all the 4GB space */
262 /* SNOOP1 starts from 0x0, size 2G */
263 out_be32(non_ehci + FSL_SOC_USB_SNOOP1, 0x0 | SNOOP_SIZE_2GB);
264 /* SNOOP2 starts from 0x80000000, size 2G */
265 out_be32(non_ehci + FSL_SOC_USB_SNOOP2, 0x80000000 | SNOOP_SIZE_2GB);
266 }
270 267
271 if ((pdata->operating_mode == FSL_USB2_DR_HOST) || 268 if ((pdata->operating_mode == FSL_USB2_DR_HOST) ||
272 (pdata->operating_mode == FSL_USB2_DR_OTG)) 269 (pdata->operating_mode == FSL_USB2_DR_OTG))