Changeset 44715


Ignore:
Timestamp:
2015-03-13T03:59:27+01:00 (3 years ago)
Author:
nbd
Message:

atheros: v3.18: rework early initialization

Do not use prom_init() callback, do memory initialization in
plat_mem_setup() callback and move serial port configuration to
arch_initcall stage.

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

Location:
trunk/target/linux/atheros/patches-3.18
Files:
2 edited

Legend:

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

    r44714 r44715  
    315315--- /dev/null 
    316316+++ b/arch/mips/ath25/prom.c 
    317 @@ -0,0 +1,40 @@ 
     317@@ -0,0 +1,26 @@ 
    318318+/* 
    319319+ * This file is subject to the terms and conditions of the GNU General Public 
     
    333333+ 
    334334+#include <linux/init.h> 
    335 +#include <generated/autoconf.h> 
    336 +#include <linux/kernel.h> 
    337 +#include <linux/string.h> 
    338 +#include <linux/mm.h> 
    339 +#include <linux/bootmem.h> 
    340 + 
    341335+#include <asm/bootinfo.h> 
    342 +#include <asm/addrspace.h> 
    343 +#include "ar5312.h" 
    344 +#include "ar2315.h" 
    345 +#include "devices.h" 
    346336+ 
    347337+void __init prom_init(void) 
    348338+{ 
    349 +       if (is_ar5312()) 
    350 +               ar5312_prom_init(); 
    351 +       else 
    352 +               ar2315_prom_init(); 
    353339+} 
    354340+ 
     
    14871473--- /dev/null 
    14881474+++ b/arch/mips/ath25/ar5312.c 
    1489 @@ -0,0 +1,450 @@ 
     1475@@ -0,0 +1,449 @@ 
    14901476+/* 
    14911477+ * This file is subject to the terms and conditions of the GNU General Public 
     
    19051891+} 
    19061892+ 
    1907 +void __init 
    1908 +ar5312_prom_init(void) 
     1893+void __init ar5312_plat_mem_setup(void) 
    19091894+{ 
    19101895+       u32 memsize, memcfg, bank0AC, bank1AC; 
     
    19241909+       devid &= AR5312_REV_CHIP; 
    19251910+       ath25_board.devid = (u16)devid; 
    1926 +} 
    1927 + 
    1928 +void __init ar5312_plat_mem_setup(void) 
    1929 +{ 
     1911+ 
    19301912+       /* Clear any lingering AHB errors */ 
    19311913+       ar231x_read_reg(AR5312_PROCADDR); 
     
    19341916+ 
    19351917+       _machine_restart = ar5312_restart; 
     1918+} 
     1919+ 
     1920+void __init ar5312_arch_init(void) 
     1921+{ 
    19361922+       ath25_serial_setup(AR5312_UART0, AR5312_MISC_IRQ_UART0, 
    19371923+                          ar5312_sys_frequency()); 
    19381924+} 
    1939 + 
    19401925--- /dev/null 
    19411926+++ b/arch/mips/ath25/ar2315.c 
     
    22952280+} 
    22962281+ 
    2297 +void __init 
    2298 +ar2315_prom_init(void) 
    2299 +{ 
    2300 +       u32 memsize, memcfg, devid; 
     2282+void __init ar2315_plat_mem_setup(void) 
     2283+{ 
     2284+       u32 memsize, memcfg; 
     2285+       u32 devid; 
     2286+       u32 config; 
    23012287+ 
    23022288+       memcfg = ar231x_read_reg(AR2315_MEM_CFG); 
     
    23252311+       } 
    23262312+       ath25_board.devid = devid; 
    2327 +} 
    2328 + 
    2329 +void __init ar2315_plat_mem_setup(void) 
    2330 +{ 
    2331 +       u32 config; 
    23322313+ 
    23332314+       /* Clear any lingering AHB errors */ 
     
    23392320+ 
    23402321+       _machine_restart = ar2315_restart; 
     2322+} 
     2323+ 
     2324+void __init ar2315_arch_init(void) 
     2325+{ 
    23412326+       ath25_serial_setup(AR2315_UART0, AR2315_MISC_IRQ_UART0, 
    23422327+                          ar2315_apb_frequency()); 
     
    23532338+void ar2315_init_devices(void); 
    23542339+void ar2315_plat_time_init(void); 
    2355 +void ar2315_prom_init(void); 
    23562340+void ar2315_plat_mem_setup(void); 
     2341+void ar2315_arch_init(void); 
    23572342+ 
    23582343+#else 
     
    23702355+} 
    23712356+ 
    2372 +static inline void ar2315_prom_init(void) 
    2373 +{ 
    2374 +} 
    2375 + 
    23762357+static inline void ar2315_plat_mem_setup(void) 
     2358+{ 
     2359+} 
     2360+ 
     2361+static inline void ar2315_arch_init(void) 
    23772362+{ 
    23782363+} 
     
    23922377+void ar5312_init_devices(void); 
    23932378+void ar5312_plat_time_init(void); 
    2394 +void ar5312_prom_init(void); 
    23952379+void ar5312_plat_mem_setup(void); 
     2380+void ar5312_arch_init(void); 
    23962381+ 
    23972382+#else 
     
    24092394+} 
    24102395+ 
    2411 +static inline void ar5312_prom_init(void) 
    2412 +{ 
    2413 +} 
    2414 + 
    24152396+static inline void ar5312_plat_mem_setup(void) 
     2397+{ 
     2398+} 
     2399+ 
     2400+static inline void ar5312_arch_init(void) 
    24162401+{ 
    24172402+} 
     
    25052490--- /dev/null 
    25062491+++ b/arch/mips/ath25/devices.c 
    2507 @@ -0,0 +1,180 @@ 
     2492@@ -0,0 +1,192 @@ 
    25082493+#include <linux/kernel.h> 
    25092494+#include <linux/init.h> 
     
    26862671+ 
    26872672+device_initcall(ath25_register_devices); 
     2673+ 
     2674+static int __init ath25_arch_init(void) 
     2675+{ 
     2676+       if (is_ar5312()) 
     2677+               ar5312_arch_init(); 
     2678+       else 
     2679+               ar2315_arch_init(); 
     2680+ 
     2681+       return 0; 
     2682+} 
     2683+ 
     2684+arch_initcall(ath25_arch_init); 
  • trunk/target/linux/atheros/patches-3.18/105-ar2315_pci.patch

    r44714 r44715  
    383383                do_IRQ(AR2315_IRQ_MISC_INTRS); 
    384384        else if (pending & CAUSEF_IP7) 
    385 @@ -428,3 +432,18 @@ void __init ar2315_plat_mem_setup(void) 
     385@@ -427,4 +431,10 @@ void __init ar2315_arch_init(void) 
     386 { 
    386387        ath25_serial_setup(AR2315_UART0, AR2315_MISC_IRQ_UART0, 
    387388                           ar2315_apb_frequency()); 
     389+ 
     390+#ifdef CONFIG_PCI_AR2315 
     391+       if (ath25_soc == ATH25_SOC_AR2315) { 
     392+               platform_device_register_simple("ar2315-pci", -1, NULL, 0); 
     393+       } 
     394+#endif 
    388395 } 
    389 + 
    390 +#ifdef CONFIG_PCI_AR2315 
    391 +static int __init ar2315_pci_init(void) 
    392 +{ 
    393 +       struct platform_device *pdev; 
    394 + 
    395 +       if (!is_ar2315() || ath25_soc != ATH25_SOC_AR2315) 
    396 +               return -ENODEV; 
    397 + 
    398 +       pdev = platform_device_register_simple("ar2315-pci", -1, NULL, 0); 
    399 + 
    400 +       return pdev ? 0 : -ENODEV; 
    401 +} 
    402 +arch_initcall(ar2315_pci_init); 
    403 +#endif 
Note: See TracChangeset for help on using the changeset viewer.