X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/7d1583626feb64482457250252884a1730727ed3..f231b38166fb2cd26c49311864ad55bcef37ee1a:/target/linux/brcm47xx/patches-2.6.34/920-cache-wround.patch diff --git a/target/linux/brcm47xx/patches-2.6.34/920-cache-wround.patch b/target/linux/brcm47xx/patches-2.6.34/920-cache-wround.patch index 3edf04bf0..b9b22256a 100644 --- a/target/linux/brcm47xx/patches-2.6.34/920-cache-wround.patch +++ b/target/linux/brcm47xx/patches-2.6.34/920-cache-wround.patch @@ -4,11 +4,11 @@ #ifdef CONFIG_BCM47XX #include #include --#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() + +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)) @@ -31,7 +31,7 @@ --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c -@@ -611,6 +611,9 @@ build_get_pgde32(u32 **p, unsigned int t +@@ -707,6 +707,9 @@ build_get_pgde32(u32 **p, unsigned int t #endif uasm_i_addu(p, ptr, tmp, ptr); #else @@ -41,7 +41,7 @@ UASM_i_LA_mostly(p, ptr, pgdc); #endif uasm_i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */ -@@ -749,12 +752,12 @@ static void __cpuinit build_r4000_tlb_re +@@ -868,12 +871,12 @@ static void __cpuinit build_r4000_tlb_re /* No need for uasm_i_nop */ } @@ -57,7 +57,7 @@ build_get_pgde32(&p, K0, K1); /* get pgd in K1 */ #endif -@@ -766,6 +769,9 @@ static void __cpuinit build_r4000_tlb_re +@@ -885,6 +888,9 @@ static void __cpuinit build_r4000_tlb_re build_update_entries(&p, K0, K1); build_tlb_write_entry(&p, &l, &r, tlb_random); uasm_l_leave(&l, p); @@ -67,7 +67,7 @@ uasm_i_eret(&p); /* return from trap */ #ifdef CONFIG_HUGETLB_PAGE -@@ -1206,12 +1212,12 @@ build_r4000_tlbchange_handler_head(u32 * +@@ -1321,12 +1327,12 @@ build_r4000_tlbchange_handler_head(u32 * struct uasm_reloc **r, unsigned int pte, unsigned int ptr) { @@ -83,7 +83,7 @@ build_get_pgde32(p, pte, ptr); /* get pgd in ptr */ #endif -@@ -1248,6 +1254,9 @@ build_r4000_tlbchange_handler_tail(u32 * +@@ -1363,6 +1369,9 @@ build_r4000_tlbchange_handler_tail(u32 * build_update_entries(p, tmp, ptr); build_tlb_write_entry(p, l, r, tlb_indexed); uasm_l_leave(l, *p);