Browse Source

lcd: remove unaligned access in lcd_dt_simplefb_configure_node()

Some ARM compilers may emit code that makes unaligned accesses when
faced with constructs such as:

const char format[] = "r5g6b5";

Make this data static since it doesn't chagne; the compiler will simply
place it into the .rodata section directly, and avoid any unaligned run-
time initialization.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Stephen Warren 12 years ago
parent
commit
5af7d0f090
1 changed files with 3 additions and 3 deletions
  1. 3 3
      common/lcd.c

+ 3 - 3
common/lcd.c

@@ -1193,7 +1193,7 @@ static int lcd_dt_simplefb_configure_node(void *blob, int off)
 	u32 stride;
 	u32 stride;
 	fdt32_t cells[2];
 	fdt32_t cells[2];
 	int ret;
 	int ret;
-	const char format[] =
+	static const char format[] =
 #if LCD_BPP == LCD_COLOR16
 #if LCD_BPP == LCD_COLOR16
 		"r5g6b5";
 		"r5g6b5";
 #else
 #else
@@ -1239,8 +1239,8 @@ static int lcd_dt_simplefb_configure_node(void *blob, int off)
 
 
 int lcd_dt_simplefb_add_node(void *blob)
 int lcd_dt_simplefb_add_node(void *blob)
 {
 {
-	const char compat[] = "simple-framebuffer";
-	const char disabled[] = "disabled";
+	static const char compat[] = "simple-framebuffer";
+	static const char disabled[] = "disabled";
 	int off, ret;
 	int off, ret;
 
 
 	off = fdt_add_subnode(blob, 0, "framebuffer");
 	off = fdt_add_subnode(blob, 0, "framebuffer");