diff options
author | Yoichi Yuasa <yuasa@linux-mips.org> | 2009-12-18 07:38:37 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2010-01-12 12:19:33 -0500 |
commit | 7e326d687d182e45447c24daccaa9b60bae130d5 (patch) | |
tree | 60958ec62e35aacc5471503a4ef3d58c6ccb93f6 /arch | |
parent | 0eb99a9354cfe73dfa76ef81c917f7655b1b306c (diff) |
MIPS: PowerTV: simplify prom_init_cmdline() and merge into prom_init()
Signed-off-by: Yoichi Yuasa <yuasa@linux-mips.org>
Patchwork: http://patchwork.linux-mips.org/patch/801/
Reviewed-by: David VomLehn <dvomlehn@cisco.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/powertv/Makefile | 2 | ||||
-rw-r--r-- | arch/mips/powertv/cmdline.c | 47 | ||||
-rw-r--r-- | arch/mips/powertv/init.c | 15 | ||||
-rw-r--r-- | arch/mips/powertv/init.h | 2 |
4 files changed, 10 insertions, 56 deletions
diff --git a/arch/mips/powertv/Makefile b/arch/mips/powertv/Makefile index 2c516718affe..0a0d73c0564f 100644 --- a/arch/mips/powertv/Makefile +++ b/arch/mips/powertv/Makefile | |||
@@ -23,6 +23,6 @@ | |||
23 | # under Linux. | 23 | # under Linux. |
24 | # | 24 | # |
25 | 25 | ||
26 | obj-y += cmdline.o init.o memory.o reset.o time.o powertv_setup.o asic/ pci/ | 26 | obj-y += init.o memory.o reset.o time.o powertv_setup.o asic/ pci/ |
27 | 27 | ||
28 | EXTRA_CFLAGS += -Wall -Werror | 28 | EXTRA_CFLAGS += -Wall -Werror |
diff --git a/arch/mips/powertv/cmdline.c b/arch/mips/powertv/cmdline.c deleted file mode 100644 index ee7ab4723067..000000000000 --- a/arch/mips/powertv/cmdline.c +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | /* | ||
2 | * Carsten Langgaard, carstenl@mips.com | ||
3 | * Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved. | ||
4 | * Portions copyright (C) 2009 Cisco Systems, Inc. | ||
5 | * | ||
6 | * This program is free software; you can distribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License (Version 2) as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
11 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
12 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
13 | * for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU General Public License along | ||
16 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
17 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
18 | * | ||
19 | * Kernel command line creation using the prom monitor (YAMON) argc/argv. | ||
20 | */ | ||
21 | #include <linux/init.h> | ||
22 | #include <linux/string.h> | ||
23 | |||
24 | #include <asm/bootinfo.h> | ||
25 | |||
26 | #include "init.h" | ||
27 | |||
28 | /* | ||
29 | * YAMON (32-bit PROM) pass arguments and environment as 32-bit pointer. | ||
30 | * This macro take care of sign extension. | ||
31 | */ | ||
32 | #define prom_argv(index) ((char *)(long)_prom_argv[(index)]) | ||
33 | |||
34 | void __init prom_init_cmdline(void) | ||
35 | { | ||
36 | int len; | ||
37 | |||
38 | if (prom_argc != 1) | ||
39 | return; | ||
40 | |||
41 | len = strlen(arcs_cmdline); | ||
42 | |||
43 | arcs_cmdline[len] = ' '; | ||
44 | |||
45 | strlcpy(arcs_cmdline + len + 1, (char *)_prom_argv, | ||
46 | COMMAND_LINE_SIZE - len - 1); | ||
47 | } | ||
diff --git a/arch/mips/powertv/init.c b/arch/mips/powertv/init.c index 5f4e4c304e48..de0e46ab0957 100644 --- a/arch/mips/powertv/init.c +++ b/arch/mips/powertv/init.c | |||
@@ -34,10 +34,7 @@ | |||
34 | #include <asm/mips-boards/generic.h> | 34 | #include <asm/mips-boards/generic.h> |
35 | #include <asm/mach-powertv/asic.h> | 35 | #include <asm/mach-powertv/asic.h> |
36 | 36 | ||
37 | #include "init.h" | 37 | static int *_prom_envp; |
38 | |||
39 | int prom_argc; | ||
40 | int *_prom_argv, *_prom_envp; | ||
41 | unsigned long _prom_memsize; | 38 | unsigned long _prom_memsize; |
42 | 39 | ||
43 | /* | 40 | /* |
@@ -109,8 +106,11 @@ static void __init mips_ejtag_setup(void) | |||
109 | 106 | ||
110 | void __init prom_init(void) | 107 | void __init prom_init(void) |
111 | { | 108 | { |
109 | int prom_argc; | ||
110 | char *prom_argv; | ||
111 | |||
112 | prom_argc = fw_arg0; | 112 | prom_argc = fw_arg0; |
113 | _prom_argv = (int *) fw_arg1; | 113 | prom_argv = (char *) fw_arg1; |
114 | _prom_envp = (int *) fw_arg2; | 114 | _prom_envp = (int *) fw_arg2; |
115 | _prom_memsize = (unsigned long) fw_arg3; | 115 | _prom_memsize = (unsigned long) fw_arg3; |
116 | 116 | ||
@@ -118,7 +118,10 @@ void __init prom_init(void) | |||
118 | board_ejtag_handler_setup = mips_ejtag_setup; | 118 | board_ejtag_handler_setup = mips_ejtag_setup; |
119 | 119 | ||
120 | pr_info("\nLINUX started...\n"); | 120 | pr_info("\nLINUX started...\n"); |
121 | prom_init_cmdline(); | 121 | |
122 | if (prom_argc == 1) | ||
123 | strlcat(arcs_cmdline, prom_argv, COMMAND_LINE_SIZE); | ||
124 | |||
122 | configure_platform(); | 125 | configure_platform(); |
123 | prom_meminit(); | 126 | prom_meminit(); |
124 | 127 | ||
diff --git a/arch/mips/powertv/init.h b/arch/mips/powertv/init.h index 7af6bf25008c..b194c34ca966 100644 --- a/arch/mips/powertv/init.h +++ b/arch/mips/powertv/init.h | |||
@@ -22,7 +22,5 @@ | |||
22 | 22 | ||
23 | #ifndef _POWERTV_INIT_H | 23 | #ifndef _POWERTV_INIT_H |
24 | #define _POWERTV_INIT_H | 24 | #define _POWERTV_INIT_H |
25 | extern int prom_argc; | ||
26 | extern int *_prom_argv; | ||
27 | extern unsigned long _prom_memsize; | 25 | extern unsigned long _prom_memsize; |
28 | #endif | 26 | #endif |