diff options
author | Pan Jiafei <Jiafei.Pan@freescale.com> | 2012-02-17 00:57:16 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-02-24 16:12:15 -0500 |
commit | 4c954326823585bd014f36b2babd39c107c2bbb4 (patch) | |
tree | 015e5e293dcb7b90f3d6ad7a8280f437e4892072 /drivers/usb/host/ehci-fsl.c | |
parent | b7a205545345578712611106b371538992e142ff (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/ehci-fsl.c')
-rw-r--r-- | drivers/usb/host/ehci-fsl.c | 25 |
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)) |