Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

MIPS: alchemy: Share prom_init implementation

All boards have the same prom_init() function. Move it to common code and
delete the duplicates.

Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>

+20 -69
-17
arch/mips/alchemy/board-gpr.c
··· 31 31 return "GPR"; 32 32 } 33 33 34 - void __init prom_init(void) 35 - { 36 - unsigned char *memsize_str; 37 - unsigned long memsize; 38 - 39 - prom_argc = fw_arg0; 40 - prom_argv = (char **)fw_arg1; 41 - prom_envp = (char **)fw_arg2; 42 - 43 - prom_init_cmdline(); 44 - 45 - memsize_str = prom_getenv("memsize"); 46 - if (!memsize_str || kstrtoul(memsize_str, 0, &memsize)) 47 - memsize = 0x04000000; 48 - add_memory_region(0, memsize, BOOT_MEM_RAM); 49 - } 50 - 51 34 void prom_putchar(char c) 52 35 { 53 36 alchemy_uart_putchar(AU1000_UART0_PHYS_ADDR, c);
-17
arch/mips/alchemy/board-mtx1.c
··· 30 30 return "MTX-1"; 31 31 } 32 32 33 - void __init prom_init(void) 34 - { 35 - unsigned char *memsize_str; 36 - unsigned long memsize; 37 - 38 - prom_argc = fw_arg0; 39 - prom_argv = (char **)fw_arg1; 40 - prom_envp = (char **)fw_arg2; 41 - 42 - prom_init_cmdline(); 43 - 44 - memsize_str = prom_getenv("memsize"); 45 - if (!memsize_str || kstrtoul(memsize_str, 0, &memsize)) 46 - memsize = 0x04000000; 47 - add_memory_region(0, memsize, BOOT_MEM_RAM); 48 - } 49 - 50 33 void prom_putchar(char c) 51 34 { 52 35 alchemy_uart_putchar(AU1000_UART0_PHYS_ADDR, c);
-18
arch/mips/alchemy/board-xxs1500.c
··· 25 25 return "XXS1500"; 26 26 } 27 27 28 - void __init prom_init(void) 29 - { 30 - unsigned char *memsize_str; 31 - unsigned long memsize; 32 - 33 - prom_argc = fw_arg0; 34 - prom_argv = (char **)fw_arg1; 35 - prom_envp = (char **)fw_arg2; 36 - 37 - prom_init_cmdline(); 38 - 39 - memsize_str = prom_getenv("memsize"); 40 - if (!memsize_str || kstrtoul(memsize_str, 0, &memsize)) 41 - memsize = 0x04000000; 42 - 43 - add_memory_region(0, memsize, BOOT_MEM_RAM); 44 - } 45 - 46 28 void prom_putchar(char c) 47 29 { 48 30 alchemy_uart_putchar(AU1000_UART0_PHYS_ADDR, c);
+20
arch/mips/alchemy/common/prom.c
··· 34 34 */ 35 35 36 36 #include <linux/init.h> 37 + #include <linux/kernel.h> 38 + #include <linux/sizes.h> 37 39 #include <linux/string.h> 38 40 39 41 #include <asm/bootinfo.h> ··· 76 74 } 77 75 78 76 return NULL; 77 + } 78 + 79 + void __init prom_init(void) 80 + { 81 + unsigned char *memsize_str; 82 + unsigned long memsize; 83 + 84 + prom_argc = (int)fw_arg0; 85 + prom_argv = (char **)fw_arg1; 86 + prom_envp = (char **)fw_arg2; 87 + 88 + prom_init_cmdline(); 89 + 90 + memsize_str = prom_getenv("memsize"); 91 + if (!memsize_str || kstrtoul(memsize_str, 0, &memsize)) 92 + memsize = SZ_64M; /* minimum memsize is 64MB RAM */ 93 + 94 + add_memory_region(0, memsize, BOOT_MEM_RAM); 79 95 } 80 96 81 97 static inline unsigned char str2hexnum(unsigned char c)
-17
arch/mips/alchemy/devboards/platform.c
··· 20 20 21 21 #include <prom.h> 22 22 23 - void __init prom_init(void) 24 - { 25 - unsigned char *memsize_str; 26 - unsigned long memsize; 27 - 28 - prom_argc = (int)fw_arg0; 29 - prom_argv = (char **)fw_arg1; 30 - prom_envp = (char **)fw_arg2; 31 - 32 - prom_init_cmdline(); 33 - memsize_str = prom_getenv("memsize"); 34 - if (!memsize_str || kstrtoul(memsize_str, 0, &memsize)) 35 - memsize = 64 << 20; /* all devboards have at least 64MB RAM */ 36 - 37 - add_memory_region(0, memsize, BOOT_MEM_RAM); 38 - } 39 - 40 23 void prom_putchar(char c) 41 24 { 42 25 if (alchemy_get_cputype() == ALCHEMY_CPU_AU1300)