brcm47xx: adjust the brcm4710 cache workaround code so that it does not break bcm4716 (patch by Bernhard Loos)
SVN-Revision: 21395
This commit is contained in:
parent
bbb7850ae6
commit
0f7864456a
6 changed files with 9 additions and 9 deletions
|
@ -7,7 +7,7 @@
|
||||||
+#ifdef CONFIG_BCM47XX
|
+#ifdef CONFIG_BCM47XX
|
||||||
+#include <asm/paccess.h>
|
+#include <asm/paccess.h>
|
||||||
+#include <linux/ssb/ssb.h>
|
+#include <linux/ssb/ssb.h>
|
||||||
+#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE)))
|
+#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE)))
|
||||||
+
|
+
|
||||||
+#define BCM4710_FILL_TLB(addr) (*(volatile unsigned long *)(addr))
|
+#define BCM4710_FILL_TLB(addr) (*(volatile unsigned long *)(addr))
|
||||||
+#define BCM4710_PROTECTED_FILL_TLB(addr) ({ unsigned long x; get_dbe(x, (volatile unsigned long *)(addr)); })
|
+#define BCM4710_PROTECTED_FILL_TLB(addr) ({ unsigned long x; get_dbe(x, (volatile unsigned long *)(addr)); })
|
||||||
|
|
|
@ -4,11 +4,11 @@
|
||||||
#ifdef CONFIG_BCM47XX
|
#ifdef CONFIG_BCM47XX
|
||||||
#include <asm/paccess.h>
|
#include <asm/paccess.h>
|
||||||
#include <linux/ssb/ssb.h>
|
#include <linux/ssb/ssb.h>
|
||||||
-#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE)))
|
-#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE)))
|
||||||
+#define BCM4710_DUMMY_RREG() bcm4710_dummy_rreg()
|
+#define BCM4710_DUMMY_RREG() bcm4710_dummy_rreg()
|
||||||
+
|
+
|
||||||
+static inline unsigned long bcm4710_dummy_rreg(void) {
|
+static inline unsigned long bcm4710_dummy_rreg(void) {
|
||||||
+ return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE)));
|
+ return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE)));
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void*)(addr))
|
+#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void*)(addr))
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
+#ifdef CONFIG_BCM47XX
|
+#ifdef CONFIG_BCM47XX
|
||||||
+#include <asm/paccess.h>
|
+#include <asm/paccess.h>
|
||||||
+#include <linux/ssb/ssb.h>
|
+#include <linux/ssb/ssb.h>
|
||||||
+#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE)))
|
+#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE)))
|
||||||
+
|
+
|
||||||
+#define BCM4710_FILL_TLB(addr) (*(volatile unsigned long *)(addr))
|
+#define BCM4710_FILL_TLB(addr) (*(volatile unsigned long *)(addr))
|
||||||
+#define BCM4710_PROTECTED_FILL_TLB(addr) ({ unsigned long x; get_dbe(x, (volatile unsigned long *)(addr)); })
|
+#define BCM4710_PROTECTED_FILL_TLB(addr) ({ unsigned long x; get_dbe(x, (volatile unsigned long *)(addr)); })
|
||||||
|
|
|
@ -4,11 +4,11 @@
|
||||||
#ifdef CONFIG_BCM47XX
|
#ifdef CONFIG_BCM47XX
|
||||||
#include <asm/paccess.h>
|
#include <asm/paccess.h>
|
||||||
#include <linux/ssb/ssb.h>
|
#include <linux/ssb/ssb.h>
|
||||||
-#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE)))
|
-#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE)))
|
||||||
+#define BCM4710_DUMMY_RREG() bcm4710_dummy_rreg()
|
+#define BCM4710_DUMMY_RREG() bcm4710_dummy_rreg()
|
||||||
+
|
+
|
||||||
+static inline unsigned long bcm4710_dummy_rreg(void) {
|
+static inline unsigned long bcm4710_dummy_rreg(void) {
|
||||||
+ return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE)));
|
+ return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE)));
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void*)(addr))
|
+#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void*)(addr))
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
+#ifdef CONFIG_BCM47XX
|
+#ifdef CONFIG_BCM47XX
|
||||||
+#include <asm/paccess.h>
|
+#include <asm/paccess.h>
|
||||||
+#include <linux/ssb/ssb.h>
|
+#include <linux/ssb/ssb.h>
|
||||||
+#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE)))
|
+#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE)))
|
||||||
+
|
+
|
||||||
+#define BCM4710_FILL_TLB(addr) (*(volatile unsigned long *)(addr))
|
+#define BCM4710_FILL_TLB(addr) (*(volatile unsigned long *)(addr))
|
||||||
+#define BCM4710_PROTECTED_FILL_TLB(addr) ({ unsigned long x; get_dbe(x, (volatile unsigned long *)(addr)); })
|
+#define BCM4710_PROTECTED_FILL_TLB(addr) ({ unsigned long x; get_dbe(x, (volatile unsigned long *)(addr)); })
|
||||||
|
|
|
@ -4,11 +4,11 @@
|
||||||
#ifdef CONFIG_BCM47XX
|
#ifdef CONFIG_BCM47XX
|
||||||
#include <asm/paccess.h>
|
#include <asm/paccess.h>
|
||||||
#include <linux/ssb/ssb.h>
|
#include <linux/ssb/ssb.h>
|
||||||
-#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE)))
|
-#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE)))
|
||||||
+#define BCM4710_DUMMY_RREG() bcm4710_dummy_rreg()
|
+#define BCM4710_DUMMY_RREG() bcm4710_dummy_rreg()
|
||||||
+
|
+
|
||||||
+static inline unsigned long bcm4710_dummy_rreg(void) {
|
+static inline unsigned long bcm4710_dummy_rreg(void) {
|
||||||
+ return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE)));
|
+ return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE)));
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void*)(addr))
|
+#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void*)(addr))
|
||||||
|
|
Loading…
Reference in a new issue