Changeset 42495


Ignore:
Timestamp:
2014-09-12T08:52:26+02:00 (3 years ago)
Author:
blogic
Message:

atheros: rework and cleanup board initialization

  • remove odd flags and branching
    • add init mark
    • make shorter variables names
    • returns true or false from boolean functions
    • unwrap short function declarations
    • unwrap quoted string
    • rename macroses with names in CamelCase

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/atheros/patches-3.14/100-board.patch

    r42494 r42495  
    8585--- /dev/null 
    8686+++ b/arch/mips/ar231x/board.c 
    87 @@ -0,0 +1,260 @@ 
     87@@ -0,0 +1,229 @@ 
    8888+/* 
    8989+ * This file is subject to the terms and conditions of the GNU General Public 
     
    120120+void (*ar231x_irq_dispatch)(void); 
    121121+ 
    122 +static inline bool 
    123 +check_radio_magic(u8 *addr) 
     122+static inline bool check_radio_magic(u8 *addr) 
    124123+{ 
    125124+       addr += 0x7a; /* offset for flash magic */ 
    126 +       if ((addr[0] == 0x5a) && (addr[1] == 0xa5)) 
    127 +               return 1; 
    128 + 
    129 +       return 0; 
    130 +} 
    131 + 
    132 +static inline bool 
    133 +check_board_data(u8 *flash_limit, u8 *addr, bool broken) 
     125+       return (addr[0] == 0x5a) && (addr[1] == 0xa5); 
     126+} 
     127+ 
     128+static inline bool check_notempty(u8 *addr) 
     129+{ 
     130+       return *(u32 *)addr != 0xffffffff; 
     131+} 
     132+ 
     133+static inline bool check_board_data(u8 *flash_limit, u8 *addr, bool broken) 
    134134+{ 
    135135+       /* config magic found */ 
    136136+       if (*((u32 *)addr) == AR231X_BD_MAGIC) 
    137 +               return 1; 
     137+               return true; 
    138138+ 
    139139+       if (!broken) 
    140 +               return 0; 
     140+               return false; 
    141141+ 
    142142+       if (check_radio_magic(addr + 0xf8)) 
    143143+               ar231x_board.radio = addr + 0xf8; 
    144144+       if ((addr < flash_limit + 0x10000) && 
    145 +            check_radio_magic(addr + 0x10000)) 
     145+           check_radio_magic(addr + 0x10000)) 
    146146+               ar231x_board.radio = addr + 0x10000; 
    147147+ 
     
    149149+               /* broken board data detected, use radio data to find the 
    150150+                * offset, user will fix this */ 
    151 +               return 1; 
     151+               return true; 
    152152+       } 
    153 +       return 0; 
    154 +} 
    155 + 
    156 +static u8 * 
    157 +find_board_config(u8 *flash_limit, bool broken) 
     153+ 
     154+       return false; 
     155+} 
     156+ 
     157+static u8 * __init find_board_config(u8 *flash_limit, bool broken) 
    158158+{ 
    159159+       u8 *addr; 
    160 +       int found = 0; 
    161 + 
    162 +       for (addr = flash_limit - 0x1000; 
    163 +               addr >= flash_limit - 0x30000; 
    164 +               addr -= 0x1000) { 
    165 + 
    166 +               if (check_board_data(flash_limit, addr, broken)) { 
    167 +                       found = 1; 
    168 +                       break; 
    169 +               } 
    170 +       } 
    171 + 
    172 +       if (!found) 
    173 +               addr = NULL; 
    174 + 
    175 +       return addr; 
    176 +} 
    177 + 
    178 +static u8 * 
    179 +find_radio_config(u8 *flash_limit, u8 *board_config) 
    180 +{ 
    181 +       int found; 
    182 +       u8 *radio_config; 
     160+       u8 *begin = flash_limit - 0x1000; 
     161+       u8 *end = flash_limit - 0x30000; 
     162+ 
     163+       for (addr = begin; addr >= end; addr -= 0x1000) 
     164+               if (check_board_data(flash_limit, addr, broken)) 
     165+                       return addr; 
     166+ 
     167+       return NULL; 
     168+} 
     169+ 
     170+static u8 * __init find_radio_config(u8 *flash_limit, u8 *bcfg) 
     171+{ 
     172+       u8 *rcfg, *begin, *end; 
    183173+ 
    184174+       /* 
     
    187177+        * at a time until we find non-0xffffffff. 
    188178+        */ 
    189 +       found = 0; 
    190 +       for (radio_config = board_config + 0x1000; 
    191 +            (radio_config < flash_limit); 
    192 +            radio_config += 0x1000) { 
    193 +               if ((*(u32 *)radio_config != 0xffffffff) && 
    194 +                   check_radio_magic(radio_config)) { 
    195 +                       found = 1; 
    196 +                       break; 
    197 +               } 
    198 +       } 
     179+       begin = bcfg + 0x1000; 
     180+       end = flash_limit; 
     181+       for (rcfg = begin; rcfg < end; rcfg += 0x1000) 
     182+               if (check_notempty(rcfg) && check_radio_magic(rcfg)) 
     183+                       return rcfg; 
    199184+ 
    200185+       /* AR2316 relocates radio config to new location */ 
    201 +       if (!found) { 
    202 +               for (radio_config = board_config + 0xf8; 
    203 +                    (radio_config < flash_limit - 0x1000 + 0xf8); 
    204 +                    radio_config += 0x1000) { 
    205 +                       if ((*(u32 *)radio_config != 0xffffffff) && 
    206 +                           check_radio_magic(radio_config)) { 
    207 +                               found = 1; 
    208 +                               break; 
    209 +                       } 
    210 +               } 
    211 +       } 
    212 + 
    213 +       if (!found) { 
    214 +               pr_warn("WARNING: Could not find Radio Configuration data\n"); 
    215 +               radio_config = NULL; 
    216 +       } 
    217 + 
    218 +       return radio_config; 
    219 +} 
    220 + 
    221 +int __init 
    222 +ar231x_find_config(u8 *flash_limit) 
     186+       begin = bcfg + 0xf8; 
     187+       end = flash_limit - 0x1000 + 0xf8; 
     188+       for (rcfg = begin; rcfg < end; rcfg += 0x1000) 
     189+               if (check_notempty(rcfg) && check_radio_magic(rcfg)) 
     190+                       return rcfg; 
     191+ 
     192+       pr_warn("WARNING: Could not find Radio Configuration data\n"); 
     193+ 
     194+       return NULL; 
     195+} 
     196+ 
     197+int __init ar231x_find_config(u8 *flash_limit) 
    223198+{ 
    224199+       struct ar231x_boarddata *config; 
     
    295270+} 
    296271+ 
    297 +static void 
    298 +ar231x_halt(void) 
     272+static void ar231x_halt(void) 
    299273+{ 
    300274+       local_irq_disable(); 
     
    303277+} 
    304278+ 
    305 +void __init 
    306 +plat_mem_setup(void) 
     279+void __init plat_mem_setup(void) 
    307280+{ 
    308281+       _machine_halt = ar231x_halt; 
     
    316289+} 
    317290+ 
    318 +asmlinkage void 
    319 +plat_irq_dispatch(void) 
     291+asmlinkage void plat_irq_dispatch(void) 
    320292+{ 
    321293+       ar231x_irq_dispatch(); 
    322294+} 
    323295+ 
    324 +void __init 
    325 +plat_time_init(void) 
     296+void __init plat_time_init(void) 
    326297+{ 
    327298+       ar5312_time_init(); 
     
    329300+} 
    330301+ 
    331 +unsigned int __cpuinit 
    332 +get_c0_compare_int(void) 
     302+unsigned int __cpuinit get_c0_compare_int(void) 
    333303+{ 
    334304+       return CP0_LEGACY_COMPARE_IRQ; 
    335305+} 
    336306+ 
    337 +void __init 
    338 +arch_init_irq(void) 
     307+void __init arch_init_irq(void) 
    339308+{ 
    340309+       clear_c0_status(ST0_IM); 
     
    563532--- /dev/null 
    564533+++ b/arch/mips/include/asm/mach-ar231x/dma-coherence.h 
    565 @@ -0,0 +1,78 @@ 
     534@@ -0,0 +1,77 @@ 
    566535+/* 
    567536+ * This file is subject to the terms and conditions of the GNU General Public 
     
    587556+       if (dev && dev->bus == &pci_bus_type) 
    588557+               return PCI_DMA_OFFSET; 
    589 +       else 
    590558+#endif 
    591 +               return 0; 
     559+       return 0; 
    592560+} 
    593561+ 
     
    15521520+#define FLASHCTL_BM     0x08000000      /* Burst mode */ 
    15531521+#define FLASHCTL_MW     0x30000000      /* Memory width */ 
    1554 +#define FLASHCTL_MWx8   0x00000000      /* Memory width x8 */ 
    1555 +#define FLASHCTL_MWx16  0x10000000      /* Memory width x16 */ 
    1556 +#define FLASHCTL_MWx32  0x20000000      /* Memory width x32 (not supported) */ 
     1522+#define FLASHCTL_MW8    0x00000000      /* Memory width x8 */ 
     1523+#define FLASHCTL_MW16   0x10000000      /* Memory width x16 */ 
     1524+#define FLASHCTL_MW32   0x20000000      /* Memory width x32 (not supported) */ 
    15571525+#define FLASHCTL_ATNR   0x00000000      /* Access type == no retry */ 
    15581526+#define FLASHCTL_ATR    0x80000000      /* Access type == retry every */ 
     
    15901558--- /dev/null 
    15911559+++ b/arch/mips/ar231x/ar5312.c 
    1592 @@ -0,0 +1,542 @@ 
     1560@@ -0,0 +1,541 @@ 
    15931561+/* 
    15941562+ * This file is subject to the terms and conditions of the GNU General Public 
     
    17051673+       u32 dma_addr = ar231x_read_reg(AR5312_DMAADDR);   /* clears error */ 
    17061674+ 
    1707 +       pr_emerg("AHB interrupt: PROCADDR=0x%8.8x  PROC1=0x%8.8x  " 
    1708 +                "DMAADDR=0x%8.8x  DMA1=0x%8.8x\n", proc_addr, proc1, dma_addr, 
    1709 +                dma1); 
     1675+       pr_emerg("AHB interrupt: PROCADDR=0x%8.8x PROC1=0x%8.8x DMAADDR=0x%8.8x DMA1=0x%8.8x\n", 
     1676+                proc_addr, proc1, dma_addr, dma1); 
    17101677+ 
    17111678+       machine_restart("AHB error"); /* Catastrophic failure */ 
     
    19121879+       fctl = ar231x_read_reg(AR5312_FLASHCTL) & FLASHCTL_MW; 
    19131880+       switch (fctl) { 
    1914 +       case FLASHCTL_MWx16: 
     1881+       case FLASHCTL_MW16: 
    19151882+               ar5312_flash_data.width = 2; 
    19161883+               break; 
    1917 +       case FLASHCTL_MWx8: 
     1884+       case FLASHCTL_MW8: 
    19181885+       default: 
    19191886+               ar5312_flash_data.width = 1; 
Note: See TracChangeset for help on using the changeset viewer.