source: branches/backfire/target/linux/brcm47xx/patches-2.6.32/920-cache-wround.patch @ 21276

Last change on this file since 21276 was 21276, checked in by nbd, 6 years ago

[backfire] backport ssb updates from r21269, this is required for future mac80211 updates

File size: 3.4 KB
  • arch/mips/include/asm/r4kcache.h

    a b  
    2020#ifdef CONFIG_BCM47XX 
    2121#include <asm/paccess.h> 
    2222#include <linux/ssb/ssb.h> 
    23 #define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE))) 
     23#define BCM4710_DUMMY_RREG() bcm4710_dummy_rreg() 
     24 
     25static inline unsigned long bcm4710_dummy_rreg(void) { 
     26      return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE))); 
     27} 
     28 
     29#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void*)(addr)) 
     30 
     31static inline unsigned long bcm4710_fill_tlb(void *addr) { 
     32      return (*(unsigned long *)addr); 
     33} 
     34 
     35#define BCM4710_PROTECTED_FILL_TLB(addr) bcm4710_protected_fill_tlb((void*)(addr)) 
     36 
     37static inline void bcm4710_protected_fill_tlb(void *addr) { 
     38      unsigned long x; 
     39      get_dbe(x, (unsigned long *)addr);; 
     40} 
    2441 
    25 #define BCM4710_FILL_TLB(addr) (*(volatile unsigned long *)(addr)) 
    26 #define BCM4710_PROTECTED_FILL_TLB(addr) ({ unsigned long x; get_dbe(x, (volatile unsigned long *)(addr)); }) 
    2742#else 
    2843#define BCM4710_DUMMY_RREG() 
    2944 
  • arch/mips/mm/tlbex.c

    a b build_get_pgde32(u32 **p, unsigned int t 
    595595#endif 
    596596        uasm_i_addu(p, ptr, tmp, ptr); 
    597597#else 
     598#ifdef CONFIG_BCM47XX 
     599        uasm_i_nop(p); 
     600#endif 
    598601        UASM_i_LA_mostly(p, ptr, pgdc); 
    599602#endif 
    600603        uasm_i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */ 
    static void __cpuinit build_r4000_tlb_re 
    733736                /* No need for uasm_i_nop */ 
    734737        } 
    735738 
    736 #ifdef CONFIG_BCM47XX 
    737         uasm_i_nop(&p); 
    738 #endif 
    739739#ifdef CONFIG_64BIT 
    740740        build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */ 
    741741#else 
     742# ifdef CONFIG_BCM47XX 
     743        uasm_i_nop(&p); 
     744# endif 
    742745        build_get_pgde32(&p, K0, K1); /* get pgd in K1 */ 
    743746#endif 
    744747 
    static void __cpuinit build_r4000_tlb_re 
    750753        build_update_entries(&p, K0, K1); 
    751754        build_tlb_write_entry(&p, &l, &r, tlb_random); 
    752755        uasm_l_leave(&l, p); 
     756#ifdef CONFIG_BCM47XX 
     757        uasm_i_nop(&p); 
     758#endif 
    753759        uasm_i_eret(&p); /* return from trap */ 
    754760 
    755761#ifdef CONFIG_HUGETLB_PAGE 
    build_r4000_tlbchange_handler_head(u32 * 
    11881194                                   struct uasm_reloc **r, unsigned int pte, 
    11891195                                   unsigned int ptr) 
    11901196{ 
    1191 #ifdef CONFIG_BCM47XX 
    1192         uasm_i_nop(p); 
    1193 #endif 
    11941197#ifdef CONFIG_64BIT 
    11951198        build_get_pmde64(p, l, r, pte, ptr); /* get pmd in ptr */ 
    11961199#else 
     1200# ifdef CONFIG_BCM47XX 
     1201        uasm_i_nop(p); 
     1202# endif 
    11971203        build_get_pgde32(p, pte, ptr); /* get pgd in ptr */ 
    11981204#endif 
    11991205 
    build_r4000_tlbchange_handler_tail(u32 * 
    12301236        build_update_entries(p, tmp, ptr); 
    12311237        build_tlb_write_entry(p, l, r, tlb_indexed); 
    12321238        uasm_l_leave(l, *p); 
     1239#ifdef CONFIG_BCM47XX 
     1240        uasm_i_nop(p); 
     1241#endif 
    12331242        uasm_i_eret(p); /* return from trap */ 
    12341243 
    12351244#ifdef CONFIG_64BIT 
  • arch/mips/kernel/genex.S

    a b  
    2222#include <asm/page.h> 
    2323#include <asm/thread_info.h> 
    2424 
     25#ifdef CONFIG_BCM47XX 
     26# ifdef eret 
     27#  undef eret 
     28# endif 
     29# define eret                                   \ 
     30        .set push;                              \ 
     31        .set noreorder;                         \ 
     32         nop;                                   \ 
     33         nop;                                   \ 
     34         eret;                                  \ 
     35        .set pop; 
     36#endif 
     37 
    2538#define PANIC_PIC(msg)                                  \ 
    2639                .set push;                              \ 
    2740                .set    reorder;                        \ 
    NESTED(except_vec3_generic, 0, sp) 
    5467        .set    noat 
    5568#ifdef CONFIG_BCM47XX 
    5669        nop 
    57         nop 
    5870#endif 
    5971#if R5432_CP0_INTERRUPT_WAR 
    6072        mfc0    k0, CP0_INDEX 
    NESTED(except_vec3_r4000, 0, sp) 
    7991        .set    push 
    8092        .set    mips3 
    8193        .set    noat 
     94#ifdef CONFIG_BCM47XX 
     95        nop 
     96#endif 
    8297        mfc0    k1, CP0_CAUSE 
    8398        li      k0, 31<<2 
    8499        andi    k1, k1, 0x7c 
Note: See TracBrowser for help on using the repository browser.