drivers: usb: fsl: Move USB Errata checking code
authorNikhil Badola <nikhil.badola@freescale.com>
Tue, 30 Sep 2014 05:52:43 +0000 (11:22 +0530)
committerYork Sun <yorksun@freescale.com>
Fri, 21 Nov 2014 17:28:28 +0000 (09:28 -0800)
Move USB Errata checking code from "arch/powerpc" to architecture independent
file "fsl_usb.h" so that errata(s) become independent of the architecture.
For each erratum checking function for PPC arch, define a nop function for
non PPC arch for successful compilation in either case

Signed-off-by: Nikhil Badola <nikhil.badola@freescale.com>
Reviewed-by: York Sun <yorksun@freescale.com>
arch/powerpc/cpu/mpc85xx/cmd_errata.c
arch/powerpc/include/asm/fsl_errata.h
drivers/usb/host/ehci-fsl.c
include/fsl_usb.h

index 3a04a893012d2d46ad8160eddea6320d93302402..349ce52122ca5616e1ff15920875b2515f7218a6 100644 (file)
@@ -9,6 +9,7 @@
 #include <linux/compiler.h>
 #include <asm/fsl_errata.h>
 #include <asm/processor.h>
+#include <fsl_usb.h>
 #include "fsl_corenet_serdes.h"
 
 #ifdef CONFIG_SYS_FSL_ERRATUM_A004849
index 64da4bb3bae185ae180908332f5033b2b2b701ea..b9e2fb00fa158c17c0dded28416bf0323e8cf5bc 100644 (file)
@@ -26,59 +26,4 @@ static inline bool has_erratum_a006379(void)
        return false;
 }
 #endif
-
-#ifdef CONFIG_SYS_FSL_ERRATUM_A006261
-static inline bool has_erratum_a006261(void)
-{
-       u32 svr = get_svr();
-       u32 soc = SVR_SOC_VER(svr);
-
-       switch (soc) {
-       case SVR_P1010:
-               return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
-       case SVR_P2041:
-       case SVR_P2040:
-               return IS_SVR_REV(svr, 1, 0) ||
-                       IS_SVR_REV(svr, 1, 1) || IS_SVR_REV(svr, 2, 1);
-       case SVR_P3041:
-               return IS_SVR_REV(svr, 1, 0) ||
-                       IS_SVR_REV(svr, 1, 1) ||
-                       IS_SVR_REV(svr, 2, 0) || IS_SVR_REV(svr, 2, 1);
-       case SVR_P5010:
-       case SVR_P5020:
-       case SVR_P5021:
-               return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
-       case SVR_T4240:
-       case SVR_T4160:
-       case SVR_T4080:
-               return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
-       case SVR_T1040:
-               return IS_SVR_REV(svr, 1, 0);
-       case SVR_T2080:
-       case SVR_T2081:
-               return IS_SVR_REV(svr, 1, 0);
-       case SVR_P5040:
-               return IS_SVR_REV(svr, 1, 0);
-       }
-
-       return false;
-}
-#endif
-
-static inline bool has_erratum_a007075(void)
-{
-       u32 svr = get_svr();
-       u32 soc = SVR_SOC_VER(svr);
-
-       switch (soc) {
-       case SVR_B4860:
-       case SVR_B4420:
-               return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
-       case SVR_P1010:
-               return IS_SVR_REV(svr, 1, 0);
-       case SVR_P4080:
-               return IS_SVR_REV(svr, 2, 0) || IS_SVR_REV(svr, 3, 0);
-       }
-       return false;
-}
 #endif
index 45062e699bd7c38793e9bd6a5a3142e263c16f84..d5361d7c459a5a5125e057d200696e2f85050b50 100644 (file)
@@ -14,7 +14,7 @@
 #include <asm/io.h>
 #include <usb/ehci-fsl.h>
 #include <hwconfig.h>
-#include <asm/fsl_errata.h>
+#include <fsl_usb.h>
 
 #include "ehci.h"
 
index 1a6c9c1636638f3977db5f3dfbc77bc01392f03a..66f893458880a38f11ec8a6a255e120933641dad 100644 (file)
@@ -85,4 +85,70 @@ struct ccsr_usb_phy {
 #define CONFIG_SYS_FSL_USB_SQUELCH_PROG_MASK 0x07
 #endif
 
+/* USB Erratum Checking code */
+#ifdef CONFIG_PPC
+static inline bool has_erratum_a006261(void)
+{
+       u32 svr = get_svr();
+       u32 soc = SVR_SOC_VER(svr);
+
+       switch (soc) {
+       case SVR_P1010:
+               return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
+       case SVR_P2041:
+       case SVR_P2040:
+               return IS_SVR_REV(svr, 1, 0) ||
+                       IS_SVR_REV(svr, 1, 1) || IS_SVR_REV(svr, 2, 1);
+       case SVR_P3041:
+               return IS_SVR_REV(svr, 1, 0) ||
+                       IS_SVR_REV(svr, 1, 1) ||
+                       IS_SVR_REV(svr, 2, 0) || IS_SVR_REV(svr, 2, 1);
+       case SVR_P5010:
+       case SVR_P5020:
+       case SVR_P5021:
+               return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
+       case SVR_T4240:
+       case SVR_T4160:
+       case SVR_T4080:
+               return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
+       case SVR_T1040:
+               return IS_SVR_REV(svr, 1, 0);
+       case SVR_T2080:
+       case SVR_T2081:
+               return IS_SVR_REV(svr, 1, 0);
+       case SVR_P5040:
+               return IS_SVR_REV(svr, 1, 0);
+       }
+
+       return false;
+}
+
+static inline bool has_erratum_a007075(void)
+{
+       u32 svr = get_svr();
+       u32 soc = SVR_SOC_VER(svr);
+
+       switch (soc) {
+       case SVR_B4860:
+       case SVR_B4420:
+               return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
+       case SVR_P1010:
+               return IS_SVR_REV(svr, 1, 0);
+       case SVR_P4080:
+               return IS_SVR_REV(svr, 2, 0) || IS_SVR_REV(svr, 3, 0);
+       }
+       return false;
+}
+#else
+static inline bool has_erratum_a006261(void)
+{
+       return false;
+}
+
+static inline bool has_erratum_a007075(void)
+{
+       return false;
+}
+
+#endif
 #endif /*_ASM_FSL_USB_H_ */