diff mbox

[U-Boot,12/13] lcd: dt: extract simplefb support

Message ID 1422530505-19054-13-git-send-email-nikita@compulab.co.il
State Superseded
Delegated to: Anatolij Gustschin
Headers show

Commit Message

Nikita Kiryanov Jan. 29, 2015, 11:21 a.m. UTC
We now have api functions that can support compiling simplefb code as its own
module. Since this code is not part of the display functionality, extract it
to its own file.

Raspberry Pi config file is updated to compile the new file.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Simon Glass <sjg@chromium.org>
Cc: Anatolij Gustschin <agust@denx.de>
Cc: Stephen Warren <swarren@wwwdotorg.org>
---
 board/raspberrypi/rpi/rpi.c |  1 +
 common/Makefile             |  1 +
 common/lcd.c                | 50 --------------------------------------
 common/lcd_simplefb.c       | 59 +++++++++++++++++++++++++++++++++++++++++++++
 include/fdt_simplefb.h      | 14 +++++++++++
 include/lcd.h               |  3 ---
 6 files changed, 75 insertions(+), 53 deletions(-)
 create mode 100644 common/lcd_simplefb.c
 create mode 100644 include/fdt_simplefb.h

Comments

Stephen Warren Jan. 29, 2015, 5:14 p.m. UTC | #1
On 01/29/2015 04:21 AM, Nikita Kiryanov wrote:
> We now have api functions that can support compiling simplefb code as its own
> module. Since this code is not part of the display functionality, extract it
> to its own file.
>
> Raspberry Pi config file is updated to compile the new file.

I don't see any config file updates. I think one isn't needed, since the 
config file must already have CONFIG_LCD_DT_SIMPLEFB enabled, since the 
existing code is under that ifdef.

Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Simon Glass Jan. 31, 2015, 12:25 a.m. UTC | #2
On 29 January 2015 at 04:21, Nikita Kiryanov <nikita@compulab.co.il> wrote:
> We now have api functions that can support compiling simplefb code as its own
> module. Since this code is not part of the display functionality, extract it
> to its own file.
>
> Raspberry Pi config file is updated to compile the new file.
>
> Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Anatolij Gustschin <agust@denx.de>
> Cc: Stephen Warren <swarren@wwwdotorg.org>

Reviewed-by: Simon Glass <sjg@chromium.org>

Could even go in fdtdec.c if you like.

> ---
>  board/raspberrypi/rpi/rpi.c |  1 +
>  common/Makefile             |  1 +
>  common/lcd.c                | 50 --------------------------------------
>  common/lcd_simplefb.c       | 59 +++++++++++++++++++++++++++++++++++++++++++++
>  include/fdt_simplefb.h      | 14 +++++++++++
>  include/lcd.h               |  3 ---
>  6 files changed, 75 insertions(+), 53 deletions(-)
>  create mode 100644 common/lcd_simplefb.c
>  create mode 100644 include/fdt_simplefb.h
Nikita Kiryanov Feb. 1, 2015, 1:56 p.m. UTC | #3
Hi Simon,

On 01/31/2015 02:25 AM, Simon Glass wrote:
> On 29 January 2015 at 04:21, Nikita Kiryanov <nikita@compulab.co.il> wrote:
>> We now have api functions that can support compiling simplefb code as its own
>> module. Since this code is not part of the display functionality, extract it
>> to its own file.
>>
>> Raspberry Pi config file is updated to compile the new file.
>>
>> Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
>> Cc: Simon Glass <sjg@chromium.org>
>> Cc: Anatolij Gustschin <agust@denx.de>
>> Cc: Stephen Warren <swarren@wwwdotorg.org>
>
> Reviewed-by: Simon Glass <sjg@chromium.org>
>
> Could even go in fdtdec.c if you like.

Hmm... I'm a little torn, but in the long term I think it's better to keep
subsystem-specific fdt code in separate files, because otherwise fdtdec.c will
eventually grow to enormous proportions.

>
>> ---
>>   board/raspberrypi/rpi/rpi.c |  1 +
>>   common/Makefile             |  1 +
>>   common/lcd.c                | 50 --------------------------------------
>>   common/lcd_simplefb.c       | 59 +++++++++++++++++++++++++++++++++++++++++++++
>>   include/fdt_simplefb.h      | 14 +++++++++++
>>   include/lcd.h               |  3 ---
>>   6 files changed, 75 insertions(+), 53 deletions(-)
>>   create mode 100644 common/lcd_simplefb.c
>>   create mode 100644 include/fdt_simplefb.h
Nikita Kiryanov Feb. 1, 2015, 1:58 p.m. UTC | #4
Hi Stephen,

On 01/29/2015 07:14 PM, Stephen Warren wrote:
> On 01/29/2015 04:21 AM, Nikita Kiryanov wrote:
>> We now have api functions that can support compiling simplefb code as its own
>> module. Since this code is not part of the display functionality, extract it
>> to its own file.
>>
>> Raspberry Pi config file is updated to compile the new file.
>
> I don't see any config file updates. I think one isn't needed, since the config file must already have CONFIG_LCD_DT_SIMPLEFB enabled, since the existing code is under that ifdef.

Yes that was a poor choice of words on my part. Should have been something like "...is updated to accommodate the changes". I'll fix it in a V2.

>
> Acked-by: Stephen Warren <swarren@wwwdotorg.org>
>
diff mbox

Patch

diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
index c18271f..948078b 100644
--- a/board/raspberrypi/rpi/rpi.c
+++ b/board/raspberrypi/rpi/rpi.c
@@ -18,6 +18,7 @@ 
 #include <config.h>
 #include <dm.h>
 #include <fdt_support.h>
+#include <fdt_simplefb.h>
 #include <lcd.h>
 #include <mmc.h>
 #include <asm/gpio.h>
diff --git a/common/Makefile b/common/Makefile
index 94554f2..24df0f7 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -197,6 +197,7 @@  obj-$(CONFIG_I2C_EDID) += edid.o
 obj-$(CONFIG_KALLSYMS) += kallsyms.o
 obj-y += splash.o
 obj-$(CONFIG_LCD) += lcd.o lcd_console.o
+obj-$(CONFIG_LCD_DT_SIMPLEFB) += lcd_simplefb.o
 obj-$(CONFIG_LYNXKDI) += lynxkdi.o
 obj-$(CONFIG_MENU) += menu.o
 obj-$(CONFIG_MODEM_SUPPORT) += modem.o
diff --git a/common/lcd.c b/common/lcd.c
index 2dce45c..d0c0aff 100644
--- a/common/lcd.c
+++ b/common/lcd.c
@@ -20,13 +20,8 @@ 
 #include <splash.h>
 #include <asm/io.h>
 #include <asm/unaligned.h>
-#include <fdt_support.h>
 #include <video_font.h>
 
-#if defined(CONFIG_LCD_DT_SIMPLEFB)
-#include <libfdt.h>
-#endif
-
 #ifdef CONFIG_LCD_LOGO
 #include <bmp_logo.h>
 #include <bmp_logo_data.h>
@@ -777,48 +772,3 @@  int lcd_get_pixel_height(void)
 {
 	return panel_info.vl_row;
 }
-
-#if defined(CONFIG_LCD_DT_SIMPLEFB)
-static int lcd_dt_simplefb_configure_node(void *blob, int off)
-{
-#if LCD_BPP == LCD_COLOR16
-	return fdt_setup_simplefb_node(blob, off, gd->fb_base,
-				       panel_info.vl_col, panel_info.vl_row,
-				       panel_info.vl_col * 2, "r5g6b5");
-#else
-	return -1;
-#endif
-}
-
-int lcd_dt_simplefb_add_node(void *blob)
-{
-	static const char compat[] = "simple-framebuffer";
-	static const char disabled[] = "disabled";
-	int off, ret;
-
-	off = fdt_add_subnode(blob, 0, "framebuffer");
-	if (off < 0)
-		return -1;
-
-	ret = fdt_setprop(blob, off, "status", disabled, sizeof(disabled));
-	if (ret < 0)
-		return -1;
-
-	ret = fdt_setprop(blob, off, "compatible", compat, sizeof(compat));
-	if (ret < 0)
-		return -1;
-
-	return lcd_dt_simplefb_configure_node(blob, off);
-}
-
-int lcd_dt_simplefb_enable_existing_node(void *blob)
-{
-	int off;
-
-	off = fdt_node_offset_by_compatible(blob, -1, "simple-framebuffer");
-	if (off < 0)
-		return -1;
-
-	return lcd_dt_simplefb_configure_node(blob, off);
-}
-#endif
diff --git a/common/lcd_simplefb.c b/common/lcd_simplefb.c
new file mode 100644
index 0000000..8db2add
--- /dev/null
+++ b/common/lcd_simplefb.c
@@ -0,0 +1,59 @@ 
+/*
+ * Simplefb device tree support
+ *
+ * (C) Copyright 2015
+ * Stephen Warren <swarren@wwwdotorg.org>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <lcd.h>
+#include <fdt_support.h>
+#include <libfdt.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+static int lcd_dt_simplefb_configure_node(void *blob, int off)
+{
+#if LCD_BPP == LCD_COLOR16
+	int vl_col = lcd_get_pixel_width();
+	int vl_row = lcd_get_pixel_height();
+	return fdt_setup_simplefb_node(blob, off, gd->fb_base, vl_col, vl_row,
+				       vl_col * 2, "r5g6b5");
+#else
+	return -1;
+#endif
+}
+
+int lcd_dt_simplefb_add_node(void *blob)
+{
+	static const char compat[] = "simple-framebuffer";
+	static const char disabled[] = "disabled";
+	int off, ret;
+
+	off = fdt_add_subnode(blob, 0, "framebuffer");
+	if (off < 0)
+		return -1;
+
+	ret = fdt_setprop(blob, off, "status", disabled, sizeof(disabled));
+	if (ret < 0)
+		return -1;
+
+	ret = fdt_setprop(blob, off, "compatible", compat, sizeof(compat));
+	if (ret < 0)
+		return -1;
+
+	return lcd_dt_simplefb_configure_node(blob, off);
+}
+
+int lcd_dt_simplefb_enable_existing_node(void *blob)
+{
+	int off;
+
+	off = fdt_node_offset_by_compatible(blob, -1, "simple-framebuffer");
+	if (off < 0)
+		return -1;
+
+	return lcd_dt_simplefb_configure_node(blob, off);
+}
diff --git a/include/fdt_simplefb.h b/include/fdt_simplefb.h
new file mode 100644
index 0000000..8c89a19
--- /dev/null
+++ b/include/fdt_simplefb.h
@@ -0,0 +1,14 @@ 
+/*
+ * Simplefb device tree support
+ *
+ * (C) Copyright 2015
+ * Stephen Warren <swarren@wwwdotorg.org>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#ifndef _FDT_SIMPLEFB_H_
+#define _FDT_SIMPLEFB_H_
+int lcd_dt_simplefb_add_node(void *blob);
+int lcd_dt_simplefb_enable_existing_node(void *blob);
+#endif
diff --git a/include/lcd.h b/include/lcd.h
index 5f4d739..9d1b2d8 100644
--- a/include/lcd.h
+++ b/include/lcd.h
@@ -130,9 +130,6 @@  void lcd_show_board_info(void);
 /* Return the size of the LCD frame buffer, and the line length */
 int lcd_get_size(int *line_length);
 
-int lcd_dt_simplefb_add_node(void *blob);
-int lcd_dt_simplefb_enable_existing_node(void *blob);
-
 /* Update the LCD / flush the cache */
 void lcd_sync(void);