summaryrefslogtreecommitdiff
path: root/target/linux/brcm63xx/patches-3.14/317-MIPS-BCM63XX-remove-RUNTIME_DETECT-code-for-bcmcpu_g.patch
diff options
context:
space:
mode:
authorjogo <jogo@3c298f89-4303-0410-b956-a3cf2f4a3e73>2014-04-04 10:17:08 +0000
committerjogo <jogo@3c298f89-4303-0410-b956-a3cf2f4a3e73>2014-04-04 10:17:08 +0000
commit8ef323302f93b40854fa628da94cc6c699732702 (patch)
tree6c76bb06b74246f20373557028e20adcc258a443 /target/linux/brcm63xx/patches-3.14/317-MIPS-BCM63XX-remove-RUNTIME_DETECT-code-for-bcmcpu_g.patch
parent89191cd685dd4452eddc8f308e33061bc623b149 (diff)
brcm63xx: update development kernel to linux 3.14
Now that 3.13 will be EOL soon, switch to 3.14. Known issues: * 74x164 is not available because upstream dropped non-DT support * jffs2 breaks with SMP Unknown issues: * probably plenty Signed-off-by: Jonas Gorski <jogo@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40380 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/brcm63xx/patches-3.14/317-MIPS-BCM63XX-remove-RUNTIME_DETECT-code-for-bcmcpu_g.patch')
-rw-r--r--target/linux/brcm63xx/patches-3.14/317-MIPS-BCM63XX-remove-RUNTIME_DETECT-code-for-bcmcpu_g.patch199
1 files changed, 199 insertions, 0 deletions
diff --git a/target/linux/brcm63xx/patches-3.14/317-MIPS-BCM63XX-remove-RUNTIME_DETECT-code-for-bcmcpu_g.patch b/target/linux/brcm63xx/patches-3.14/317-MIPS-BCM63XX-remove-RUNTIME_DETECT-code-for-bcmcpu_g.patch
new file mode 100644
index 0000000000..e40cfa02b7
--- /dev/null
+++ b/target/linux/brcm63xx/patches-3.14/317-MIPS-BCM63XX-remove-RUNTIME_DETECT-code-for-bcmcpu_g.patch
@@ -0,0 +1,199 @@
+From 78c3d2e796a28ad55f6c2310a11ab22e91bb52fc Mon Sep 17 00:00:00 2001
+From: Jonas Gorski <jogo@openwrt.org>
+Date: Mon, 2 Dec 2013 12:30:44 +0100
+Subject: [PATCH 8/8] MIPS: BCM63XX: remove !RUNTIME_DETECT code for
+ bcmcpu_get_id
+
+Use the same pattern as with get_*_cpu_type() to allow the compiler
+to remove code for non enabled devices.
+
+Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+---
+ arch/mips/bcm63xx/cpu.c | 11 +--
+ arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h | 120 +++++++----------------
+ 2 files changed, 38 insertions(+), 93 deletions(-)
+
+--- a/arch/mips/bcm63xx/cpu.c
++++ b/arch/mips/bcm63xx/cpu.c
+@@ -24,7 +24,9 @@ EXPORT_SYMBOL(bcm63xx_regs_base);
+ const int *bcm63xx_irqs;
+ EXPORT_SYMBOL(bcm63xx_irqs);
+
+-static u16 bcm63xx_cpu_id;
++u16 bcm63xx_cpu_id __read_mostly;
++EXPORT_SYMBOL(bcm63xx_cpu_id);
++
+ static u8 bcm63xx_cpu_rev;
+ static unsigned int bcm63xx_cpu_freq;
+ static unsigned int bcm63xx_memory_size;
+@@ -97,13 +99,6 @@ static const int bcm6368_irqs[] = {
+
+ };
+
+-u16 __bcm63xx_get_cpu_id(void)
+-{
+- return bcm63xx_cpu_id;
+-}
+-
+-EXPORT_SYMBOL(__bcm63xx_get_cpu_id);
+-
+ u8 bcm63xx_get_cpu_rev(void)
+ {
+ return bcm63xx_cpu_rev;
+--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
++++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
+@@ -19,118 +19,68 @@
+ #define BCM6368_CPU_ID 0x6368
+
+ void __init bcm63xx_cpu_init(void);
+-u16 __bcm63xx_get_cpu_id(void);
+ u8 bcm63xx_get_cpu_rev(void);
+ unsigned int bcm63xx_get_cpu_freq(void);
+
++static inline u16 __pure __bcm63xx_get_cpu_id(const u16 cpu_id)
++{
++ switch (cpu_id) {
+ #ifdef CONFIG_BCM63XX_CPU_3368
+-# ifdef bcm63xx_get_cpu_id
+-# undef bcm63xx_get_cpu_id
+-# define bcm63xx_get_cpu_id() __bcm63xx_get_cpu_id()
+-# define BCMCPU_RUNTIME_DETECT
+-# else
+-# define bcm63xx_get_cpu_id() BCM3368_CPU_ID
+-# endif
+-# define BCMCPU_IS_3368() (bcm63xx_get_cpu_id() == BCM3368_CPU_ID)
+-#else
+-# define BCMCPU_IS_3368() (0)
++ case BCM3368_CPU_ID:
+ #endif
+
+ #ifdef CONFIG_BCM63XX_CPU_6328
+-# ifdef bcm63xx_get_cpu_id
+-# undef bcm63xx_get_cpu_id
+-# define bcm63xx_get_cpu_id() __bcm63xx_get_cpu_id()
+-# define BCMCPU_RUNTIME_DETECT
+-# else
+-# define bcm63xx_get_cpu_id() BCM6328_CPU_ID
+-# endif
+-# define BCMCPU_IS_6328() (bcm63xx_get_cpu_id() == BCM6328_CPU_ID)
+-#else
+-# define BCMCPU_IS_6328() (0)
++ case BCM6328_CPU_ID:
+ #endif
+
+ #ifdef CONFIG_BCM63XX_CPU_6338
+-# ifdef bcm63xx_get_cpu_id
+-# undef bcm63xx_get_cpu_id
+-# define bcm63xx_get_cpu_id() __bcm63xx_get_cpu_id()
+-# define BCMCPU_RUNTIME_DETECT
+-# else
+-# define bcm63xx_get_cpu_id() BCM6338_CPU_ID
+-# endif
+-# define BCMCPU_IS_6338() (bcm63xx_get_cpu_id() == BCM6338_CPU_ID)
+-#else
+-# define BCMCPU_IS_6338() (0)
++ case BCM6338_CPU_ID:
+ #endif
+
+ #ifdef CONFIG_BCM63XX_CPU_6345
+-# ifdef bcm63xx_get_cpu_id
+-# undef bcm63xx_get_cpu_id
+-# define bcm63xx_get_cpu_id() __bcm63xx_get_cpu_id()
+-# define BCMCPU_RUNTIME_DETECT
+-# else
+-# define bcm63xx_get_cpu_id() BCM6345_CPU_ID
+-# endif
+-# define BCMCPU_IS_6345() (bcm63xx_get_cpu_id() == BCM6345_CPU_ID)
+-#else
+-# define BCMCPU_IS_6345() (0)
++ case BCM6345_CPU_ID:
+ #endif
+
+ #ifdef CONFIG_BCM63XX_CPU_6348
+-# ifdef bcm63xx_get_cpu_id
+-# undef bcm63xx_get_cpu_id
+-# define bcm63xx_get_cpu_id() __bcm63xx_get_cpu_id()
+-# define BCMCPU_RUNTIME_DETECT
+-# else
+-# define bcm63xx_get_cpu_id() BCM6348_CPU_ID
+-# endif
+-# define BCMCPU_IS_6348() (bcm63xx_get_cpu_id() == BCM6348_CPU_ID)
+-#else
+-# define BCMCPU_IS_6348() (0)
++ case BCM6348_CPU_ID:
+ #endif
+
+ #ifdef CONFIG_BCM63XX_CPU_6358
+-# ifdef bcm63xx_get_cpu_id
+-# undef bcm63xx_get_cpu_id
+-# define bcm63xx_get_cpu_id() __bcm63xx_get_cpu_id()
+-# define BCMCPU_RUNTIME_DETECT
+-# else
+-# define bcm63xx_get_cpu_id() BCM6358_CPU_ID
+-# endif
+-# define BCMCPU_IS_6358() (bcm63xx_get_cpu_id() == BCM6358_CPU_ID)
+-#else
+-# define BCMCPU_IS_6358() (0)
++ case BCM6358_CPU_ID:
+ #endif
+
+ #ifdef CONFIG_BCM63XX_CPU_6362
+-# ifdef bcm63xx_get_cpu_id
+-# undef bcm63xx_get_cpu_id
+-# define bcm63xx_get_cpu_id() __bcm63xx_get_cpu_id()
+-# define BCMCPU_RUNTIME_DETECT
+-# else
+-# define bcm63xx_get_cpu_id() BCM6362_CPU_ID
+-# endif
+-# define BCMCPU_IS_6362() (bcm63xx_get_cpu_id() == BCM6362_CPU_ID)
+-#else
+-# define BCMCPU_IS_6362() (0)
++ case BCM6362_CPU_ID:
+ #endif
+
+-
+ #ifdef CONFIG_BCM63XX_CPU_6368
+-# ifdef bcm63xx_get_cpu_id
+-# undef bcm63xx_get_cpu_id
+-# define bcm63xx_get_cpu_id() __bcm63xx_get_cpu_id()
+-# define BCMCPU_RUNTIME_DETECT
+-# else
+-# define bcm63xx_get_cpu_id() BCM6368_CPU_ID
+-# endif
+-# define BCMCPU_IS_6368() (bcm63xx_get_cpu_id() == BCM6368_CPU_ID)
+-#else
+-# define BCMCPU_IS_6368() (0)
+-#endif
+-
+-#ifndef bcm63xx_get_cpu_id
+-#error "No CPU support configured"
++ case BCM6368_CPU_ID:
+ #endif
++ break;
++ default:
++ unreachable();
++ }
++
++ return cpu_id;
++}
++
++extern u16 bcm63xx_cpu_id;
++
++static inline u16 __pure bcm63xx_get_cpu_id(void)
++{
++ const u16 cpu_id = bcm63xx_cpu_id;
++
++ return __bcm63xx_get_cpu_id(cpu_id);
++}
++
++#define BCMCPU_IS_3368() (bcm63xx_get_cpu_id() == BCM3368_CPU_ID)
++#define BCMCPU_IS_6328() (bcm63xx_get_cpu_id() == BCM6328_CPU_ID)
++#define BCMCPU_IS_6338() (bcm63xx_get_cpu_id() == BCM6338_CPU_ID)
++#define BCMCPU_IS_6345() (bcm63xx_get_cpu_id() == BCM6345_CPU_ID)
++#define BCMCPU_IS_6348() (bcm63xx_get_cpu_id() == BCM6348_CPU_ID)
++#define BCMCPU_IS_6358() (bcm63xx_get_cpu_id() == BCM6358_CPU_ID)
++#define BCMCPU_IS_6362() (bcm63xx_get_cpu_id() == BCM6362_CPU_ID)
++#define BCMCPU_IS_6368() (bcm63xx_get_cpu_id() == BCM6368_CPU_ID)
+
+ /*
+ * While registers sets are (mostly) the same across 63xx CPU, base