lkml.org 
[lkml]   [2006]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[-mm patch] AVR32: Use parse_early_param
Get rid of the AVR32-specific parse_cmdline_early function and call
parse_early_param instead. Parsing of the "fbmem=" parameter has been
implemented using early_param, allowing it to be greatly simplified.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
---
arch/avr32/kernel/setup.c | 60 ++++++++++++++--------------------------------
1 file changed, 19 insertions(+), 41 deletions(-)

Index: linux-2.6.18-rc5-mm1/arch/avr32/kernel/setup.c
===================================================================
--- linux-2.6.18-rc5-mm1.orig/arch/avr32/kernel/setup.c 2006-09-07 09:40:48.000000000 +0200
+++ linux-2.6.18-rc5-mm1/arch/avr32/kernel/setup.c 2006-09-07 10:05:07.000000000 +0200
@@ -90,48 +90,24 @@ static struct resource mem_res[] = {
static unsigned long __initdata fbmem_start;
static unsigned long __initdata fbmem_size;

-/* --- */
-
-static void __init parse_cmdline_early(char **cmdline_p)
+/*
+ * "fbmem=xxx[kKmM]" allocates the specified amount of boot memory for
+ * use as framebuffer.
+ *
+ * "fbmem=xxx[kKmM]@yyy[kKmM]" defines a memory region of size xxx and
+ * starting at yyy to be reserved for use as framebuffer.
+ *
+ * The kernel won't verify that the memory region starting at yyy
+ * actually contains usable RAM.
+ */
+static int __init early_parse_fbmem(char *p)
{
- char *to = command_line, *from = saved_command_line;
- int len = 0;
- char c = ' ';
-
- for (;;) {
- if (c != ' ')
- goto next_char;
-
- /*
- * "fbmem=xxx[kKmM]" allocates the specified amount of
- * boot memory for use as framebuffer.
- * "fbmem=xxx[kKmM]@yyy" defines a memory region of
- * size xxx and starting at yyy to be reserved for use
- * as framebuffer.
- *
- * The kernel won't verify that the memory region
- * starting at yyy actually contains usable RAM.
- */
- if (!memcmp(from, "fbmem=", 6)) {
- if (to != command_line)
- to--;
- fbmem_size = memparse(from + 6, &from);
- if (*from == '@')
- fbmem_start = memparse(from + 1, &from);
- }
-
- next_char:
- c = *(from++);
- if (c == '\0')
- break;
- if (COMMAND_LINE_SIZE <= ++len)
- break;
- *(to++) = c;
- }
-
- *to = '\0';
- *cmdline_p = command_line;
+ fbmem_size = memparse(p, &p);
+ if (*p == '@')
+ fbmem_start = memparse(p, &p);
+ return 0;
}
+early_param("fbmem", early_parse_fbmem);

static inline void __init resource_init(void)
{
@@ -341,7 +317,9 @@ void __init setup_arch (char **cmdline_p
init_mm.end_data = (unsigned long) &_edata;
init_mm.brk = (unsigned long) &_end;

- parse_cmdline_early(cmdline_p);
+ strlcpy(command_line, saved_command_line, COMMAND_LINE_SIZE);
+ *cmdline_p = command_line;
+ parse_early_param();

setup_bootmem();

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2006-09-13 10:13    [W:0.021 / U:0.468 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site