Skip to contentSkip to conversation

common.lcd: remove globals and cleanup

PATCH Superseded Jeroen Hofstee 8 participants 33 messages Jan 12, 2013 – Mar 29, 2013

Subsystems (6)
lore
Share & tools
lore
#0 lore raw

cover common.lcd: remove globals and cleanup

As mentioned in http://lists.denx.de/pipermail/u-boot/2013-January/143459.html
there does not seem to be a good reason why the frame buffer driver provide the variables for the lcd internal logic. So lets just remove it. If there is any good reason for a framebuffer driver to "call up" it should do so by a function call and not change the lcd its internal state (and there is actually none doing so at the moment).

This patchset first removes unused drivers and places drivers useing common/lcd.c in drivers/video. Then removes the unneeded globals and thereafter finishes with some cleanups.

This patch goes after http://patchwork.ozlabs.org/patch/209692/
"common/lcd.c: cleanup use of global variables"

Jeroen Hofstee (10):
lcd, amba: remove this frame buffer driver since it is not used lcd, tegra: remove unused cursor functions
lcd, mpc8xx: move the mpc8xx frame buffer driver to drivers/video lcd, pxafb: move the pxafb to drivers/video
common/lcd.c: cleanup use of global variables common/lcd.c: remove global lcd_base
common/lcd: cosmetic: clean up a bit
lcd, fb: cleanup, remove prototypes already in lcd.h and unused code api/api_display: use the getters for console size info common/lcd.c: move the macro's to the c file

 api/api_display.c                |    4 +-
 arch/arm/cpu/pxa/Makefile        |    1 -
 arch/arm/cpu/pxa/pxafb.c         |  650 --------------------------------------
 arch/powerpc/cpu/mpc8xx/Makefile |    1 -
 arch/powerpc/cpu/mpc8xx/lcd.c    |  618 ------------------------------------
 board/mcc200/lcd.c               |   21 +-
 common/lcd.c                     |  117 ++++---
 drivers/video/Makefile           |    3 +-
 drivers/video/amba.c             |   77 -----
 drivers/video/atmel_hlcdfb.c     |    8 -
 drivers/video/atmel_lcdfb.c      |    8 -
 drivers/video/exynos_fb.c        |   14 +-
 drivers/video/mpc8xx_lcd.c       |  564 +++++++++++++++++++++++++++++++++
 drivers/video/pxa_lcd.c          |  609 +++++++++++++++++++++++++++++++++++
 drivers/video/tegra.c            |   64 +---
 include/configs/R360MPI.h        |    1 +
 include/configs/RBC823.h         |    1 +
 include/configs/RPXlite_DW.h     |    1 +
 include/configs/RRvision.h       |    4 +-
 include/configs/TQM823L.h        |    1 +
 include/configs/TQM823M.h        |    1 +
 include/configs/lubbock.h        |    1 +
 include/configs/lwmon.h          |    1 +
 include/configs/palmld.h         |    1 +
 include/configs/palmtc.h         |    1 +
 include/configs/pxa255_idp.h     |    1 +
 include/configs/svm_sc8xx.h      |    1 +
 include/configs/v37.h            |    1 +
 include/configs/zipitz2.h        |    1 +
 include/lcd.h                    |   71 +----
 30 files changed, 1280 insertions(+), 1567 deletions(-)
 delete mode 100644 arch/arm/cpu/pxa/pxafb.c
 delete mode 100644 arch/powerpc/cpu/mpc8xx/lcd.c
 delete mode 100644 drivers/video/amba.c
 create mode 100644 drivers/video/mpc8xx_lcd.c
 create mode 100644 drivers/video/pxa_lcd.c
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH 1/10 lcd, amba: remove this frame buffer driver since it is not used

Since CONFIG_VIDEO_AMBA is not set by any board, it does not seem to be used, so remove it since there is no way to (compile) test it.

cc Alessandro Rubini <[email protected]>
cc Anatolij Gustschin <[email protected]>
---
 drivers/video/Makefile |    1 -
 drivers/video/amba.c   |   77 ------------------------------------------------
 2 files changed, 78 deletions(-)
 delete mode 100644 drivers/video/amba.c
drivers/video/Makefile +0 -1
index 170a358..8ff3958 100644
@@ -39,7 +39,6 @@ COBJS-$(CONFIG_S6E8AX0) += s6e8ax0.o
 COBJS-$(CONFIG_S6E63D6) += s6e63d6.o
 COBJS-$(CONFIG_LD9040) += ld9040.o
 COBJS-$(CONFIG_SED156X) += sed156x.o
-COBJS-$(CONFIG_VIDEO_AMBA) += amba.o
 COBJS-$(CONFIG_VIDEO_COREBOOT) += coreboot_fb.o
 COBJS-$(CONFIG_VIDEO_CT69000) += ct69000.o videomodes.o
 COBJS-$(CONFIG_VIDEO_DA8XX) += da8xx-fb.o videomodes.o
drivers/video/amba.c deleted +0 -77

77 lines not on this page · raw message

Signature · 1 line
1.7.9.5
#2 lore raw

PATCH 1/10 lcd, amba: remove this frame buffer driver since it is not used

Hello.

Quoted 2 lines

Since CONFIG_VIDEO_AMBA is not set by any board, it does not seem to be used, so remove it since there is no way to (compile) test it.

I used the driver on the nhk8815. But actually it looks like the "later patch in this set", that my commit message references, was not merged. I remember I used it in 32-bit mode and had to hack some things to make it work, inluding a fater memcopy as scrolling was very slow.

I don't think I can resurrect my nhk8815 device any soon, and it looks like nobody else is using this logic cell, so I'm fine removing the driver.

/alessandro

#3 lore raw

PATCH 2/10 lcd, tegra: remove unused cursor functions

In reply to Jeroen Hofstee
cc Anatolij Gustschin <[email protected]>
cc Simon Glass <sjg.chromium.org>
---
 drivers/video/tegra.c |   52 -------------------------------------------------
 1 file changed, 52 deletions(-)
drivers/video/tegra.c +0 -52
index 3709d0b..26a96a5 100644
@@ -73,62 +73,10 @@ vidinfo_t panel_info = {
 	.vl_col = -1,
 };
 
-char lcd_cursor_enabled;
-
-ushort lcd_cursor_width;
-ushort lcd_cursor_height;
-
 #ifndef CONFIG_OF_CONTROL
 #error "You must enable CONFIG_OF_CONTROL to get Tegra LCD support"
 #endif
 
-void lcd_cursor_size(ushort width, ushort height)
-{
-	lcd_cursor_width = width;
-	lcd_cursor_height = height;
-}
-
-void lcd_toggle_cursor(void)
-{
-	ushort x, y;
-	uchar *dest;
-	ushort row;
-
-	x = console_col * lcd_cursor_width;
-	y = console_row * lcd_cursor_height;
-	dest = (uchar *)(lcd_base + y * lcd_line_length + x * (1 << LCD_BPP) /
-			8);
-
-	for (row = 0; row < lcd_cursor_height; ++row, dest += lcd_line_length) {
-		ushort *d = (ushort *)dest;
-		ushort color;
-		int i;
-
-		for (i = 0; i < lcd_cursor_width; ++i) {
-			color = *d;
-			color ^= lcd_getfgcolor();
-			*d = color;
-			++d;
-		}
-	}
-}
-
-void lcd_cursor_on(void)
-{
-	lcd_cursor_enabled = 1;
-	lcd_toggle_cursor();
-}
-void lcd_cursor_off(void)
-{
-	lcd_cursor_enabled = 0;
-	lcd_toggle_cursor();
-}
-
-char lcd_is_cursor_enabled(void)
-{
-	return lcd_cursor_enabled;
-}
-
 static void update_panel_size(struct fdt_disp_config *config)
 {
 	panel_info.vl_col = config->width;
Signature · 1 line
1.7.9.5
#4 lore raw

PATCH 2/10 lcd, tegra: remove unused cursor functions

I wrote down your mail address wrongly here. I will fix it in v2, awaiting other comments.

Quoted 74 lines · Jeroen Hofstee
cc Anatolij Gustschin <[email protected]>
cc Simon Glass <sjg.chromium.org>
---
  drivers/video/tegra.c |   52 -------------------------------------------------
  1 file changed, 52 deletions(-)
drivers/video/tegra.c +0 -52
index 3709d0b..26a96a5 100644
@@ -73,62 +73,10 @@ vidinfo_t panel_info = {
  	.vl_col = -1,
  };
 
-char lcd_cursor_enabled;
-
-ushort lcd_cursor_width;
-ushort lcd_cursor_height;
-
  #ifndef CONFIG_OF_CONTROL
  #error "You must enable CONFIG_OF_CONTROL to get Tegra LCD support"
  #endif
 
-void lcd_cursor_size(ushort width, ushort height)
-{
-	lcd_cursor_width = width;
-	lcd_cursor_height = height;
-}
-
-void lcd_toggle_cursor(void)
-{
-	ushort x, y;
-	uchar *dest;
-	ushort row;
-
-	x = console_col * lcd_cursor_width;
-	y = console_row * lcd_cursor_height;
-	dest = (uchar *)(lcd_base + y * lcd_line_length + x * (1 << LCD_BPP) /
-			8);
-
-	for (row = 0; row < lcd_cursor_height; ++row, dest += lcd_line_length) {
-		ushort *d = (ushort *)dest;
-		ushort color;
-		int i;
-
-		for (i = 0; i < lcd_cursor_width; ++i) {
-			color = *d;
-			color ^= lcd_getfgcolor();
-			*d = color;
-			++d;
-		}
-	}
-}
-
-void lcd_cursor_on(void)
-{
-	lcd_cursor_enabled = 1;
-	lcd_toggle_cursor();
-}
-void lcd_cursor_off(void)
-{
-	lcd_cursor_enabled = 0;
-	lcd_toggle_cursor();
-}
-
-char lcd_is_cursor_enabled(void)
-{
-	return lcd_cursor_enabled;
-}
-
  static void update_panel_size(struct fdt_disp_config *config)
  {
  	panel_info.vl_col = config->width;
#5 lore raw

PATCH 2/10 lcd, tegra: remove unused cursor functions

In reply to Jeroen Hofstee

+Tom

Quoted 3 lines · Jeroen Hofstee
cc Anatolij Gustschin <[email protected]>
cc Simon Glass <sjg.chromium.org>
Quoted 78 lines
---
 drivers/video/tegra.c |   52 -------------------------------------------------
 1 file changed, 52 deletions(-)
drivers/video/tegra.c +0 -53
index 3709d0b..26a96a5 100644
@@ -73,62 +73,10 @@ vidinfo_t panel_info = {
        .vl_col = -1,
 };
 
-char lcd_cursor_enabled;
-
-ushort lcd_cursor_width;
-ushort lcd_cursor_height;
-
 #ifndef CONFIG_OF_CONTROL
 #error "You must enable CONFIG_OF_CONTROL to get Tegra LCD support"
 #endif
 
-void lcd_cursor_size(ushort width, ushort height)
-{
-       lcd_cursor_width = width;
-       lcd_cursor_height = height;
-}
-
-void lcd_toggle_cursor(void)
-{
-       ushort x, y;
-       uchar *dest;
-       ushort row;
-
-       x = console_col * lcd_cursor_width;
-       y = console_row * lcd_cursor_height;
-       dest = (uchar *)(lcd_base + y * lcd_line_length + x * (1 << LCD_BPP) /
-                       8);
-
-       for (row = 0; row < lcd_cursor_height; ++row, dest += lcd_line_length) {
-               ushort *d = (ushort *)dest;
-               ushort color;
-               int i;
-
-               for (i = 0; i < lcd_cursor_width; ++i) {
-                       color = *d;
-                       color ^= lcd_getfgcolor();
-                       *d = color;
-                       ++d;
-               }
-       }
-}
-
-void lcd_cursor_on(void)
-{
-       lcd_cursor_enabled = 1;
-       lcd_toggle_cursor();
-}
-void lcd_cursor_off(void)
-{
-       lcd_cursor_enabled = 0;
-       lcd_toggle_cursor();
-}
-
-char lcd_is_cursor_enabled(void)
-{
-       return lcd_cursor_enabled;
-}
-
 static void update_panel_size(struct fdt_disp_config *config)
 {
        panel_info.vl_col = config->width;
--

1.7.9.5

_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

#6 lore raw

PATCH 2/10 lcd, tegra: remove unused cursor functions

Jeroen,

How will this all go in? Do you expect Anatolij to take it in via the main repo (u-boot.git/master)?

LGTM, BTW

Tom

Quoted 91 lines

-----Original Message-----
From: sjg at google.com [mailto:sjg at google.com] On Behalf Of Simon Glass
Sent: Friday, January 25, 2013 1:38 PM
To: Jeroen Hofstee
Cc: u-boot at lists.denx.de; Tom Warren
Subject: Re: [U-Boot] [PATCH 02/10] lcd, tegra: remove unused cursor functions

+Tom

Quoted 3 lines · Jeroen Hofstee
cc Anatolij Gustschin <[email protected]>
cc Simon Glass <sjg.chromium.org>
Quoted 28 lines
---
 drivers/video/tegra.c |   52 -------------------------------------------------
 1 file changed, 52 deletions(-)
drivers/video/tegra.c index renamed from drivers/video/tegra.c +0 -0

3709d0b..26a96a5 100644

drivers/video/tegra.c +0 -12
@@ -73,62 +73,10 @@ vidinfo_t panel_info = {
        .vl_col = -1,
 };
 
-char lcd_cursor_enabled;
-
-ushort lcd_cursor_width;
-ushort lcd_cursor_height;
-
 #ifndef CONFIG_OF_CONTROL
 #error "You must enable CONFIG_OF_CONTROL to get Tegra LCD support"
 #endif
 
-void lcd_cursor_size(ushort width, ushort height) -{
-       lcd_cursor_width = width;
-       lcd_cursor_height = height;
-}
-
-void lcd_toggle_cursor(void)
-{

drivers/video/tegra.c vidinfo_t panel_info = { · line 101

Quoted 10 lines
drivers/video/tegra.c +0 -10
-       ushort x, y;
-       uchar *dest;
-       ushort row;
-
-       x = console_col * lcd_cursor_width;
-       y = console_row * lcd_cursor_height;
-       dest = (uchar *)(lcd_base + y * lcd_line_length + x * (1 << LCD_BPP) /
-                       8);
-
-       for (row = 0; row < lcd_cursor_height; ++row, dest += lcd_line_length)

{

Quoted 34 lines
drivers/video/tegra.c +0 -30
-               ushort *d = (ushort *)dest;
-               ushort color;
-               int i;
-
-               for (i = 0; i < lcd_cursor_width; ++i) {
-                       color = *d;
-                       color ^= lcd_getfgcolor();
-                       *d = color;
-                       ++d;
-               }
-       }
-}
-
-void lcd_cursor_on(void)
-{
-       lcd_cursor_enabled = 1;
-       lcd_toggle_cursor();
-}
-void lcd_cursor_off(void)
-{
-       lcd_cursor_enabled = 0;
-       lcd_toggle_cursor();
-}
-
-char lcd_is_cursor_enabled(void)
-{
-       return lcd_cursor_enabled;
-}
-
 static void update_panel_size(struct fdt_disp_config *config)  {
        panel_info.vl_col = config->width;
--

1.7.9.5

Quoted 4 lines
Quoted 4 lines

_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

--
nvpublic

#7 lore raw

PATCH 2/10 lcd, tegra: remove unused cursor functions

Hello Tom,

Quoted 3 lines · Tom Warren

Jeroen,

How will this all go in? Do you expect Anatolij to take it in via the main repo (u-boot.git/master)?

I am not sure I understand exactly what you mean, but yes there are some conflicts awaiting. 2 pending drivers and another lcd cleanup patch. And yes I think it is easier to rebase those then to rebase this and Wolfgang's patch (if that is what you're asking), since the variables are deleted step by step. So simply not adding them is easier then getting rid of them again. The other lcd cleanup is smaller. I don't know how much trouble the board config changes will cause.

To not break the pending drivers a new version of
http://patchwork.ozlabs.org/patch/212378/ is needed though, since it does not apply after this patch set. Since that patch contains 2 lines, that should be easy (or can be manually merged by Anatolij).

But it is up to Anatolij, how this actually goes in and to which branch.

Regards,
Jeroen

#8 lore raw

PATCH 2/10 lcd, tegra: remove unused cursor functions

Jeroen,

Quoted 23 lines

-----Original Message-----
From: Jeroen Hofstee [mailto:jeroen at myspectrum.nl]
Sent: Saturday, January 26, 2013 9:20 AM
To: Tom Warren
Cc: Simon Glass; u-boot at lists.denx.de; Anatolij Gustschin
Subject: Re: [U-Boot] [PATCH 02/10] lcd, tegra: remove unused cursor functions

Hello Tom,

Quoted 3 lines · Tom Warren

Jeroen,

How will this all go in? Do you expect Anatolij to take it in via the main repo

(u-boot.git/master)?
I am not sure I understand exactly what you mean, but yes there are some conflicts awaiting. 2 pending drivers and another lcd cleanup patch. And yes I think it is easier to rebase those then to rebase this and Wolfgang's patch (if that is what you're asking), since the variables are deleted step by step. So simply not adding them is easier then getting rid of them again. The other lcd cleanup is smaller. I don't know how much trouble the board config changes will cause.

Quoted 6 lines

To not break the pending drivers a new version of
http://patchwork.ozlabs.org/patch/212378/ is needed though, since it does not apply after this patch set. Since that patch contains 2 lines, that should be easy (or can be manually merged by Anatolij).

But it is up to Anatolij, how this actually goes in and to which branch.

That's all I was asking - if I would be responsible for the tegra portion of the patch, or if it would all go in to TOT master.

I'll take your response to mean that I have nothing to do here for the u-boot-tegra repo.

Thanks

Quoted 3 lines

Regards,
Jeroen

--
nvpublic

#9 lore raw

PATCH 3/10 lcd, mpc8xx: move the mpc8xx frame buffer driver to drivers/video

In reply to Jeroen Hofstee

Since the lcd code was compiled unconditionally in arch also add CONFIG_MPC8XX_LCD to the boards using this driver.

cc Anatolij Gustschin <[email protected]>
cc John Zhan <[email protected]>
cc Wolfgang Denk <[email protected]>
---
 arch/powerpc/cpu/mpc8xx/Makefile |    1 -
 arch/powerpc/cpu/mpc8xx/lcd.c    |  618 --------------------------------------
 drivers/video/Makefile           |    1 +
 drivers/video/mpc8xx_lcd.c       |  618 ++++++++++++++++++++++++++++++++++++++
 include/configs/R360MPI.h        |    1 +
 include/configs/RBC823.h         |    1 +
 include/configs/RPXlite_DW.h     |    1 +
 include/configs/RRvision.h       |    4 +-
 include/configs/TQM823L.h        |    1 +
 include/configs/TQM823M.h        |    1 +
 include/configs/lwmon.h          |    1 +
 include/configs/svm_sc8xx.h      |    1 +
 include/configs/v37.h            |    1 +
 13 files changed, 630 insertions(+), 620 deletions(-)
 delete mode 100644 arch/powerpc/cpu/mpc8xx/lcd.c
 create mode 100644 drivers/video/mpc8xx_lcd.c
arch/powerpc/cpu/mpc8xx/Makefile +0 -1
index 0d1a12c..ef10e2d 100644
@@ -37,7 +37,6 @@ COBJS-y	+= fec.o
 COBJS-$(CONFIG_OF_LIBFDT) += fdt.o
 COBJS-y	+= i2c.o
 COBJS-y	+= interrupts.o
-COBJS-y	+= lcd.o
 COBJS-y	+= scc.o
 COBJS-y	+= serial.o
 COBJS-y	+= speed.o
arch/powerpc/cpu/mpc8xx/lcd.c deleted +0 -618

618 lines not on this page · raw message

drivers/video/Makefile +1 -0
index 8ff3958..20b2e6f 100644
@@ -35,6 +35,7 @@ COBJS-$(CONFIG_EXYNOS_MIPI_DSIM) += exynos_mipi_dsi.o exynos_mipi_dsi_common.o \
 				exynos_mipi_dsi_lowlevel.o
 COBJS-$(CONFIG_EXYNOS_PWM_BL) += exynos_pwm_bl.o
 COBJS-$(CONFIG_FSL_DIU_FB) += fsl_diu_fb.o videomodes.o
+COBJS-$(CONFIG_MPC8XX_LCD) += mpc8xx_lcd.o
 COBJS-$(CONFIG_S6E8AX0) += s6e8ax0.o
 COBJS-$(CONFIG_S6E63D6) += s6e63d6.o
 COBJS-$(CONFIG_LD9040) += ld9040.o
drivers/video/mpc8xx_lcd.c new file +618 -0

618 lines not on this page · raw message

include/configs/R360MPI.h +1 -0
index 868a0b8..60cccff 100644
@@ -39,6 +39,7 @@
 #define	CONFIG_SYS_TEXT_BASE	0x40000000
 
 #define CONFIG_LCD
+#define CONFIG_MPC8XX_LCD
 #undef  CONFIG_EDT32F10
 #define CONFIG_SHARP_LQ057Q3DC02
 
include/configs/RBC823.h +1 -0
index b042c67..d4bcc62 100644
@@ -47,6 +47,7 @@
 #endif
 #define CONFIG_KEYBOARD		1	/* This board has a custom keybpard */
 #define CONFIG_LCD		1	/* use LCD controller ...	*/
+#define CONFIG_MPC8XX_LCD
 #define CONFIG_HITACHI_SP19X001_Z1A	/* The LCD type we use */
 
 #define	CONFIG_8xx_CONS_SMC2	1	/* Console is on SMC2		*/
include/configs/RPXlite_DW.h +1 -0
index 67ab1e9..d8e28d5 100644
@@ -54,6 +54,7 @@
 #define	CONFIG_SYS_TEXT_BASE	0xff000000
 
 #ifdef	CONFIG_LCD			/* with LCD controller ?	*/
+#define CONFIG_MPC8XX_LCD
 #define CONFIG_SPLASH_SCREEN		/* ... with splashscreen support*/
 #endif
 
include/configs/RRvision.h +3 -1
index e2b22f0..e2ea016 100644
@@ -110,7 +110,9 @@
 #define	CONFIG_RTC_MPC8xx		/* use internal RTC of MPC8xx	*/
 
 
-#ifndef CONFIG_LCD
+#ifdef CONFIG_LCD
+#define CONFIG_MPC8XX_LCD
+#else
 #define CONFIG_VIDEO		1	/* To enable the video initialization */
 
 /* Video related */
include/configs/TQM823L.h +1 -0
index 9fac5d1..cccf3af 100644
@@ -39,6 +39,7 @@
 #define	CONFIG_SYS_TEXT_BASE	0x40000000
 
 #ifdef	CONFIG_LCD			/* with LCD controller ?	*/
+#define CONFIG_MPC8XX_LCD
 #define CONFIG_LCD_LOGO		1	/* print our logo on the LCD	*/
 #define CONFIG_LCD_INFO		1	/* ... and some board info	*/
 #define	CONFIG_SPLASH_SCREEN		/* ... with splashscreen support*/
include/configs/TQM823M.h +1 -0
index 932f158..b2d1af0 100644
@@ -39,6 +39,7 @@
 #define	CONFIG_SYS_TEXT_BASE	0x40000000
 
 #ifdef	CONFIG_LCD			/* with LCD controller ?	*/
+#define CONFIG_MPC8XX_LCD
 /* #define CONFIG_NEC_NL6448BC20 1 / * use NEC NL6448BC20 display	*/
 #endif
 
include/configs/lwmon.h +1 -0
index df49781..3c02b73 100644
@@ -54,6 +54,7 @@
 #define CONFIG_MISC_INIT_R	1	/* Call misc_init_r()		*/
 
 #define CONFIG_LCD		1	/* use LCD controller ...	*/
+#define CONFIG_MPC8XX_LCD
 #define CONFIG_HLD1045		1	/* ... with a HLD1045 display	*/
 
 #define CONFIG_LCD_LOGO		1	/* print our logo on the LCD	*/
include/configs/svm_sc8xx.h +1 -0
index 2b24997..3c8c74d 100644
@@ -38,6 +38,7 @@
 /* SC85T,SC860T, FEL8xx-AT(855T/860T) */
 /*#define CONFIG_FEL8xx_AT */
 /*#define CONFIG_LCD */
+/*#define CONFIG_MPC8XX_LCD*/
 /* if core > 50MHz , un-comment CONFIG_BUS_DIV2 */
 /* #define CONFIG_50MHz */
 /* #define CONFIG_66MHz */
include/configs/v37.h +1 -0
index e36d249..f9965db 100644
@@ -39,6 +39,7 @@
 #define	CONFIG_SYS_TEXT_BASE	0x40000000
 
 #define CONFIG_LCD
+#define CONFIG_MPC8XX_LCD
 #define CONFIG_SHARP_LQ084V1DG21
 #undef CONFIG_LCD_LOGO
 
Signature · 1 line
1.7.9.5
#10 lore raw

PATCH 4/10 lcd, pxafb: move the pxafb to drivers/video

In reply to Jeroen Hofstee

Since the lcd code was compiled unconditionally for pxa also add CONFIG_PXA_LCD to the boards using this framebuffer. Since the driver/video contains video and lcd driver add lcd to the name to make clear it belongs to common/lcd.c.

cc Anatolij Gustschin <[email protected]>
cc Cliff Brake <[email protected]>
cc Marek Vasut <[email protected]>
---
 arch/arm/cpu/pxa/Makefile    |    1 -
 arch/arm/cpu/pxa/pxafb.c     |  650 ------------------------------------------
 drivers/video/Makefile       |    1 +
 drivers/video/pxa_lcd.c      |  650 ++++++++++++++++++++++++++++++++++++++++++
 include/configs/lubbock.h    |    1 +
 include/configs/palmld.h     |    1 +
 include/configs/palmtc.h     |    1 +
 include/configs/pxa255_idp.h |    1 +
 include/configs/zipitz2.h    |    1 +
 9 files changed, 656 insertions(+), 651 deletions(-)
 delete mode 100644 arch/arm/cpu/pxa/pxafb.c
 create mode 100644 drivers/video/pxa_lcd.c
arch/arm/cpu/pxa/Makefile +0 -1
index e088832..9f63c34 100644
@@ -33,7 +33,6 @@ COBJS-$(CONFIG_CPU_PXA27X)	= pxa2xx.o
 COBJS-y	+= cpuinfo.o
 
 COBJS	= $(COBJS-y)
-COBJS	+= pxafb.o
 COBJS	+= timer.o
 COBJS	+= usb.o
 
arch/arm/cpu/pxa/pxafb.c deleted +0 -650

650 lines not on this page · raw message

drivers/video/Makefile +1 -0
index 20b2e6f..250aebd 100644
@@ -36,6 +36,7 @@ COBJS-$(CONFIG_EXYNOS_MIPI_DSIM) += exynos_mipi_dsi.o exynos_mipi_dsi_common.o \
 COBJS-$(CONFIG_EXYNOS_PWM_BL) += exynos_pwm_bl.o
 COBJS-$(CONFIG_FSL_DIU_FB) += fsl_diu_fb.o videomodes.o
 COBJS-$(CONFIG_MPC8XX_LCD) += mpc8xx_lcd.o
+COBJS-$(CONFIG_PXA_LCD) += pxa_lcd.o
 COBJS-$(CONFIG_S6E8AX0) += s6e8ax0.o
 COBJS-$(CONFIG_S6E63D6) += s6e63d6.o
 COBJS-$(CONFIG_LD9040) += ld9040.o
drivers/video/pxa_lcd.c new file +650 -0

650 lines not on this page · raw message

include/configs/lubbock.h +1 -0
index 5886a15..b99a056 100644
@@ -38,6 +38,7 @@
 #define CONFIG_LUBBOCK		1	/* on an LUBBOCK Board	    */
 #define CONFIG_LCD		1
 #ifdef CONFIG_LCD
+#define CONFIG_PXA_LCD
 #define CONFIG_SHARP_LM8V31
 #endif
 #define CONFIG_MMC
include/configs/palmld.h +1 -0
index 3f9802c..4ee2e46 100644
@@ -72,6 +72,7 @@
 #define	CONFIG_CMD_MMC
 #define	CONFIG_CMD_IDE
 #define	CONFIG_LCD
+#define	CONFIG_PXA_LCD
 
 /*
  * MMC Card Configuration
include/configs/palmtc.h +1 -0
index 64771e7..70fe05c 100644
@@ -74,6 +74,7 @@
 #define	CONFIG_CMD_ENV
 #define	CONFIG_CMD_MMC
 #define	CONFIG_LCD
+#define	CONFIG_PXA_LCD
 
 /*
  * MMC Card Configuration
include/configs/pxa255_idp.h +1 -0
index 5a15af6..39c167f 100644
@@ -59,6 +59,7 @@
 
 #undef CONFIG_LCD
 #ifdef CONFIG_LCD
+#define CONFIG_PXA_LCD
 #define CONFIG_SHARP_LM8V31
 #endif
 
include/configs/zipitz2.h +1 -0
index b92f70b..f79dd3b 100644
@@ -103,6 +103,7 @@
 #ifdef	CONFIG_CMD_SPI
 #define	CONFIG_SOFT_SPI
 #define	CONFIG_LCD
+#define	CONFIG_PXA_LCD
 #define	CONFIG_LMS283GF05
 #define	CONFIG_VIDEO_LOGO
 #define	CONFIG_CMD_BMP
Signature · 1 line
1.7.9.5
#11 lore raw

PATCH 4/10 lcd, pxafb: move the pxafb to drivers/video

Dear Jeroen Hofstee,

Quoted 9 lines

Since the lcd code was compiled unconditionally for pxa also add CONFIG_PXA_LCD to the boards using this framebuffer. Since the driver/video contains video and lcd driver add lcd to the name to make clear it belongs to common/lcd.c.

cc Anatolij Gustschin <[email protected]>
cc Cliff Brake <[email protected]>
cc Marek Vasut <[email protected]>

git format-patch -MC

Otherwise

Best regards,
Marek Vasut

#12 lore raw

PATCH 5/10 common/lcd.c: cleanup use of global variables

In reply to Jeroen Hofstee

console_col, console_row, lcd_line_length, lcd_console_address had to be declared in board / driver specific code, but were not actually used there. Get rid of the global variables.

Cc Alessandro Rubini <[email protected]>
Cc Anatolij Gustschin <[email protected]>
Cc Bo Shen <[email protected]>
Cc Haavard Skinnemoen <[email protected]>
Cc Kyungmin Park <[email protected]>
Cc Marek Vasut <[email protected]>
Cc Minkyu Kang <[email protected]>
Cc Nikita Kiryanov <[email protected]>
Cc Simon Glass <[email protected]>
Cc Stelian Pop <[email protected]>
Cc Tom Warren <[email protected]>
---
 board/mcc200/lcd.c           |    6 ------
 common/lcd.c                 |    6 ++++++
 drivers/video/atmel_hlcdfb.c |    6 ------
 drivers/video/atmel_lcdfb.c  |    6 ------
 drivers/video/exynos_fb.c    |    6 ------
 drivers/video/mpc8xx_lcd.c   |    6 ------
 drivers/video/pxa_lcd.c      |    6 ------
 drivers/video/tegra.c        |    6 ------
 include/lcd.h                |    5 -----
 9 files changed, 6 insertions(+), 47 deletions(-)
board/mcc200/lcd.c +0 -6
index 0f3f585..caf8d8b 100644
@@ -68,16 +68,10 @@ vidinfo_t panel_info = {
 	LCD_WIDTH, LCD_HEIGHT, LCD_BPP
 };
 
-int lcd_line_length;
-
 /*
  * Frame buffer memory information
  */
 void *lcd_base;			/* Start of framebuffer memory  */
-void *lcd_console_address;	/* Start of console buffer      */
-
-short console_col = 0;
-short console_row = 0;
 
 /*
  *  The device we use to communicate with PSoC
common/lcd.c +6 -0
index b67724e..d3fd68d 100644
@@ -99,9 +99,15 @@ static void lcd_setbgcolor(int color);
 
 static int lcd_color_fg;
 static int lcd_color_bg;
+static int lcd_line_length;
 
 char lcd_is_enabled = 0;
 
+static short console_col;
+static short console_row;
+
+static void *lcd_console_address;
+
 static char lcd_flush_dcache;	/* 1 to flush dcache after each lcd update */
 
 
drivers/video/atmel_hlcdfb.c +0 -6
index e74eb65..32626cf 100644
@@ -29,13 +29,7 @@
 #include <lcd.h>
 #include <atmel_hlcdc.h>
 
-int lcd_line_length;
-
 void *lcd_base;				/* Start of framebuffer memory	*/
-void *lcd_console_address;		/* Start of console buffer	*/
-
-short console_col;
-short console_row;
 
 /* configurable parameters */
 #define ATMEL_LCDC_CVAL_DEFAULT		0xc8
drivers/video/atmel_lcdfb.c +0 -6
index d96f175..370d9ca 100644
@@ -29,13 +29,7 @@
 #include <lcd.h>
 #include <atmel_lcdc.h>
 
-int lcd_line_length;
-
 void *lcd_base;				/* Start of framebuffer memory	*/
-void *lcd_console_address;		/* Start of console buffer	*/
-
-short console_col;
-short console_row;
 
 /* configurable parameters */
 #define ATMEL_LCDC_CVAL_DEFAULT		0xc8
drivers/video/exynos_fb.c +0 -6
index 3dd6100..3e5f868 100644
@@ -33,13 +33,7 @@
 
 #include "exynos_fb.h"
 
-int lcd_line_length;
-
 void *lcd_base;
-void *lcd_console_address;
-
-short console_col;
-short console_row;
 
 static unsigned int panel_width, panel_height;
 
drivers/video/mpc8xx_lcd.c +0 -6
index 4fd44ac..26ad432 100644
@@ -256,16 +256,10 @@ vidinfo_t panel_info = {
 /*----------------------------------------------------------------------*/
 
 
-int lcd_line_length;
-
 /*
  * Frame buffer memory information
  */
 void *lcd_base;			/* Start of framebuffer memory	*/
-void *lcd_console_address;	/* Start of console buffer	*/
-
-short console_col;
-short console_row;
 
 /************************************************************************/
 
drivers/video/pxa_lcd.c +0 -6
index 25747b1..57243ce 100644
@@ -332,13 +332,7 @@ void lcd_getcolreg (ushort regno, ushort *red, ushort *green, ushort *blue);
 void lcd_ctrl_init	(void *lcdbase);
 void lcd_enable	(void);
 
-int lcd_line_length;
-
 void *lcd_base;			/* Start of framebuffer memory	*/
-void *lcd_console_address;		/* Start of console buffer	*/
-
-short console_col;
-short console_row;
 
 static int pxafb_init_mem (void *lcdbase, vidinfo_t *vid);
 static void pxafb_setup_gpio (vidinfo_t *vid);
drivers/video/tegra.c +0 -6
index 26a96a5..0d1cfa9 100644
@@ -60,13 +60,7 @@ enum {
 	LCD_MAX_LOG2_BPP	= 4,		/* 2^4 = 16 bpp */
 };
 
-int lcd_line_length;
-
 void *lcd_base;			/* Start of framebuffer memory	*/
-void *lcd_console_address;	/* Start of console buffer	*/
-
-short console_col;
-short console_row;
 
 vidinfo_t panel_info = {
 	/* Insert a value here so that we don't end up in the BSS */
include/lcd.h +0 -5
index 7d8c41f..b8eea9c 100644
@@ -31,16 +31,11 @@
 
 extern char lcd_is_enabled;
 
-extern int lcd_line_length;
-
 /*
  * Frame buffer memory information
  */
 extern void *lcd_base;			/* Start of framebuffer memory	*/
-extern void *lcd_console_address;	/* Start of console buffer	*/
 
-extern short console_col;
-extern short console_row;
 extern struct vidinfo panel_info;
 
 extern void lcd_ctrl_init (void *lcdbase);
Signature · 1 line
1.7.9.5
#13 lore raw

PATCH 5/10 common/lcd.c: cleanup use of global variables

Quoted 95 lines · Jeroen Hofstee

console_col, console_row, lcd_line_length, lcd_console_address had to be declared in board / driver specific code, but were not actually used there. Get rid of the global variables.

Cc Alessandro Rubini <[email protected]>
Cc Anatolij Gustschin <[email protected]>
Cc Bo Shen <[email protected]>
Cc Haavard Skinnemoen <[email protected]>
Cc Kyungmin Park <[email protected]>
Cc Marek Vasut <[email protected]>
Cc Minkyu Kang <[email protected]>
Cc Nikita Kiryanov <[email protected]>
Cc Simon Glass <[email protected]>
Cc Stelian Pop <[email protected]>
Cc Tom Warren <[email protected]>
---
  board/mcc200/lcd.c           |    6 ------
  common/lcd.c                 |    6 ++++++
  drivers/video/atmel_hlcdfb.c |    6 ------
  drivers/video/atmel_lcdfb.c  |    6 ------
  drivers/video/exynos_fb.c    |    6 ------
  drivers/video/mpc8xx_lcd.c   |    6 ------
  drivers/video/pxa_lcd.c      |    6 ------
  drivers/video/tegra.c        |    6 ------
  include/lcd.h                |    5 -----
  9 files changed, 6 insertions(+), 47 deletions(-)
board/mcc200/lcd.c +0 -6
index 0f3f585..caf8d8b 100644
@@ -68,16 +68,10 @@ vidinfo_t panel_info = {
  	LCD_WIDTH, LCD_HEIGHT, LCD_BPP
  };
 
-int lcd_line_length;
-
  /*
   * Frame buffer memory information
   */
  void *lcd_base;			/* Start of framebuffer memory  */
-void *lcd_console_address;	/* Start of console buffer      */
-
-short console_col = 0;
-short console_row = 0;
 
  /*
   *  The device we use to communicate with PSoC
common/lcd.c +6 -0
index b67724e..d3fd68d 100644
@@ -99,9 +99,15 @@ static void lcd_setbgcolor(int color);
 
  static int lcd_color_fg;
  static int lcd_color_bg;
+static int lcd_line_length;
 
  char lcd_is_enabled = 0;
 
+static short console_col;
+static short console_row;
+
+static void *lcd_console_address;
+
  static char lcd_flush_dcache;	/* 1 to flush dcache after each lcd update */
 
 
drivers/video/atmel_hlcdfb.c +0 -6
index e74eb65..32626cf 100644
@@ -29,13 +29,7 @@
  #include <lcd.h>
  #include <atmel_hlcdc.h>
 
-int lcd_line_length;
-
  void *lcd_base;				/* Start of framebuffer memory	*/
-void *lcd_console_address;		/* Start of console buffer	*/
-
-short console_col;
-short console_row;
 
  /* configurable parameters */
  #define ATMEL_LCDC_CVAL_DEFAULT		0xc8
drivers/video/atmel_lcdfb.c +0 -0
index d96f175..370d9ca 100644
@@ -29,13 +29,7 @@
  #include <lcd.h>
  #include <atmel_lcdc.h>
 

drivers/video/atmel_lcdfb.c line 35

Quoted 10 lines
drivers/video/atmel_lcdfb.c +0 -6
-int lcd_line_length;
-
  void *lcd_base;				/* Start of framebuffer memory	*/
-void *lcd_console_address;		/* Start of console buffer	*/
-
-short console_col;
-short console_row;
 
  /* configurable parameters */
  #define ATMEL_LCDC_CVAL_DEFAULT		0xc8

For Atmel part, it is ok for me.

Best Regards,
Bo Shen

Quoted 97 lines
drivers/video/exynos_fb.c +0 -6
index 3dd6100..3e5f868 100644
@@ -33,13 +33,7 @@
 
  #include "exynos_fb.h"
 
-int lcd_line_length;
-
  void *lcd_base;
-void *lcd_console_address;
-
-short console_col;
-short console_row;
 
  static unsigned int panel_width, panel_height;
 
drivers/video/mpc8xx_lcd.c +0 -6
index 4fd44ac..26ad432 100644
@@ -256,16 +256,10 @@ vidinfo_t panel_info = {
  /*----------------------------------------------------------------------*/
 
 
-int lcd_line_length;
-
  /*
   * Frame buffer memory information
   */
  void *lcd_base;			/* Start of framebuffer memory	*/
-void *lcd_console_address;	/* Start of console buffer	*/
-
-short console_col;
-short console_row;
 
  /************************************************************************/
 
drivers/video/pxa_lcd.c +0 -6
index 25747b1..57243ce 100644
@@ -332,13 +332,7 @@ void lcd_getcolreg (ushort regno, ushort *red, ushort *green, ushort *blue);
  void lcd_ctrl_init	(void *lcdbase);
  void lcd_enable	(void);
 
-int lcd_line_length;
-
  void *lcd_base;			/* Start of framebuffer memory	*/
-void *lcd_console_address;		/* Start of console buffer	*/
-
-short console_col;
-short console_row;
 
  static int pxafb_init_mem (void *lcdbase, vidinfo_t *vid);
  static void pxafb_setup_gpio (vidinfo_t *vid);
drivers/video/tegra.c +0 -6
index 26a96a5..0d1cfa9 100644
@@ -60,13 +60,7 @@ enum {
  	LCD_MAX_LOG2_BPP	= 4,		/* 2^4 = 16 bpp */
  };
 
-int lcd_line_length;
-
  void *lcd_base;			/* Start of framebuffer memory	*/
-void *lcd_console_address;	/* Start of console buffer	*/
-
-short console_col;
-short console_row;
 
  vidinfo_t panel_info = {
  	/* Insert a value here so that we don't end up in the BSS */
include/lcd.h +0 -5
index 7d8c41f..b8eea9c 100644
@@ -31,16 +31,11 @@
 
  extern char lcd_is_enabled;
 
-extern int lcd_line_length;
-
  /*
   * Frame buffer memory information
   */
  extern void *lcd_base;			/* Start of framebuffer memory	*/
-extern void *lcd_console_address;	/* Start of console buffer	*/
 
-extern short console_col;
-extern short console_row;
  extern struct vidinfo panel_info;
 
  extern void lcd_ctrl_init (void *lcdbase);
#14 lore raw

PATCH 6/10 common/lcd.c: remove global lcd_base

In reply to Jeroen Hofstee

lcd_base is available as gd->fb_base as well, there is no need to keep a seperate copy.

Cc Alessandro Rubini <[email protected]>
Cc Anatolij Gustschin <[email protected]>
Cc Bo Shen <[email protected]>
Cc Haavard Skinnemoen <[email protected]>
Cc Kyungmin Park <[email protected]>
Cc Marek Vasut <[email protected]>
Cc Minkyu Kang <[email protected]>
Cc Nikita Kiryanov <[email protected]>
Cc Simon Glass <[email protected]>
Cc Stelian Pop <[email protected]>
Cc Tom Warren <[email protected]>
---
 board/mcc200/lcd.c           |    8 ++------
 common/lcd.c                 |    1 +
 drivers/video/atmel_hlcdfb.c |    2 --
 drivers/video/atmel_lcdfb.c  |    2 --
 drivers/video/exynos_fb.c    |    8 +++-----
 drivers/video/mpc8xx_lcd.c   |   12 ++----------
 drivers/video/pxa_lcd.c      |    2 --
 drivers/video/tegra.c        |    6 +-----
 include/lcd.h                |    5 -----
 9 files changed, 9 insertions(+), 37 deletions(-)
board/mcc200/lcd.c +2 -6
index caf8d8b..feded49 100644
@@ -68,10 +68,6 @@ vidinfo_t panel_info = {
 	LCD_WIDTH, LCD_HEIGHT, LCD_BPP
 };
 
-/*
- * Frame buffer memory information
- */
-void *lcd_base;			/* Start of framebuffer memory  */
 
 /*
  *  The device we use to communicate with PSoC
@@ -147,12 +143,12 @@ void lcd_enable (void)
 
 #if !defined(SWAPPED_LCD)
 	for (i=0; i<fb_size; i++) {
-		serial_putc_raw_dev (PSOC_PSC, ((char *)lcd_base)[i]);
+		serial_putc_raw_dev (PSOC_PSC, ((char *)gd->fb_base)[i]);
 	}
 #else
     {
 	int x, y, pwidth;
-	char *p = (char *)lcd_base;
+	char *p = (char *)gd->fb_base;
 
 	pwidth = ((panel_info.vl_col+7) >> 3);
 	for (y=0; y<panel_info.vl_row; y++) {
common/lcd.c +1 -0
index d3fd68d..02f4721 100644
@@ -107,6 +107,7 @@ static short console_col;
 static short console_row;
 
 static void *lcd_console_address;
+static void *lcd_base;			/* Start of framebuffer memory	*/
 
 static char lcd_flush_dcache;	/* 1 to flush dcache after each lcd update */
 
drivers/video/atmel_hlcdfb.c +0 -2
index 32626cf..fc95897 100644
@@ -29,8 +29,6 @@
 #include <lcd.h>
 #include <atmel_hlcdc.h>
 
-void *lcd_base;				/* Start of framebuffer memory	*/
-
 /* configurable parameters */
 #define ATMEL_LCDC_CVAL_DEFAULT		0xc8
 #define ATMEL_LCDC_DMA_BURST_LEN	8
drivers/video/atmel_lcdfb.c +0 -2
index 370d9ca..2afeab2 100644
@@ -29,8 +29,6 @@
 #include <lcd.h>
 #include <atmel_lcdc.h>
 
-void *lcd_base;				/* Start of framebuffer memory	*/
-
 /* configurable parameters */
 #define ATMEL_LCDC_CVAL_DEFAULT		0xc8
 #define ATMEL_LCDC_DMA_BURST_LEN	8
drivers/video/exynos_fb.c +3 -5
index 3e5f868..6f3c85d 100644
@@ -33,7 +33,7 @@
 
 #include "exynos_fb.h"
 
-void *lcd_base;
+DECLARE_GLOBAL_DATA_PTR;
 
 static unsigned int panel_width, panel_height;
 
@@ -44,11 +44,9 @@ static void exynos_lcd_init_mem(void *lcdbase, vidinfo_t *vid)
 
 	fb_size = vid->vl_row * vid->vl_col * (NBITS(vid->vl_bpix) >> 3);
 
-	lcd_base = lcdbase;
-
 	palette_size = NBITS(vid->vl_bpix) == 8 ? 256 : 16;
 
-	exynos_fimd_lcd_init_mem((unsigned long)lcd_base,
+	exynos_fimd_lcd_init_mem((unsigned long)lcdbase,
 			(unsigned long)fb_size, palette_size);
 }
 
@@ -135,7 +133,7 @@ void lcd_ctrl_init(void *lcdbase)
 void lcd_enable(void)
 {
 	if (panel_info.logo_on) {
-		memset(lcd_base, 0, panel_width * panel_height *
+		memset((void *) gd->fb_base, 0, panel_width * panel_height *
 				(NBITS(panel_info.vl_bpix) >> 3));
 		draw_logo();
 	}
drivers/video/mpc8xx_lcd.c +2 -10
index 26ad432..1aa1967 100644
@@ -255,14 +255,6 @@ vidinfo_t panel_info = {
 #endif
 /*----------------------------------------------------------------------*/
 
-
-/*
- * Frame buffer memory information
- */
-void *lcd_base;			/* Start of framebuffer memory	*/
-
-/************************************************************************/
-
 void lcd_ctrl_init (void *lcdbase);
 void lcd_enable (void);
 #if LCD_BPP == LCD_COLOR8
@@ -392,8 +384,8 @@ void lcd_ctrl_init (void *lcdbase)
 	 * BIG NOTE:  This has to be modified to load A and B depending
 	 * upon the split mode of the LCD.
 	 */
-	lcdp->lcd_lcfaa = (ulong)lcd_base;
-	lcdp->lcd_lcfba = (ulong)lcd_base;
+	lcdp->lcd_lcfaa = (ulong)lcdbase;
+	lcdp->lcd_lcfba = (ulong)lcdbase;
 
 	/* MORE HACKS...This must be updated according to 823 manual
 	 * for different panels.
drivers/video/pxa_lcd.c +0 -2
index 57243ce..fef49c1 100644
@@ -332,8 +332,6 @@ void lcd_getcolreg (ushort regno, ushort *red, ushort *green, ushort *blue);
 void lcd_ctrl_init	(void *lcdbase);
 void lcd_enable	(void);
 
-void *lcd_base;			/* Start of framebuffer memory	*/
-
 static int pxafb_init_mem (void *lcdbase, vidinfo_t *vid);
 static void pxafb_setup_gpio (vidinfo_t *vid);
 static void pxafb_enable_controller (vidinfo_t *vid);
drivers/video/tegra.c +1 -5
index 0d1cfa9..941551c 100644
@@ -60,8 +60,6 @@ enum {
 	LCD_MAX_LOG2_BPP	= 4,		/* 2^4 = 16 bpp */
 };
 
-void *lcd_base;			/* Start of framebuffer memory	*/
-
 vidinfo_t panel_info = {
 	/* Insert a value here so that we don't end up in the BSS */
 	.vl_col = -1,
@@ -90,8 +88,6 @@ void lcd_ctrl_init(void *lcdbase)
 
 	assert(disp_config);
 
-	lcd_base = (void *)disp_config->frame_buffer;
-
 	/* Make sure that we can acommodate the selected LCD */
 	assert(disp_config->width <= LCD_MAX_WIDTH);
 	assert(disp_config->height <= LCD_MAX_HEIGHT);
@@ -112,7 +108,7 @@ void lcd_ctrl_init(void *lcdbase)
 	/* Enable flushing after LCD writes if requested */
 	lcd_set_flush_dcache(config.cache_type & FDT_LCD_CACHE_FLUSH);
 
-	debug("LCD frame buffer at %p\n", lcd_base);
+	debug("LCD frame buffer@%08X\n", disp_config->frame_buffer);
 }
 
 ulong calc_fbsize(void)
include/lcd.h +0 -5
index b8eea9c..d54a304 100644
@@ -31,11 +31,6 @@
 
 extern char lcd_is_enabled;
 
-/*
- * Frame buffer memory information
- */
-extern void *lcd_base;			/* Start of framebuffer memory	*/
-
 extern struct vidinfo panel_info;
 
 extern void lcd_ctrl_init (void *lcdbase);
Signature · 1 line
1.7.9.5
#15 lore raw

PATCH 6/10 common/lcd.c: remove global lcd_base

Quoted 87 lines · Jeroen Hofstee

lcd_base is available as gd->fb_base as well, there is no need to keep a seperate copy.

Cc Alessandro Rubini <[email protected]>
Cc Anatolij Gustschin <[email protected]>
Cc Bo Shen <[email protected]>
Cc Haavard Skinnemoen <[email protected]>
Cc Kyungmin Park <[email protected]>
Cc Marek Vasut <[email protected]>
Cc Minkyu Kang <[email protected]>
Cc Nikita Kiryanov <[email protected]>
Cc Simon Glass <[email protected]>
Cc Stelian Pop <[email protected]>
Cc Tom Warren <[email protected]>
---
  board/mcc200/lcd.c           |    8 ++------
  common/lcd.c                 |    1 +
  drivers/video/atmel_hlcdfb.c |    2 --
  drivers/video/atmel_lcdfb.c  |    2 --
  drivers/video/exynos_fb.c    |    8 +++-----
  drivers/video/mpc8xx_lcd.c   |   12 ++----------
  drivers/video/pxa_lcd.c      |    2 --
  drivers/video/tegra.c        |    6 +-----
  include/lcd.h                |    5 -----
  9 files changed, 9 insertions(+), 37 deletions(-)
board/mcc200/lcd.c +2 -6
index caf8d8b..feded49 100644
@@ -68,10 +68,6 @@ vidinfo_t panel_info = {
  	LCD_WIDTH, LCD_HEIGHT, LCD_BPP
  };
 
-/*
- * Frame buffer memory information
- */
-void *lcd_base;			/* Start of framebuffer memory  */
 
  /*
   *  The device we use to communicate with PSoC
@@ -147,12 +143,12 @@ void lcd_enable (void)
 
  #if !defined(SWAPPED_LCD)
  	for (i=0; i<fb_size; i++) {
-		serial_putc_raw_dev (PSOC_PSC, ((char *)lcd_base)[i]);
+		serial_putc_raw_dev (PSOC_PSC, ((char *)gd->fb_base)[i]);
  	}
  #else
      {
  	int x, y, pwidth;
-	char *p = (char *)lcd_base;
+	char *p = (char *)gd->fb_base;
 
  	pwidth = ((panel_info.vl_col+7) >> 3);
  	for (y=0; y<panel_info.vl_row; y++) {
common/lcd.c +1 -0
index d3fd68d..02f4721 100644
@@ -107,6 +107,7 @@ static short console_col;
  static short console_row;
 
  static void *lcd_console_address;
+static void *lcd_base;			/* Start of framebuffer memory	*/
 
  static char lcd_flush_dcache;	/* 1 to flush dcache after each lcd update */
 
drivers/video/atmel_hlcdfb.c +0 -2
index 32626cf..fc95897 100644
@@ -29,8 +29,6 @@
  #include <lcd.h>
  #include <atmel_hlcdc.h>
 
-void *lcd_base;				/* Start of framebuffer memory	*/
-
  /* configurable parameters */
  #define ATMEL_LCDC_CVAL_DEFAULT		0xc8
  #define ATMEL_LCDC_DMA_BURST_LEN	8
drivers/video/atmel_lcdfb.c +0 -0
index 370d9ca..2afeab2 100644

drivers/video/atmel_lcdfb.c line 34

Quoted 8 lines
drivers/video/atmel_lcdfb.c +0 -2
@@ -29,8 +29,6 @@
  #include <lcd.h>
  #include <atmel_lcdc.h>
 
-void *lcd_base;				/* Start of framebuffer memory	*/
-
  /* configurable parameters */
  #define ATMEL_LCDC_CVAL_DEFAULT		0xc8
  #define ATMEL_LCDC_DMA_BURST_LEN	8

For Atmel part, it is ok for me.

Best Regards,
Bo Shen

Quoted 126 lines
drivers/video/exynos_fb.c +3 -5
index 3e5f868..6f3c85d 100644
@@ -33,7 +33,7 @@
 
  #include "exynos_fb.h"
 
-void *lcd_base;
+DECLARE_GLOBAL_DATA_PTR;
 
  static unsigned int panel_width, panel_height;
 
@@ -44,11 +44,9 @@ static void exynos_lcd_init_mem(void *lcdbase, vidinfo_t *vid)
 
  	fb_size = vid->vl_row * vid->vl_col * (NBITS(vid->vl_bpix) >> 3);
 
-	lcd_base = lcdbase;
-
  	palette_size = NBITS(vid->vl_bpix) == 8 ? 256 : 16;
 
-	exynos_fimd_lcd_init_mem((unsigned long)lcd_base,
+	exynos_fimd_lcd_init_mem((unsigned long)lcdbase,
  			(unsigned long)fb_size, palette_size);
  }
 
@@ -135,7 +133,7 @@ void lcd_ctrl_init(void *lcdbase)
  void lcd_enable(void)
  {
  	if (panel_info.logo_on) {
-		memset(lcd_base, 0, panel_width * panel_height *
+		memset((void *) gd->fb_base, 0, panel_width * panel_height *
  				(NBITS(panel_info.vl_bpix) >> 3));
  		draw_logo();
  	}
drivers/video/mpc8xx_lcd.c +2 -10
index 26ad432..1aa1967 100644
@@ -255,14 +255,6 @@ vidinfo_t panel_info = {
  #endif
  /*----------------------------------------------------------------------*/
 
-
-/*
- * Frame buffer memory information
- */
-void *lcd_base;			/* Start of framebuffer memory	*/
-
-/************************************************************************/
-
  void lcd_ctrl_init (void *lcdbase);
  void lcd_enable (void);
  #if LCD_BPP == LCD_COLOR8
@@ -392,8 +384,8 @@ void lcd_ctrl_init (void *lcdbase)
  	 * BIG NOTE:  This has to be modified to load A and B depending
  	 * upon the split mode of the LCD.
  	 */
-	lcdp->lcd_lcfaa = (ulong)lcd_base;
-	lcdp->lcd_lcfba = (ulong)lcd_base;
+	lcdp->lcd_lcfaa = (ulong)lcdbase;
+	lcdp->lcd_lcfba = (ulong)lcdbase;
 
  	/* MORE HACKS...This must be updated according to 823 manual
  	 * for different panels.
drivers/video/pxa_lcd.c +0 -2
index 57243ce..fef49c1 100644
@@ -332,8 +332,6 @@ void lcd_getcolreg (ushort regno, ushort *red, ushort *green, ushort *blue);
  void lcd_ctrl_init	(void *lcdbase);
  void lcd_enable	(void);
 
-void *lcd_base;			/* Start of framebuffer memory	*/
-
  static int pxafb_init_mem (void *lcdbase, vidinfo_t *vid);
  static void pxafb_setup_gpio (vidinfo_t *vid);
  static void pxafb_enable_controller (vidinfo_t *vid);
drivers/video/tegra.c +1 -5
index 0d1cfa9..941551c 100644
@@ -60,8 +60,6 @@ enum {
  	LCD_MAX_LOG2_BPP	= 4,		/* 2^4 = 16 bpp */
  };
 
-void *lcd_base;			/* Start of framebuffer memory	*/
-
  vidinfo_t panel_info = {
  	/* Insert a value here so that we don't end up in the BSS */
  	.vl_col = -1,
@@ -90,8 +88,6 @@ void lcd_ctrl_init(void *lcdbase)
 
  	assert(disp_config);
 
-	lcd_base = (void *)disp_config->frame_buffer;
-
  	/* Make sure that we can acommodate the selected LCD */
  	assert(disp_config->width <= LCD_MAX_WIDTH);
  	assert(disp_config->height <= LCD_MAX_HEIGHT);
@@ -112,7 +108,7 @@ void lcd_ctrl_init(void *lcdbase)
  	/* Enable flushing after LCD writes if requested */
  	lcd_set_flush_dcache(config.cache_type & FDT_LCD_CACHE_FLUSH);
 
-	debug("LCD frame buffer at %p\n", lcd_base);
+	debug("LCD frame buffer at %08X\n", disp_config->frame_buffer);
  }
 
  ulong calc_fbsize(void)
include/lcd.h +0 -5
index b8eea9c..d54a304 100644
@@ -31,11 +31,6 @@
 
  extern char lcd_is_enabled;
 
-/*
- * Frame buffer memory information
- */
-extern void *lcd_base;			/* Start of framebuffer memory	*/
-
  extern struct vidinfo panel_info;
 
  extern void lcd_ctrl_init (void *lcdbase);
#16 lore raw

PATCH 7/10 common/lcd: cosmetic: clean up a bit

In reply to Jeroen Hofstee

- Make the brackets of the function calls more consistent
- Remove really unnecessary brackets
- Removes the extern from the function definitions
- Remove curly brackets from single line statements
- Remove lcd_setmem proto since it is already in common.h
- Don't init globals to 0

cc Anatolij Gustschin <[email protected]>
---
 common/lcd.c  |   84 ++++++++++++++++++++++-----------------------------------
 include/lcd.h |   35 +++++++++++-------------
 2 files changed, 48 insertions(+), 71 deletions(-)
common/lcd.c +32 -52
index 02f4721..b21ce7f 100644
@@ -83,15 +83,13 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-ulong lcd_setmem (ulong addr);
-
 static void lcd_drawchars(ushort x, ushort y, uchar *str, int count);
 static inline void lcd_puts_xy(ushort x, ushort y, uchar *s);
 static inline void lcd_putc_xy(ushort x, ushort y, uchar  c);
 
 static int lcd_init(void *lcdbase);
 
-static void *lcd_logo (void);
+static void *lcd_logo(void);
 
 static int lcd_getbgcolor(void);
 static void lcd_setfgcolor(int color);
@@ -111,13 +109,6 @@ static void *lcd_base;			/* Start of framebuffer memory	*/
 
 static char lcd_flush_dcache;	/* 1 to flush dcache after each lcd update */
 
-
-#ifdef	NOT_USED_SO_FAR
-static void lcd_getcolreg(ushort regno,
-				ushort *red, ushort *green, ushort *blue);
-static int lcd_getfgcolor(void);
-#endif	/* NOT_USED_SO_FAR */
-
 /************************************************************************/
 
 /* Flush LCD activity to the caches */
@@ -156,7 +147,7 @@ static void console_scrollup(void)
 	/* Clear the last rows */
 	memset(lcd_console_address + CONSOLE_SIZE - CONSOLE_ROW_SIZE * rows,
 		COLOR_MASK(lcd_color_bg),
-	       CONSOLE_ROW_SIZE * rows);
+		CONSOLE_ROW_SIZE * rows);
 
 	lcd_sync();
 	console_row -= rows;
@@ -168,9 +159,8 @@ static inline void console_back(void)
 {
 	if (--console_col < 0) {
 		console_col = CONSOLE_COLS-1 ;
-		if (--console_row < 0) {
+		if (--console_row < 0)
 			console_row = 0;
-		}
 	}
 
 	lcd_putc_xy(console_col * VIDEO_FONT_WIDTH,
@@ -181,16 +171,13 @@ static inline void console_back(void)
 
 static inline void console_newline(void)
 {
-	++console_row;
 	console_col = 0;
 
 	/* Check if we need to scroll the terminal */
-	if (console_row >= CONSOLE_ROWS) {
-		/* Scroll everything up */
+	if (++console_row >= CONSOLE_ROWS)
 		console_scrollup();
-	} else {
+	else
 		lcd_sync();
-	}
 }
 
 /*----------------------------------------------------------------------*/
@@ -242,9 +229,9 @@ void lcd_puts(const char *s)
 		return;
 	}
 
-	while (*s) {
+	while (*s)
 		lcd_putc(*s++);
-	}
+
 	lcd_sync();
 }
 
@@ -291,7 +278,7 @@ static void lcd_drawchars(ushort x, ushort y, uchar *str, int count)
 #endif
 
 #if LCD_BPP == LCD_MONOCHROME
-		uchar rest = *d & -(1 << (8-off));
+		uchar rest = *d & -(1 << (8 - off));
 		uchar sym;
 #endif
 		for (i = 0; i < count; ++i) {
@@ -321,7 +308,7 @@ static void lcd_drawchars(ushort x, ushort y, uchar *str, int count)
 #endif
 		}
 #if LCD_BPP == LCD_MONOCHROME
-		*d  = rest | (*d & ((1 << (8-off)) - 1));
+		*d  = rest | (*d & ((1 << (8 - off)) - 1));
 #endif
 	}
 }
@@ -348,7 +335,7 @@ static inline void lcd_putc_xy(ushort x, ushort y, uchar c)
 #define	N_BLK_VERT	2
 #define	N_BLK_HOR	3
 
-static int test_colors[N_BLK_HOR*N_BLK_VERT] = {
+static int test_colors[N_BLK_HOR * N_BLK_VERT] = {
 	CONSOLE_COLOR_RED,	CONSOLE_COLOR_GREEN,	CONSOLE_COLOR_YELLOW,
 	CONSOLE_COLOR_BLUE,	CONSOLE_COLOR_MAGENTA,	CONSOLE_COLOR_CYAN,
 };
@@ -369,7 +356,7 @@ static void test_pattern(void)
 	for (v = 0; v < v_max; ++v) {
 		uchar iy = v / v_step;
 		for (h = 0; h < h_max; ++h) {
-			uchar ix = N_BLK_HOR * iy + (h/h_step);
+			uchar ix = N_BLK_HOR * iy + h / h_step;
 			*pix++ = test_colors[ix];
 		}
 	}
@@ -387,12 +374,12 @@ int lcd_get_size(int *line_length)
 	return *line_length * panel_info.vl_row;
 }
 
-int drv_lcd_init (void)
+int drv_lcd_init(void)
 {
 	struct stdio_dev lcddev;
 	int rc;
 
-	lcd_base = (void *)(gd->fb_base);
+	lcd_base = (void *) gd->fb_base;
 
 	lcd_get_size(&lcd_line_length);
 
@@ -407,7 +394,7 @@ int drv_lcd_init (void)
 	lcddev.putc  = lcd_putc;		/* 'putc' function */
 	lcddev.puts  = lcd_puts;		/* 'puts' function */
 
-	rc = stdio_register (&lcddev);
+	rc = stdio_register(&lcddev);
 
 	return (rc == 0) ? 1 : rc;
 }
@@ -446,11 +433,11 @@ void lcd_clear(void)
 	/* set framebuffer to background color */
 	memset((char *)lcd_base,
 		COLOR_MASK(lcd_getbgcolor()),
-		lcd_line_length*panel_info.vl_row);
+		lcd_line_length * panel_info.vl_row);
 #endif
 	/* Paint the logo and retrieve LCD base address */
 	debug("[LCD] Drawing the logo...\n");
-	lcd_console_address = lcd_logo ();
+	lcd_console_address = lcd_logo();
 
 	console_col = 0;
 	console_row = 0;
@@ -480,7 +467,7 @@ static int lcd_init(void *lcdbase)
 	lcd_ctrl_init(lcdbase);
 	lcd_is_enabled = 1;
 	lcd_clear();
-	lcd_enable ();
+	lcd_enable();
 
 	/* Initialize the console */
 	console_col = 0;
@@ -521,7 +508,8 @@ ulong lcd_setmem(ulong addr)
 	/* Allocate pages for the frame buffer. */
 	addr -= size;
 
-	debug("Reserving %ldk for LCD Framebuffer at: %08lx\n", size>>10, addr);
+	debug("Reserving %ldk for LCD Framebuffer at: %08lx\n", size >> 10,
+			addr);
 
 	return addr;
 }
@@ -554,8 +542,6 @@ static int lcd_getbgcolor(void)
 	return lcd_color_bg;
 }
 
-/*----------------------------------------------------------------------*/
-
 /************************************************************************/
 /* ** Chipset depending Bitmap / Logo stuff...                          */
 /************************************************************************/
@@ -572,13 +558,11 @@ static inline ushort *configuration_get_cmap(void)
 	return (ushort *)(panel_info.mmio + ATMEL_LCDC_LUT(0));
 #elif !defined(CONFIG_ATMEL_HLCD) && !defined(CONFIG_EXYNOS_FB)
 	return panel_info.cmap;
-#else
-#if defined(CONFIG_LCD_LOGO)
+#elif defined(CONFIG_LCD_LOGO)
 	return bmp_logo_palette;
 #else
 	return NULL;
 #endif
-#endif
 }
 
 #ifdef CONFIG_LCD_LOGO
@@ -651,7 +635,7 @@ void bitmap_plot(int x, int y)
 		for (i = 0; i < BMP_LOGO_HEIGHT; ++i) {
 			memcpy(fb, bmap, BMP_LOGO_WIDTH);
 			bmap += BMP_LOGO_WIDTH;
-			fb   += panel_info.vl_col;
+			fb += panel_info.vl_col;
 		}
 	}
 	else { /* true color mode */
@@ -742,12 +726,11 @@ static void draw_encoded_bitmap(ushort **fbp, ushort c, int cnt)
 		*fb++ = c;
 		cnt--;
 	}
-	(*fbp) = fb;
+	*fbp = fb;
 }
 
 /*
- * Do not call this function directly, must be called from
- * lcd_display_bitmap.
+ * Do not call this function directly, must be called from lcd_display_bitmap.
  */
 static void lcd_display_rle8_bitmap(bmp_image_t *bmp, ushort *cmap, uchar *fb,
 				    int x_off, int y_off)
@@ -874,8 +857,8 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
 	unsigned long pwidth = panel_info.vl_col;
 	unsigned colors, bpix, bmp_bpix;
 
-	if (!bmp || !((bmp->header.signature[0] == 'B') &&
-		(bmp->header.signature[1] == 'M'))) {
+	if (!bmp || !(bmp->header.signature[0] == 'B' &&
+		bmp->header.signature[1] == 'M')) {
 		printf("Error: no valid bmp image at %lx\n", bmp_image);
 
 		return 1;
@@ -888,7 +871,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
 
 	bpix = NBITS(panel_info.vl_bpix);
 
-	if ((bpix != 1) && (bpix != 8) && (bpix != 16) && (bpix != 32)) {
+	if (bpix != 1 && bpix != 8 && bpix != 16 && bpix != 32) {
 		printf ("Error: %d bit/pixel mode, but BMP has %d bit/pixel\n",
 			bpix, bmp_bpix);
 
@@ -956,7 +939,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
 	}
 #endif
 
-	padded_width = (width&0x3) ? ((width&~0x3)+4) : (width);
+	padded_width = (width & 0x3 ? (width & ~0x3) + 4 : width);
 
 #ifdef CONFIG_SPLASH_SCREEN_ALIGN
 	splash_align_axis(&x, pwidth, width);
@@ -968,7 +951,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
 	if ((y + height) > panel_info.vl_row)
 		height = panel_info.vl_row - y;
 
-	bmap = (uchar *)bmp + le32_to_cpu(bmp->header.data_offset);
+	bmap = (uchar *) bmp + le32_to_cpu(bmp->header.data_offset);
 	fb   = (uchar *) (lcd_base +
 		(y + height - 1) * lcd_line_length + x * bpix / 8);
 
@@ -1003,7 +986,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
 				}
 			}
 			bmap += (padded_width - width);
-			fb   -= (byte_width + lcd_line_length);
+			fb -= byte_width + lcd_line_length;
 		}
 		break;
 
@@ -1015,7 +998,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
 				fb_put_word(&fb, &bmap);
 
 			bmap += (padded_width - width) * 2;
-			fb   -= (width * 2 + lcd_line_length);
+			fb -= width * 2 + lcd_line_length;
 		}
 		break;
 #endif /* CONFIG_BMP_16BPP */
@@ -1029,7 +1012,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
 				*(fb++) = *(bmap++);
 				*(fb++) = *(bmap++);
 			}
-			fb  -= (lcd_line_length + width * (bpix / 8));
+			fb -= lcd_line_length + width * (bpix / 8);
 		}
 		break;
 #endif /* CONFIG_BMP_32BPP */
@@ -1089,7 +1072,7 @@ static void *lcd_logo(void)
 	return (void *)((ulong)lcd_base + BMP_LOGO_HEIGHT * lcd_line_length);
 #else
 	return (void *)lcd_base;
-#endif /* CONFIG_LCD_LOGO && !CONFIG_LCD_INFO_BELOW_LOGO */
+#endif /* CONFIG_LCD_LOGO && !defined(CONFIG_LCD_INFO_BELOW_LOGO) */
 }
 
 void lcd_position_cursor(unsigned col, unsigned row)
@@ -1117,6 +1100,3 @@ int lcd_get_screen_columns(void)
 {
 	return CONSOLE_COLS;
 }
-
-/************************************************************************/
-/************************************************************************/
include/lcd.h +16 -19
index d54a304..c90a5c5 100644
@@ -33,19 +33,19 @@ extern char lcd_is_enabled;
 
 extern struct vidinfo panel_info;
 
-extern void lcd_ctrl_init (void *lcdbase);
-extern void lcd_enable (void);
+void lcd_ctrl_init(void *lcdbase);
+void lcd_enable(void);
 
 /* setcolreg used in 8bpp/16bpp; initcolregs used in monochrome */
-extern void lcd_setcolreg (ushort regno,
+void lcd_setcolreg(ushort regno,
 				ushort red, ushort green, ushort blue);
-extern void lcd_initcolregs (void);
+void lcd_initcolregs(void);
 
-extern int lcd_getfgcolor(void);
+int lcd_getfgcolor(void);
 
 /* gunzip_bmp used if CONFIG_VIDEO_BMP_GZIP */
-extern struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp);
-extern int bmp_display(ulong addr, int x, int y);
+struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp);
+int bmp_display(ulong addr, int x, int y);
 
 /**
  * Set whether we need to flush the dcache when changing the LCD image. This
@@ -256,7 +256,6 @@ typedef struct vidinfo {
 	unsigned int sclk_div;
 
 	unsigned int dual_lcd_enabled;
-
 } vidinfo_t;
 
 void init_panel_info(vidinfo_t *vid);
@@ -281,14 +280,12 @@ extern vidinfo_t panel_info;
 /* Video functions */
 
 #if defined(CONFIG_RBC823)
-void	lcd_disable	(void);
+void	lcd_disable(void);
 #endif
 
-
-/* int	lcd_init	(void *lcdbase); */
-void	lcd_putc	(const char c);
-void	lcd_puts	(const char *s);
-void	lcd_printf	(const char *fmt, ...);
+void	lcd_putc(const char c);
+void	lcd_puts(const char *s);
+void	lcd_printf(const char *fmt, ...);
 void	lcd_clear(void);
 int	lcd_display_bitmap(ulong bmp_image, int x, int y);
 
@@ -348,7 +345,7 @@ int lcd_get_size(int *line_length);
  *  is connected, as we can't autodetect anything.
  */
 #define CONFIG_SYS_HIGH	0	/* Pins are active high			*/
-#define CONFIG_SYS_LOW		1	/* Pins are active low			*/
+#define CONFIG_SYS_LOW	1	/* Pins are active low			*/
 
 #define LCD_MONOCHROME	0
 #define LCD_COLOR2	1
@@ -362,10 +359,10 @@ int lcd_get_size(int *line_length);
 # define LCD_INFO_Y		(BMP_LOGO_HEIGHT + VIDEO_FONT_HEIGHT)
 #elif defined(CONFIG_LCD_LOGO)
 # define LCD_INFO_X		(BMP_LOGO_WIDTH + 4 * VIDEO_FONT_WIDTH)
-# define LCD_INFO_Y		(VIDEO_FONT_HEIGHT)
+# define LCD_INFO_Y		VIDEO_FONT_HEIGHT
 #else
-# define LCD_INFO_X		(VIDEO_FONT_WIDTH)
-# define LCD_INFO_Y		(VIDEO_FONT_HEIGHT)
+# define LCD_INFO_X		VIDEO_FONT_WIDTH
+# define LCD_INFO_Y		VIDEO_FONT_HEIGHT
 #endif
 
 /* Default to 8bpp if bit depth not specified */
@@ -433,7 +430,7 @@ int lcd_get_size(int *line_length);
 
 #define CONSOLE_COLS		(panel_info.vl_col / VIDEO_FONT_WIDTH)
 #define CONSOLE_ROW_SIZE	(VIDEO_FONT_HEIGHT * lcd_line_length)
-#define CONSOLE_ROW_FIRST	(lcd_console_address)
+#define CONSOLE_ROW_FIRST	lcd_console_address
 #define CONSOLE_ROW_SECOND	(lcd_console_address + CONSOLE_ROW_SIZE)
 #define CONSOLE_ROW_LAST	(lcd_console_address + CONSOLE_SIZE \
 					- CONSOLE_ROW_SIZE)
Signature · 1 line
1.7.9.5
#17 lore raw

PATCH v2 7/10 common/lcd: cosmetic: clean up a bit

Hi,

Quoted 7 lines · On Sat, 12 Jan 2013 23:07:56 +0100 Jeroen Hofstee <[email protected]> wrote:

- Make the brackets of the function calls more consistent
- Remove really unnecessary brackets
- Removes the extern from the function definitions
- Remove curly brackets from single line statements
- Remove lcd_setmem proto since it is already in common.h
- Don't init globals to 0

Quoted 6 lines
cc Anatolij Gustschin <[email protected]>
---
 common/lcd.c  |   84 ++++++++++++++++++++++-----------------------------------
 include/lcd.h |   35 +++++++++++-------------
 2 files changed, 48 insertions(+), 71 deletions(-)

merged rebased patch, thanks!

Anatolij

#18 lore raw

PATCH 8/10 lcd, fb: cleanup, remove prototypes already in lcd.h and unused code

In reply to Jeroen Hofstee
cc Anatolij Gustschin <[email protected]>
cc Cliff Brake <[email protected]>
cc John Zhan <[email protected]>
cc Marek Vasut <[email protected]>
cc Wolfgang Denk <[email protected]>
---
 board/mcc200/lcd.c         |    7 -------
 drivers/video/mpc8xx_lcd.c |   40 ----------------------------------------
 drivers/video/pxa_lcd.c    |   33 ---------------------------------
 3 files changed, 80 deletions(-)
board/mcc200/lcd.c +0 -7
index feded49..9d9ce2b 100644
@@ -75,13 +75,6 @@ vidinfo_t panel_info = {
 int serial_inited = 0;
 
 /*
- * Exported functions
- */
-void lcd_initcolregs (void);
-void lcd_ctrl_init (void *lcdbase);
-void lcd_enable (void);
-
-/*
  *  Imported functions to support the PSoC protocol
  */
 extern int serial_init_dev (unsigned long dev_base);
drivers/video/mpc8xx_lcd.c +0 -40
index 1aa1967..f0f728e 100644
@@ -253,23 +253,6 @@ vidinfo_t panel_info = {
     LCD_BPP,  0, 0, 0, 0, 33, 0, 0, 0
 };
 #endif
-/*----------------------------------------------------------------------*/
-
-void lcd_ctrl_init (void *lcdbase);
-void lcd_enable (void);
-#if LCD_BPP == LCD_COLOR8
-void lcd_setcolreg (ushort regno,
-				ushort red, ushort green, ushort blue);
-#endif
-#if LCD_BPP == LCD_MONOCHROME
-void lcd_initcolregs (void);
-#endif
-
-#if defined(CONFIG_RBC823)
-void lcd_disable (void);
-#endif
-
-/************************************************************************/
 
 /************************************************************************/
 /* ----------------- chipset specific functions ----------------------- */
@@ -415,29 +398,6 @@ void lcd_ctrl_init (void *lcdbase)
 
 /*----------------------------------------------------------------------*/
 
-#ifdef	NOT_USED_SO_FAR
-static void
-lcd_getcolreg (ushort regno, ushort *red, ushort *green, ushort *blue)
-{
-	volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
-	volatile cpm8xx_t *cp = &(immr->im_cpm);
-	unsigned short colreg, *cmap_ptr;
-
-	cmap_ptr = (unsigned short *)&cp->lcd_cmap[regno * 2];
-
-	colreg = *cmap_ptr;
-#ifdef	CONFIG_SYS_INVERT_COLORS
-	colreg ^= 0x0FFF;
-#endif
-
-	*red   = (colreg >> 8) & 0x0F;
-	*green = (colreg >> 4) & 0x0F;
-	*blue  =  colreg       & 0x0F;
-}
-#endif	/* NOT_USED_SO_FAR */
-
-/*----------------------------------------------------------------------*/
-
 #if LCD_BPP == LCD_COLOR8
 void
 lcd_setcolreg (ushort regno, ushort red, ushort green, ushort blue)
drivers/video/pxa_lcd.c +0 -33
index fef49c1..b40ec36 100644
@@ -317,26 +317,10 @@ vidinfo_t panel_info = {
 
 /*----------------------------------------------------------------------*/
 
-#if LCD_BPP == LCD_COLOR8
-void lcd_setcolreg (ushort regno, ushort red, ushort green, ushort blue);
-#endif
-#if LCD_BPP == LCD_MONOCHROME
-void lcd_initcolregs (void);
-#endif
-
-#ifdef NOT_USED_SO_FAR
-void lcd_disable (void);
-void lcd_getcolreg (ushort regno, ushort *red, ushort *green, ushort *blue);
-#endif /* NOT_USED_SO_FAR */
-
-void lcd_ctrl_init	(void *lcdbase);
-void lcd_enable	(void);
-
 static int pxafb_init_mem (void *lcdbase, vidinfo_t *vid);
 static void pxafb_setup_gpio (vidinfo_t *vid);
 static void pxafb_enable_controller (vidinfo_t *vid);
 static int pxafb_init (vidinfo_t *vid);
-/************************************************************************/
 
 /************************************************************************/
 /* ---------------  PXA chipset specific functions  ------------------- */
@@ -351,14 +335,6 @@ void lcd_ctrl_init (void *lcdbase)
 }
 
 /*----------------------------------------------------------------------*/
-#ifdef NOT_USED_SO_FAR
-void
-lcd_getcolreg (ushort regno, ushort *red, ushort *green, ushort *blue)
-{
-}
-#endif /* NOT_USED_SO_FAR */
-
-/*----------------------------------------------------------------------*/
 #if LCD_BPP == LCD_COLOR8
 void
 lcd_setcolreg (ushort regno, ushort red, ushort green, ushort blue)
@@ -406,15 +382,6 @@ void lcd_enable (void)
 {
 }
 
-/*----------------------------------------------------------------------*/
-#ifdef	NOT_USED_SO_FAR
-static void lcd_disable (void)
-{
-}
-#endif /* NOT_USED_SO_FAR */
-
-/*----------------------------------------------------------------------*/
-
 /************************************************************************/
 /* ** PXA255 specific routines						*/
 /************************************************************************/
Signature · 1 line
1.7.9.5
#19 lore raw

PATCH 9/10 api/api_display: use the getters for console size info

In reply to Jeroen Hofstee
---
 api/api_display.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
api/api_display.c +2 -2
index 6439170..c167db7 100644
@@ -45,8 +45,8 @@ int display_get_info(int type, struct display_info *di)
 	case DISPLAY_TYPE_LCD:
 		di->pixel_width  = panel_info.vl_col;
 		di->pixel_height = panel_info.vl_row;
-		di->screen_rows = CONSOLE_ROWS;
-		di->screen_cols = CONSOLE_COLS;
+		di->screen_rows = lcd_get_screen_rows();
+		di->screen_cols = lcd_get_screen_columns();
 		break;
 #endif
 	}
Signature · 1 line
1.7.9.5
#20 lore raw

PATCH 9/10 api/api_display: use the getters for console size info

Quoted 24 lines · Jeroen Hofstee
---
 api/api_display.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
api/api_display.c +2 -3
index 6439170..c167db7 100644
@@ -45,8 +45,8 @@ int display_get_info(int type, struct display_info *di)
        case DISPLAY_TYPE_LCD:
                di->pixel_width  = panel_info.vl_col;
                di->pixel_height = panel_info.vl_row;
-               di->screen_rows = CONSOLE_ROWS;
-               di->screen_cols = CONSOLE_COLS;
+               di->screen_rows = lcd_get_screen_rows();
+               di->screen_cols = lcd_get_screen_columns();
                break;
 #endif
        }
--

1.7.9.5

#21 lore raw

PATCH 10/10 common/lcd.c: move the macro's to the c file

In reply to Jeroen Hofstee

Hide the console macros since some reference global data which is no longer present.

cc Anatolij Gustschin <[email protected]>
---
 common/lcd.c  |   28 ++++++++++++++++++++++++++++
 include/lcd.h |   28 ----------------------------
 2 files changed, 28 insertions(+), 28 deletions(-)
common/lcd.c +28 -0
index b21ce7f..1fc5e3b 100644
@@ -81,6 +81,34 @@
 #define CONFIG_CONSOLE_SCROLL_LINES 1
 #endif
 
+/************************************************************************/
+/* ** CONSOLE DEFINITIONS & FUNCTIONS					*/
+/************************************************************************/
+#if defined(CONFIG_LCD_LOGO) && !defined(CONFIG_LCD_INFO_BELOW_LOGO)
+# define CONSOLE_ROWS		((panel_info.vl_row-BMP_LOGO_HEIGHT) \
+					/ VIDEO_FONT_HEIGHT)
+#else
+# define CONSOLE_ROWS		(panel_info.vl_row / VIDEO_FONT_HEIGHT)
+#endif
+
+#define CONSOLE_COLS		(panel_info.vl_col / VIDEO_FONT_WIDTH)
+#define CONSOLE_ROW_SIZE	(VIDEO_FONT_HEIGHT * lcd_line_length)
+#define CONSOLE_ROW_FIRST	lcd_console_address
+#define CONSOLE_ROW_SECOND	(lcd_console_address + CONSOLE_ROW_SIZE)
+#define CONSOLE_ROW_LAST	(lcd_console_address + CONSOLE_SIZE \
+					- CONSOLE_ROW_SIZE)
+#define CONSOLE_SIZE		(CONSOLE_ROW_SIZE * CONSOLE_ROWS)
+#define CONSOLE_SCROLL_SIZE	(CONSOLE_SIZE - CONSOLE_ROW_SIZE)
+
+#if LCD_BPP == LCD_MONOCHROME
+# define COLOR_MASK(c)		((c)	  | (c) << 1 | (c) << 2 | (c) << 3 | \
+				 (c) << 4 | (c) << 5 | (c) << 6 | (c) << 7)
+#elif (LCD_BPP == LCD_COLOR8) || (LCD_BPP == LCD_COLOR16)
+# define COLOR_MASK(c)		(c)
+#else
+# error Unsupported LCD BPP.
+#endif
+
 DECLARE_GLOBAL_DATA_PTR;
 
 static void lcd_drawchars(ushort x, ushort y, uchar *str, int count);
include/lcd.h +0 -28
index c90a5c5..8ff60b7 100644
@@ -419,33 +419,5 @@ int lcd_get_size(int *line_length);
 #endif
 
 /************************************************************************/
-/* ** CONSOLE DEFINITIONS & FUNCTIONS					*/
-/************************************************************************/
-#if defined(CONFIG_LCD_LOGO) && !defined(CONFIG_LCD_INFO_BELOW_LOGO)
-# define CONSOLE_ROWS		((panel_info.vl_row-BMP_LOGO_HEIGHT) \
-					/ VIDEO_FONT_HEIGHT)
-#else
-# define CONSOLE_ROWS		(panel_info.vl_row / VIDEO_FONT_HEIGHT)
-#endif
-
-#define CONSOLE_COLS		(panel_info.vl_col / VIDEO_FONT_WIDTH)
-#define CONSOLE_ROW_SIZE	(VIDEO_FONT_HEIGHT * lcd_line_length)
-#define CONSOLE_ROW_FIRST	lcd_console_address
-#define CONSOLE_ROW_SECOND	(lcd_console_address + CONSOLE_ROW_SIZE)
-#define CONSOLE_ROW_LAST	(lcd_console_address + CONSOLE_SIZE \
-					- CONSOLE_ROW_SIZE)
-#define CONSOLE_SIZE		(CONSOLE_ROW_SIZE * CONSOLE_ROWS)
-#define CONSOLE_SCROLL_SIZE	(CONSOLE_SIZE - CONSOLE_ROW_SIZE)
-
-#if LCD_BPP == LCD_MONOCHROME
-# define COLOR_MASK(c)		((c)	  | (c) << 1 | (c) << 2 | (c) << 3 | \
-				 (c) << 4 | (c) << 5 | (c) << 6 | (c) << 7)
-#elif (LCD_BPP == LCD_COLOR8) || (LCD_BPP == LCD_COLOR16)
-# define COLOR_MASK(c)		(c)
-#else
-# error Unsupported LCD BPP.
-#endif
-
-/************************************************************************/
 
 #endif	/* _LCD_H_ */
Signature · 1 line
1.7.9.5
#22 lore raw

PATCH v2 10/10 common/lcd.c: move the macro's to the c file

Quoted 9 lines · On Sat, 12 Jan 2013 23:07:59 +0100 Jeroen Hofstee <[email protected]> wrote:

Hide the console macros since some reference global data which is no longer present.

cc Anatolij Gustschin <[email protected]>
---
 common/lcd.c  |   28 ++++++++++++++++++++++++++++
 include/lcd.h |   28 ----------------------------
 2 files changed, 28 insertions(+), 28 deletions(-)

merged rebased patch, thanks!

Anatolij

#23 lore raw

v2 cover common.lcd: remove globals and cleanup

In reply to Jeroen Hofstee

As mentioned in http://lists.denx.de/pipermail/u-boot/2013-January/143459.html
there does not seem to be a good reason why the frame buffer driver provide the variables for the lcd internal logic. So lets just remove it. If there is any good reason for a framebuffer driver to "call up" it should do so by a function call and not change the lcd its internal state (and there is actually none doing so at the moment).

This patchset first removes unused drivers and places drivers useing common/lcd.c in drivers/video. Then removes the unneeded globals and thereafter finishes with some cleanups.

This patch goes after http://patchwork.ozlabs.org/patch/209692/
"common/lcd.c: cleanup use of global variables"

Version 2:
Marek Vasut <[email protected]>: use format-patch -M to detect moves Adjust the commit message not to exceed the max line length Fix malformed email address.
check-patch clean (adjusted a space in patch 6)
remove bouncing email addresses and add acks
patch 7 and 10 are unchanged and not reposted

Jeroen Hofstee (10):
lcd, amba: remove this driver since it is not used lcd, tegra: remove unused cursor functions lcd, mpc8xx: move the mpc8xx driver to drivers/video lcd, pxafb: move the pxafb to drivers/video common/lcd.c: cleanup use of global variables common/lcd.c: remove global lcd_base common/lcd: cosmetic: clean up a bit
lcd, fb: remove duplicated prototypes and unused code api/api_display: use the getters for console size info common/lcd.c: move the macro's to the c file

 api/api_display.c                                  |    4 +-
 arch/arm/cpu/pxa/Makefile                          |    1 -
 arch/powerpc/cpu/mpc8xx/Makefile                   |    1 -
 board/mcc200/lcd.c                                 |   21 +---
 common/lcd.c                                       |  117 +++++++++++---------
 drivers/video/Makefile                             |    3 +-
 drivers/video/amba.c                               |   77 -------------
 drivers/video/atmel_hlcdfb.c                       |    8 --
 drivers/video/atmel_lcdfb.c                        |    8 --
 drivers/video/exynos_fb.c                          |   14 +--
 .../cpu/mpc8xx/lcd.c => drivers/video/mpc8xx_lcd.c |   58 +---------
 .../arm/cpu/pxa/pxafb.c => drivers/video/pxa_lcd.c |   41 -------
 drivers/video/tegra.c                              |   64 +----------
 include/configs/R360MPI.h                          |    1 +
 include/configs/RBC823.h                           |    1 +
 include/configs/RPXlite_DW.h                       |    1 +
 include/configs/RRvision.h                         |    4 +-
 include/configs/TQM823L.h                          |    1 +
 include/configs/TQM823M.h                          |    1 +
 include/configs/lubbock.h                          |    1 +
 include/configs/lwmon.h                            |    1 +
 include/configs/palmld.h                           |    1 +
 include/configs/palmtc.h                           |    1 +
 include/configs/pxa255_idp.h                       |    1 +
 include/configs/svm_sc8xx.h                        |    1 +
 include/configs/v37.h                              |    1 +
 include/configs/zipitz2.h                          |    1 +
 include/lcd.h                                      |   71 +++---------
 28 files changed, 109 insertions(+), 396 deletions(-)
 delete mode 100644 drivers/video/amba.c
 rename arch/powerpc/cpu/mpc8xx/lcd.c => drivers/video/mpc8xx_lcd.c (92%)
 rename arch/arm/cpu/pxa/pxafb.c => drivers/video/pxa_lcd.c (93%)

--
1.7.9.5

#24 lore raw

PATCH v2 1/10 lcd, amba: remove this driver since it is not used

Since CONFIG_VIDEO_AMBA is not set by any board, it does not seem to be used, so remove it since there is no way to (compile) test it.

---
 drivers/video/Makefile |    1 -
 drivers/video/amba.c   |   77 ------------------------------------------------
 2 files changed, 78 deletions(-)
 delete mode 100644 drivers/video/amba.c
drivers/video/Makefile +0 -1
index 170a358..8ff3958 100644
@@ -39,7 +39,6 @@ COBJS-$(CONFIG_S6E8AX0) += s6e8ax0.o
 COBJS-$(CONFIG_S6E63D6) += s6e63d6.o
 COBJS-$(CONFIG_LD9040) += ld9040.o
 COBJS-$(CONFIG_SED156X) += sed156x.o
-COBJS-$(CONFIG_VIDEO_AMBA) += amba.o
 COBJS-$(CONFIG_VIDEO_COREBOOT) += coreboot_fb.o
 COBJS-$(CONFIG_VIDEO_CT69000) += ct69000.o videomodes.o
 COBJS-$(CONFIG_VIDEO_DA8XX) += da8xx-fb.o videomodes.o
drivers/video/amba.c deleted +0 -77

77 lines not on this page · raw message

Signature · 1 line
1.7.9.5
#25 lore raw

PATCH v2 2/10 lcd, tegra: remove unused cursor functions

In reply to Jeroen Hofstee
cc Anatolij Gustschin <[email protected]>
cc Simon Glass <[email protected]>
---
 drivers/video/tegra.c |   52 -------------------------------------------------
 1 file changed, 52 deletions(-)
drivers/video/tegra.c +0 -52
index 3709d0b..26a96a5 100644
@@ -73,62 +73,10 @@ vidinfo_t panel_info = {
 	.vl_col = -1,
 };
 
-char lcd_cursor_enabled;
-
-ushort lcd_cursor_width;
-ushort lcd_cursor_height;
-
 #ifndef CONFIG_OF_CONTROL
 #error "You must enable CONFIG_OF_CONTROL to get Tegra LCD support"
 #endif
 
-void lcd_cursor_size(ushort width, ushort height)
-{
-	lcd_cursor_width = width;
-	lcd_cursor_height = height;
-}
-
-void lcd_toggle_cursor(void)
-{
-	ushort x, y;
-	uchar *dest;
-	ushort row;
-
-	x = console_col * lcd_cursor_width;
-	y = console_row * lcd_cursor_height;
-	dest = (uchar *)(lcd_base + y * lcd_line_length + x * (1 << LCD_BPP) /
-			8);
-
-	for (row = 0; row < lcd_cursor_height; ++row, dest += lcd_line_length) {
-		ushort *d = (ushort *)dest;
-		ushort color;
-		int i;
-
-		for (i = 0; i < lcd_cursor_width; ++i) {
-			color = *d;
-			color ^= lcd_getfgcolor();
-			*d = color;
-			++d;
-		}
-	}
-}
-
-void lcd_cursor_on(void)
-{
-	lcd_cursor_enabled = 1;
-	lcd_toggle_cursor();
-}
-void lcd_cursor_off(void)
-{
-	lcd_cursor_enabled = 0;
-	lcd_toggle_cursor();
-}
-
-char lcd_is_cursor_enabled(void)
-{
-	return lcd_cursor_enabled;
-}
-
 static void update_panel_size(struct fdt_disp_config *config)
 {
 	panel_info.vl_col = config->width;
Signature · 1 line
1.7.9.5
#26 lore raw

PATCH v2 3/10 lcd, mpc8xx: move the mpc8xx driver to drivers/video

In reply to Jeroen Hofstee

Since the lcd code was compiled unconditionally in arch also add CONFIG_MPC8XX_LCD to the boards using this driver.

cc Anatolij Gustschin <[email protected]>
cc Wolfgang Denk <[email protected]>
---
 arch/powerpc/cpu/mpc8xx/Makefile                   |    1 -
 drivers/video/Makefile                             |    1 +
 .../cpu/mpc8xx/lcd.c => drivers/video/mpc8xx_lcd.c |    0
 include/configs/R360MPI.h                          |    1 +
 include/configs/RBC823.h                           |    1 +
 include/configs/RPXlite_DW.h                       |    1 +
 include/configs/RRvision.h                         |    4 +++-
 include/configs/TQM823L.h                          |    1 +
 include/configs/TQM823M.h                          |    1 +
 include/configs/lwmon.h                            |    1 +
 include/configs/svm_sc8xx.h                        |    1 +
 include/configs/v37.h                              |    1 +
 12 files changed, 12 insertions(+), 2 deletions(-)
 rename arch/powerpc/cpu/mpc8xx/lcd.c => drivers/video/mpc8xx_lcd.c (100%)
arch/powerpc/cpu/mpc8xx/Makefile +0 -1
index 0d1a12c..ef10e2d 100644
@@ -37,7 +37,6 @@ COBJS-y	+= fec.o
 COBJS-$(CONFIG_OF_LIBFDT) += fdt.o
 COBJS-y	+= i2c.o
 COBJS-y	+= interrupts.o
-COBJS-y	+= lcd.o
 COBJS-y	+= scc.o
 COBJS-y	+= serial.o
 COBJS-y	+= speed.o
drivers/video/Makefile +1 -0
index 8ff3958..20b2e6f 100644
@@ -35,6 +35,7 @@ COBJS-$(CONFIG_EXYNOS_MIPI_DSIM) += exynos_mipi_dsi.o exynos_mipi_dsi_common.o \
 				exynos_mipi_dsi_lowlevel.o
 COBJS-$(CONFIG_EXYNOS_PWM_BL) += exynos_pwm_bl.o
 COBJS-$(CONFIG_FSL_DIU_FB) += fsl_diu_fb.o videomodes.o
+COBJS-$(CONFIG_MPC8XX_LCD) += mpc8xx_lcd.o
 COBJS-$(CONFIG_S6E8AX0) += s6e8ax0.o
 COBJS-$(CONFIG_S6E63D6) += s6e63d6.o
 COBJS-$(CONFIG_LD9040) += ld9040.o
drivers/video/mpc8xx_lcd.c renamed from arch/powerpc/cpu/mpc8xx/lcd.c +0 -0
similarity index 100%
rename from arch/powerpc/cpu/mpc8xx/lcd.c
rename to drivers/video/mpc8xx_lcd.c
include/configs/R360MPI.h +1 -0
index 868a0b8..60cccff 100644
@@ -39,6 +39,7 @@
 #define	CONFIG_SYS_TEXT_BASE	0x40000000
 
 #define CONFIG_LCD
+#define CONFIG_MPC8XX_LCD
 #undef  CONFIG_EDT32F10
 #define CONFIG_SHARP_LQ057Q3DC02
 
include/configs/RBC823.h +1 -0
index b042c67..d4bcc62 100644
@@ -47,6 +47,7 @@
 #endif
 #define CONFIG_KEYBOARD		1	/* This board has a custom keybpard */
 #define CONFIG_LCD		1	/* use LCD controller ...	*/
+#define CONFIG_MPC8XX_LCD
 #define CONFIG_HITACHI_SP19X001_Z1A	/* The LCD type we use */
 
 #define	CONFIG_8xx_CONS_SMC2	1	/* Console is on SMC2		*/
include/configs/RPXlite_DW.h +1 -0
index 67ab1e9..d8e28d5 100644
@@ -54,6 +54,7 @@
 #define	CONFIG_SYS_TEXT_BASE	0xff000000
 
 #ifdef	CONFIG_LCD			/* with LCD controller ?	*/
+#define CONFIG_MPC8XX_LCD
 #define CONFIG_SPLASH_SCREEN		/* ... with splashscreen support*/
 #endif
 
include/configs/RRvision.h +3 -1
index e2b22f0..e2ea016 100644
@@ -110,7 +110,9 @@
 #define	CONFIG_RTC_MPC8xx		/* use internal RTC of MPC8xx	*/
 
 
-#ifndef CONFIG_LCD
+#ifdef CONFIG_LCD
+#define CONFIG_MPC8XX_LCD
+#else
 #define CONFIG_VIDEO		1	/* To enable the video initialization */
 
 /* Video related */
include/configs/TQM823L.h +1 -0
index 9fac5d1..cccf3af 100644
@@ -39,6 +39,7 @@
 #define	CONFIG_SYS_TEXT_BASE	0x40000000
 
 #ifdef	CONFIG_LCD			/* with LCD controller ?	*/
+#define CONFIG_MPC8XX_LCD
 #define CONFIG_LCD_LOGO		1	/* print our logo on the LCD	*/
 #define CONFIG_LCD_INFO		1	/* ... and some board info	*/
 #define	CONFIG_SPLASH_SCREEN		/* ... with splashscreen support*/
include/configs/TQM823M.h +1 -0
index 932f158..b2d1af0 100644
@@ -39,6 +39,7 @@
 #define	CONFIG_SYS_TEXT_BASE	0x40000000
 
 #ifdef	CONFIG_LCD			/* with LCD controller ?	*/
+#define CONFIG_MPC8XX_LCD
 /* #define CONFIG_NEC_NL6448BC20 1 / * use NEC NL6448BC20 display	*/
 #endif
 
include/configs/lwmon.h +1 -0
index df49781..3c02b73 100644
@@ -54,6 +54,7 @@
 #define CONFIG_MISC_INIT_R	1	/* Call misc_init_r()		*/
 
 #define CONFIG_LCD		1	/* use LCD controller ...	*/
+#define CONFIG_MPC8XX_LCD
 #define CONFIG_HLD1045		1	/* ... with a HLD1045 display	*/
 
 #define CONFIG_LCD_LOGO		1	/* print our logo on the LCD	*/
include/configs/svm_sc8xx.h +1 -0
index 2b24997..3c8c74d 100644
@@ -38,6 +38,7 @@
 /* SC85T,SC860T, FEL8xx-AT(855T/860T) */
 /*#define CONFIG_FEL8xx_AT */
 /*#define CONFIG_LCD */
+/*#define CONFIG_MPC8XX_LCD*/
 /* if core > 50MHz , un-comment CONFIG_BUS_DIV2 */
 /* #define CONFIG_50MHz */
 /* #define CONFIG_66MHz */
include/configs/v37.h +1 -0
index e36d249..f9965db 100644
@@ -39,6 +39,7 @@
 #define	CONFIG_SYS_TEXT_BASE	0x40000000
 
 #define CONFIG_LCD
+#define CONFIG_MPC8XX_LCD
 #define CONFIG_SHARP_LQ084V1DG21
 #undef CONFIG_LCD_LOGO
 
Signature · 1 line
1.7.9.5
#27 lore raw

PATCH v2 4/10 lcd, pxafb: move the pxafb to drivers/video

In reply to Jeroen Hofstee

Since the lcd code was compiled unconditionally for pxa also add CONFIG_PXA_LCD to the boards using this framebuffer. Since driver/video contains video and lcd drivers, add lcd to the name to make clear it belongs to common/lcd.c.

cc Anatolij Gustschin <[email protected]>
cc Cliff Brake <[email protected]>
cc Marek Vasut <[email protected]>
---
 arch/arm/cpu/pxa/Makefile                          |    1 -
 drivers/video/Makefile                             |    1 +
 .../arm/cpu/pxa/pxafb.c => drivers/video/pxa_lcd.c |    0
 include/configs/lubbock.h                          |    1 +
 include/configs/palmld.h                           |    1 +
 include/configs/palmtc.h                           |    1 +
 include/configs/pxa255_idp.h                       |    1 +
 include/configs/zipitz2.h                          |    1 +
 8 files changed, 6 insertions(+), 1 deletion(-)
 rename arch/arm/cpu/pxa/pxafb.c => drivers/video/pxa_lcd.c (100%)
arch/arm/cpu/pxa/Makefile +0 -1
index e088832..9f63c34 100644
@@ -33,7 +33,6 @@ COBJS-$(CONFIG_CPU_PXA27X)	= pxa2xx.o
 COBJS-y	+= cpuinfo.o
 
 COBJS	= $(COBJS-y)
-COBJS	+= pxafb.o
 COBJS	+= timer.o
 COBJS	+= usb.o
 
drivers/video/Makefile +1 -0
index 20b2e6f..250aebd 100644
@@ -36,6 +36,7 @@ COBJS-$(CONFIG_EXYNOS_MIPI_DSIM) += exynos_mipi_dsi.o exynos_mipi_dsi_common.o \
 COBJS-$(CONFIG_EXYNOS_PWM_BL) += exynos_pwm_bl.o
 COBJS-$(CONFIG_FSL_DIU_FB) += fsl_diu_fb.o videomodes.o
 COBJS-$(CONFIG_MPC8XX_LCD) += mpc8xx_lcd.o
+COBJS-$(CONFIG_PXA_LCD) += pxa_lcd.o
 COBJS-$(CONFIG_S6E8AX0) += s6e8ax0.o
 COBJS-$(CONFIG_S6E63D6) += s6e63d6.o
 COBJS-$(CONFIG_LD9040) += ld9040.o
drivers/video/pxa_lcd.c renamed from arch/arm/cpu/pxa/pxafb.c +0 -0
similarity index 100%
rename from arch/arm/cpu/pxa/pxafb.c
rename to drivers/video/pxa_lcd.c
include/configs/lubbock.h +1 -0
index 5886a15..b99a056 100644
@@ -38,6 +38,7 @@
 #define CONFIG_LUBBOCK		1	/* on an LUBBOCK Board	    */
 #define CONFIG_LCD		1
 #ifdef CONFIG_LCD
+#define CONFIG_PXA_LCD
 #define CONFIG_SHARP_LM8V31
 #endif
 #define CONFIG_MMC
include/configs/palmld.h +1 -0
index 3f9802c..4ee2e46 100644
@@ -72,6 +72,7 @@
 #define	CONFIG_CMD_MMC
 #define	CONFIG_CMD_IDE
 #define	CONFIG_LCD
+#define	CONFIG_PXA_LCD
 
 /*
  * MMC Card Configuration
include/configs/palmtc.h +1 -0
index 64771e7..70fe05c 100644
@@ -74,6 +74,7 @@
 #define	CONFIG_CMD_ENV
 #define	CONFIG_CMD_MMC
 #define	CONFIG_LCD
+#define	CONFIG_PXA_LCD
 
 /*
  * MMC Card Configuration
include/configs/pxa255_idp.h +1 -0
index 5a15af6..39c167f 100644
@@ -59,6 +59,7 @@
 
 #undef CONFIG_LCD
 #ifdef CONFIG_LCD
+#define CONFIG_PXA_LCD
 #define CONFIG_SHARP_LM8V31
 #endif
 
include/configs/zipitz2.h +1 -0
index b92f70b..f79dd3b 100644
@@ -103,6 +103,7 @@
 #ifdef	CONFIG_CMD_SPI
 #define	CONFIG_SOFT_SPI
 #define	CONFIG_LCD
+#define	CONFIG_PXA_LCD
 #define	CONFIG_LMS283GF05
 #define	CONFIG_VIDEO_LOGO
 #define	CONFIG_CMD_BMP
Signature · 1 line
1.7.9.5
#28 lore raw

PATCH v2 5/10 common/lcd.c: cleanup use of global variables

In reply to Jeroen Hofstee

console_col, console_row, lcd_line_length, lcd_console_address had to be declared in board / driver specific code, but were not actually used there. Get rid of the global variables.

for completeness, the ack of Bo Shen is for the atmel part

Cc Alessandro Rubini <[email protected]>
Cc Anatolij Gustschin <[email protected]>
Cc Bo Shen <[email protected]>
Cc Kyungmin Park <[email protected]>
Cc Marek Vasut <[email protected]>
Cc Minkyu Kang <[email protected]>
Cc Nikita Kiryanov <[email protected]>
Cc Simon Glass <[email protected]>
Cc Stelian Pop <[email protected]>
Cc Tom Warren <[email protected]>
---
 board/mcc200/lcd.c           |    6 ------
 common/lcd.c                 |    6 ++++++
 drivers/video/atmel_hlcdfb.c |    6 ------
 drivers/video/atmel_lcdfb.c  |    6 ------
 drivers/video/exynos_fb.c    |    6 ------
 drivers/video/mpc8xx_lcd.c   |    6 ------
 drivers/video/pxa_lcd.c      |    6 ------
 drivers/video/tegra.c        |    6 ------
 include/lcd.h                |    5 -----
 9 files changed, 6 insertions(+), 47 deletions(-)
board/mcc200/lcd.c +0 -6
index 0f3f585..caf8d8b 100644
@@ -68,16 +68,10 @@ vidinfo_t panel_info = {
 	LCD_WIDTH, LCD_HEIGHT, LCD_BPP
 };
 
-int lcd_line_length;
-
 /*
  * Frame buffer memory information
  */
 void *lcd_base;			/* Start of framebuffer memory  */
-void *lcd_console_address;	/* Start of console buffer      */
-
-short console_col = 0;
-short console_row = 0;
 
 /*
  *  The device we use to communicate with PSoC
common/lcd.c +6 -0
index 2884f66..585ae8e 100644
@@ -99,9 +99,15 @@ static void lcd_setbgcolor(int color);
 
 static int lcd_color_fg;
 static int lcd_color_bg;
+static int lcd_line_length;
 
 char lcd_is_enabled = 0;
 
+static short console_col;
+static short console_row;
+
+static void *lcd_console_address;
+
 static char lcd_flush_dcache;	/* 1 to flush dcache after each lcd update */
 
 
drivers/video/atmel_hlcdfb.c +0 -6
index e74eb65..32626cf 100644
@@ -29,13 +29,7 @@
 #include <lcd.h>
 #include <atmel_hlcdc.h>
 
-int lcd_line_length;
-
 void *lcd_base;				/* Start of framebuffer memory	*/
-void *lcd_console_address;		/* Start of console buffer	*/
-
-short console_col;
-short console_row;
 
 /* configurable parameters */
 #define ATMEL_LCDC_CVAL_DEFAULT		0xc8
drivers/video/atmel_lcdfb.c +0 -6
index d96f175..370d9ca 100644
@@ -29,13 +29,7 @@
 #include <lcd.h>
 #include <atmel_lcdc.h>
 
-int lcd_line_length;
-
 void *lcd_base;				/* Start of framebuffer memory	*/
-void *lcd_console_address;		/* Start of console buffer	*/
-
-short console_col;
-short console_row;
 
 /* configurable parameters */
 #define ATMEL_LCDC_CVAL_DEFAULT		0xc8
drivers/video/exynos_fb.c +0 -6
index 4536c5c..82b19e5 100644
@@ -33,13 +33,7 @@
 
 #include "exynos_fb.h"
 
-int lcd_line_length;
-
 void *lcd_base;
-void *lcd_console_address;
-
-short console_col;
-short console_row;
 
 static unsigned int panel_width, panel_height;
 
drivers/video/mpc8xx_lcd.c +0 -6
index 4fd44ac..26ad432 100644
@@ -256,16 +256,10 @@ vidinfo_t panel_info = {
 /*----------------------------------------------------------------------*/
 
 
-int lcd_line_length;
-
 /*
  * Frame buffer memory information
  */
 void *lcd_base;			/* Start of framebuffer memory	*/
-void *lcd_console_address;	/* Start of console buffer	*/
-
-short console_col;
-short console_row;
 
 /************************************************************************/
 
drivers/video/pxa_lcd.c +0 -6
index 25747b1..57243ce 100644
@@ -332,13 +332,7 @@ void lcd_getcolreg (ushort regno, ushort *red, ushort *green, ushort *blue);
 void lcd_ctrl_init	(void *lcdbase);
 void lcd_enable	(void);
 
-int lcd_line_length;
-
 void *lcd_base;			/* Start of framebuffer memory	*/
-void *lcd_console_address;		/* Start of console buffer	*/
-
-short console_col;
-short console_row;
 
 static int pxafb_init_mem (void *lcdbase, vidinfo_t *vid);
 static void pxafb_setup_gpio (vidinfo_t *vid);
drivers/video/tegra.c +0 -6
index 26a96a5..0d1cfa9 100644
@@ -60,13 +60,7 @@ enum {
 	LCD_MAX_LOG2_BPP	= 4,		/* 2^4 = 16 bpp */
 };
 
-int lcd_line_length;
-
 void *lcd_base;			/* Start of framebuffer memory	*/
-void *lcd_console_address;	/* Start of console buffer	*/
-
-short console_col;
-short console_row;
 
 vidinfo_t panel_info = {
 	/* Insert a value here so that we don't end up in the BSS */
include/lcd.h +0 -5
index 7d8c41f..b8eea9c 100644
@@ -31,16 +31,11 @@
 
 extern char lcd_is_enabled;
 
-extern int lcd_line_length;
-
 /*
  * Frame buffer memory information
  */
 extern void *lcd_base;			/* Start of framebuffer memory	*/
-extern void *lcd_console_address;	/* Start of console buffer	*/
 
-extern short console_col;
-extern short console_row;
 extern struct vidinfo panel_info;
 
 extern void lcd_ctrl_init (void *lcdbase);
Signature · 1 line
1.7.9.5
#29 lore raw

PATCH v2 6/10 common/lcd.c: remove global lcd_base

In reply to Jeroen Hofstee

lcd_base is available as gd->fb_base as well, there is no need to keep a seperate copy.

For completeness the ack of Bo Shen is for the atmel part.

Cc Alessandro Rubini <[email protected]>
Cc Anatolij Gustschin <[email protected]>
Cc Bo Shen <[email protected]>
Cc Haavard Skinnemoen <[email protected]>
Cc Kyungmin Park <[email protected]>
Cc Marek Vasut <[email protected]>
Cc Minkyu Kang <[email protected]>
Cc Nikita Kiryanov <[email protected]>
Cc Simon Glass <[email protected]>
Cc Stelian Pop <[email protected]>
Cc Tom Warren <[email protected]>
---
 board/mcc200/lcd.c           |    8 ++------
 common/lcd.c                 |    1 +
 drivers/video/atmel_hlcdfb.c |    2 --
 drivers/video/atmel_lcdfb.c  |    2 --
 drivers/video/exynos_fb.c    |    8 +++-----
 drivers/video/mpc8xx_lcd.c   |   12 ++----------
 drivers/video/pxa_lcd.c      |    2 --
 drivers/video/tegra.c        |    6 +-----
 include/lcd.h                |    5 -----
 9 files changed, 9 insertions(+), 37 deletions(-)
board/mcc200/lcd.c +2 -6
index caf8d8b..1901908 100644
@@ -68,10 +68,6 @@ vidinfo_t panel_info = {
 	LCD_WIDTH, LCD_HEIGHT, LCD_BPP
 };
 
-/*
- * Frame buffer memory information
- */
-void *lcd_base;			/* Start of framebuffer memory  */
 
 /*
  *  The device we use to communicate with PSoC
@@ -147,12 +143,12 @@ void lcd_enable (void)
 
 #if !defined(SWAPPED_LCD)
 	for (i=0; i<fb_size; i++) {
-		serial_putc_raw_dev (PSOC_PSC, ((char *)lcd_base)[i]);
+		serial_putc_raw_dev(PSOC_PSC, ((char *)gd->fb_base)[i]);
 	}
 #else
     {
 	int x, y, pwidth;
-	char *p = (char *)lcd_base;
+	char *p = (char *)gd->fb_base;
 
 	pwidth = ((panel_info.vl_col+7) >> 3);
 	for (y=0; y<panel_info.vl_row; y++) {
common/lcd.c +1 -0
index 585ae8e..59ca3b5 100644
@@ -107,6 +107,7 @@ static short console_col;
 static short console_row;
 
 static void *lcd_console_address;
+static void *lcd_base;			/* Start of framebuffer memory	*/
 
 static char lcd_flush_dcache;	/* 1 to flush dcache after each lcd update */
 
drivers/video/atmel_hlcdfb.c +0 -2
index 32626cf..fc95897 100644
@@ -29,8 +29,6 @@
 #include <lcd.h>
 #include <atmel_hlcdc.h>
 
-void *lcd_base;				/* Start of framebuffer memory	*/
-
 /* configurable parameters */
 #define ATMEL_LCDC_CVAL_DEFAULT		0xc8
 #define ATMEL_LCDC_DMA_BURST_LEN	8
drivers/video/atmel_lcdfb.c +0 -2
index 370d9ca..2afeab2 100644
@@ -29,8 +29,6 @@
 #include <lcd.h>
 #include <atmel_lcdc.h>
 
-void *lcd_base;				/* Start of framebuffer memory	*/
-
 /* configurable parameters */
 #define ATMEL_LCDC_CVAL_DEFAULT		0xc8
 #define ATMEL_LCDC_DMA_BURST_LEN	8
drivers/video/exynos_fb.c +3 -5
index 82b19e5..c0f1830 100644
@@ -33,7 +33,7 @@
 
 #include "exynos_fb.h"
 
-void *lcd_base;
+DECLARE_GLOBAL_DATA_PTR;
 
 static unsigned int panel_width, panel_height;
 
@@ -44,11 +44,9 @@ static void exynos_lcd_init_mem(void *lcdbase, vidinfo_t *vid)
 
 	fb_size = vid->vl_row * vid->vl_col * (NBITS(vid->vl_bpix) >> 3);
 
-	lcd_base = lcdbase;
-
 	palette_size = NBITS(vid->vl_bpix) == 8 ? 256 : 16;
 
-	exynos_fimd_lcd_init_mem((unsigned long)lcd_base,
+	exynos_fimd_lcd_init_mem((unsigned long)lcdbase,
 			(unsigned long)fb_size, palette_size);
 }
 
@@ -140,7 +138,7 @@ void lcd_ctrl_init(void *lcdbase)
 void lcd_enable(void)
 {
 	if (panel_info.logo_on) {
-		memset(lcd_base, 0, panel_width * panel_height *
+		memset((void *) gd->fb_base, 0, panel_width * panel_height *
 				(NBITS(panel_info.vl_bpix) >> 3));
 #ifdef CONFIG_CMD_BMP
 		draw_logo();
drivers/video/mpc8xx_lcd.c +2 -10
index 26ad432..1aa1967 100644
@@ -255,14 +255,6 @@ vidinfo_t panel_info = {
 #endif
 /*----------------------------------------------------------------------*/
 
-
-/*
- * Frame buffer memory information
- */
-void *lcd_base;			/* Start of framebuffer memory	*/
-
-/************************************************************************/
-
 void lcd_ctrl_init (void *lcdbase);
 void lcd_enable (void);
 #if LCD_BPP == LCD_COLOR8
@@ -392,8 +384,8 @@ void lcd_ctrl_init (void *lcdbase)
 	 * BIG NOTE:  This has to be modified to load A and B depending
 	 * upon the split mode of the LCD.
 	 */
-	lcdp->lcd_lcfaa = (ulong)lcd_base;
-	lcdp->lcd_lcfba = (ulong)lcd_base;
+	lcdp->lcd_lcfaa = (ulong)lcdbase;
+	lcdp->lcd_lcfba = (ulong)lcdbase;
 
 	/* MORE HACKS...This must be updated according to 823 manual
 	 * for different panels.
drivers/video/pxa_lcd.c +0 -2
index 57243ce..fef49c1 100644
@@ -332,8 +332,6 @@ void lcd_getcolreg (ushort regno, ushort *red, ushort *green, ushort *blue);
 void lcd_ctrl_init	(void *lcdbase);
 void lcd_enable	(void);
 
-void *lcd_base;			/* Start of framebuffer memory	*/
-
 static int pxafb_init_mem (void *lcdbase, vidinfo_t *vid);
 static void pxafb_setup_gpio (vidinfo_t *vid);
 static void pxafb_enable_controller (vidinfo_t *vid);
drivers/video/tegra.c +1 -5
index 0d1cfa9..941551c 100644
@@ -60,8 +60,6 @@ enum {
 	LCD_MAX_LOG2_BPP	= 4,		/* 2^4 = 16 bpp */
 };
 
-void *lcd_base;			/* Start of framebuffer memory	*/
-
 vidinfo_t panel_info = {
 	/* Insert a value here so that we don't end up in the BSS */
 	.vl_col = -1,
@@ -90,8 +88,6 @@ void lcd_ctrl_init(void *lcdbase)
 
 	assert(disp_config);
 
-	lcd_base = (void *)disp_config->frame_buffer;
-
 	/* Make sure that we can acommodate the selected LCD */
 	assert(disp_config->width <= LCD_MAX_WIDTH);
 	assert(disp_config->height <= LCD_MAX_HEIGHT);
@@ -112,7 +108,7 @@ void lcd_ctrl_init(void *lcdbase)
 	/* Enable flushing after LCD writes if requested */
 	lcd_set_flush_dcache(config.cache_type & FDT_LCD_CACHE_FLUSH);
 
-	debug("LCD frame buffer at %p\n", lcd_base);
+	debug("LCD frame buffer@%08X\n", disp_config->frame_buffer);
 }
 
 ulong calc_fbsize(void)
include/lcd.h +0 -5
index b8eea9c..d54a304 100644
@@ -31,11 +31,6 @@
 
 extern char lcd_is_enabled;
 
-/*
- * Frame buffer memory information
- */
-extern void *lcd_base;			/* Start of framebuffer memory	*/
-
 extern struct vidinfo panel_info;
 
 extern void lcd_ctrl_init (void *lcdbase);
Signature · 1 line
1.7.9.5
#30 lore raw

PATCH v2 8/10 lcd, fb: remove duplicated prototypes and unused code

In reply to Jeroen Hofstee
cc Anatolij Gustschin <[email protected]>
cc Cliff Brake <[email protected]>
cc John Zhan <[email protected]>
cc Marek Vasut <[email protected]>
cc Wolfgang Denk <[email protected]>
---
 board/mcc200/lcd.c         |    7 -------
 drivers/video/mpc8xx_lcd.c |   40 ----------------------------------------
 drivers/video/pxa_lcd.c    |   33 ---------------------------------
 3 files changed, 80 deletions(-)
board/mcc200/lcd.c +0 -7
index 1901908..24f0abd 100644
@@ -75,13 +75,6 @@ vidinfo_t panel_info = {
 int serial_inited = 0;
 
 /*
- * Exported functions
- */
-void lcd_initcolregs (void);
-void lcd_ctrl_init (void *lcdbase);
-void lcd_enable (void);
-
-/*
  *  Imported functions to support the PSoC protocol
  */
 extern int serial_init_dev (unsigned long dev_base);
drivers/video/mpc8xx_lcd.c +0 -40
index 1aa1967..f0f728e 100644
@@ -253,23 +253,6 @@ vidinfo_t panel_info = {
     LCD_BPP,  0, 0, 0, 0, 33, 0, 0, 0
 };
 #endif
-/*----------------------------------------------------------------------*/
-
-void lcd_ctrl_init (void *lcdbase);
-void lcd_enable (void);
-#if LCD_BPP == LCD_COLOR8
-void lcd_setcolreg (ushort regno,
-				ushort red, ushort green, ushort blue);
-#endif
-#if LCD_BPP == LCD_MONOCHROME
-void lcd_initcolregs (void);
-#endif
-
-#if defined(CONFIG_RBC823)
-void lcd_disable (void);
-#endif
-
-/************************************************************************/
 
 /************************************************************************/
 /* ----------------- chipset specific functions ----------------------- */
@@ -415,29 +398,6 @@ void lcd_ctrl_init (void *lcdbase)
 
 /*----------------------------------------------------------------------*/
 
-#ifdef	NOT_USED_SO_FAR
-static void
-lcd_getcolreg (ushort regno, ushort *red, ushort *green, ushort *blue)
-{
-	volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
-	volatile cpm8xx_t *cp = &(immr->im_cpm);
-	unsigned short colreg, *cmap_ptr;
-
-	cmap_ptr = (unsigned short *)&cp->lcd_cmap[regno * 2];
-
-	colreg = *cmap_ptr;
-#ifdef	CONFIG_SYS_INVERT_COLORS
-	colreg ^= 0x0FFF;
-#endif
-
-	*red   = (colreg >> 8) & 0x0F;
-	*green = (colreg >> 4) & 0x0F;
-	*blue  =  colreg       & 0x0F;
-}
-#endif	/* NOT_USED_SO_FAR */
-
-/*----------------------------------------------------------------------*/
-
 #if LCD_BPP == LCD_COLOR8
 void
 lcd_setcolreg (ushort regno, ushort red, ushort green, ushort blue)
drivers/video/pxa_lcd.c +0 -33
index fef49c1..b40ec36 100644
@@ -317,26 +317,10 @@ vidinfo_t panel_info = {
 
 /*----------------------------------------------------------------------*/
 
-#if LCD_BPP == LCD_COLOR8
-void lcd_setcolreg (ushort regno, ushort red, ushort green, ushort blue);
-#endif
-#if LCD_BPP == LCD_MONOCHROME
-void lcd_initcolregs (void);
-#endif
-
-#ifdef NOT_USED_SO_FAR
-void lcd_disable (void);
-void lcd_getcolreg (ushort regno, ushort *red, ushort *green, ushort *blue);
-#endif /* NOT_USED_SO_FAR */
-
-void lcd_ctrl_init	(void *lcdbase);
-void lcd_enable	(void);
-
 static int pxafb_init_mem (void *lcdbase, vidinfo_t *vid);
 static void pxafb_setup_gpio (vidinfo_t *vid);
 static void pxafb_enable_controller (vidinfo_t *vid);
 static int pxafb_init (vidinfo_t *vid);
-/************************************************************************/
 
 /************************************************************************/
 /* ---------------  PXA chipset specific functions  ------------------- */
@@ -351,14 +335,6 @@ void lcd_ctrl_init (void *lcdbase)
 }
 
 /*----------------------------------------------------------------------*/
-#ifdef NOT_USED_SO_FAR
-void
-lcd_getcolreg (ushort regno, ushort *red, ushort *green, ushort *blue)
-{
-}
-#endif /* NOT_USED_SO_FAR */
-
-/*----------------------------------------------------------------------*/
 #if LCD_BPP == LCD_COLOR8
 void
 lcd_setcolreg (ushort regno, ushort red, ushort green, ushort blue)
@@ -406,15 +382,6 @@ void lcd_enable (void)
 {
 }
 
-/*----------------------------------------------------------------------*/
-#ifdef	NOT_USED_SO_FAR
-static void lcd_disable (void)
-{
-}
-#endif /* NOT_USED_SO_FAR */
-
-/*----------------------------------------------------------------------*/
-
 /************************************************************************/
 /* ** PXA255 specific routines						*/
 /************************************************************************/
Signature · 1 line
1.7.9.5
#31 lore raw

PATCH v2 9/10 api/api_display: use the getters for console size info

In reply to Jeroen Hofstee
---
 api/api_display.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
api/api_display.c +2 -2
index 6439170..c167db7 100644
@@ -45,8 +45,8 @@ int display_get_info(int type, struct display_info *di)
 	case DISPLAY_TYPE_LCD:
 		di->pixel_width  = panel_info.vl_col;
 		di->pixel_height = panel_info.vl_row;
-		di->screen_rows = CONSOLE_ROWS;
-		di->screen_cols = CONSOLE_COLS;
+		di->screen_rows = lcd_get_screen_rows();
+		di->screen_cols = lcd_get_screen_columns();
 		break;
 #endif
 	}
Signature · 1 line
1.7.9.5
#32 lore raw

v2 cover common.lcd: remove globals and cleanup

In reply to Jeroen Hofstee

Hi,

Quoted 58 lines · On Tue, 22 Jan 2013 21:44:06 +0100 Jeroen Hofstee <[email protected]> wrote:

As mentioned in http://lists.denx.de/pipermail/u-boot/2013-January/143459.html
there does not seem to be a good reason why the frame buffer driver provide the variables for the lcd internal logic. So lets just remove it. If there is any good reason for a framebuffer driver to "call up" it should do so by a function call and not change the lcd its internal state (and there is actually none doing so at the moment).

This patchset first removes unused drivers and places drivers useing common/lcd.c in drivers/video. Then removes the unneeded globals and thereafter finishes with some cleanups.

This patch goes after http://patchwork.ozlabs.org/patch/209692/
"common/lcd.c: cleanup use of global variables"

Version 2:
Marek Vasut <[email protected]>: use format-patch -M to detect moves Adjust the commit message not to exceed the max line length Fix malformed email address.
check-patch clean (adjusted a space in patch 6)
remove bouncing email addresses and add acks
patch 7 and 10 are unchanged and not reposted

Jeroen Hofstee (10):
lcd, amba: remove this driver since it is not used lcd, tegra: remove unused cursor functions lcd, mpc8xx: move the mpc8xx driver to drivers/video lcd, pxafb: move the pxafb to drivers/video common/lcd.c: cleanup use of global variables common/lcd.c: remove global lcd_base common/lcd: cosmetic: clean up a bit
lcd, fb: remove duplicated prototypes and unused code api/api_display: use the getters for console size info common/lcd.c: move the macro's to the c file

 api/api_display.c                                  |    4 +-
 arch/arm/cpu/pxa/Makefile                          |    1 -
 arch/powerpc/cpu/mpc8xx/Makefile                   |    1 -
 board/mcc200/lcd.c                                 |   21 +---
 common/lcd.c                                       |  117 +++++++++++---------
 drivers/video/Makefile                             |    3 +-
 drivers/video/amba.c                               |   77 -------------
 drivers/video/atmel_hlcdfb.c                       |    8 --
 drivers/video/atmel_lcdfb.c                        |    8 --
 drivers/video/exynos_fb.c                          |   14 +--
 .../cpu/mpc8xx/lcd.c => drivers/video/mpc8xx_lcd.c |   58 +---------
 .../arm/cpu/pxa/pxafb.c => drivers/video/pxa_lcd.c |   41 -------
 drivers/video/tegra.c                              |   64 +----------
 include/configs/R360MPI.h                          |    1 +
 include/configs/RBC823.h                           |    1 +
 include/configs/RPXlite_DW.h                       |    1 +
 include/configs/RRvision.h                         |    4 +-
 include/configs/TQM823L.h                          |    1 +
 include/configs/TQM823M.h                          |    1 +
 include/configs/lubbock.h                          |    1 +
 include/configs/lwmon.h                            |    1 +
 include/configs/palmld.h                           |    1 +
 include/configs/palmtc.h                           |    1 +
 include/configs/pxa255_idp.h                       |    1 +
Quoted 8 lines
 include/configs/svm_sc8xx.h                        |    1 +
 include/configs/v37.h                              |    1 +
 include/configs/zipitz2.h                          |    1 +
 include/lcd.h                                      |   71 +++---------
 28 files changed, 109 insertions(+), 396 deletions(-)
 delete mode 100644 drivers/video/amba.c
 rename arch/powerpc/cpu/mpc8xx/lcd.c => drivers/video/mpc8xx_lcd.c (92%)
 rename arch/arm/cpu/pxa/pxafb.c => drivers/video/pxa_lcd.c (93%)

Merged this series after rebasing, also merged patches 7 and 10 from previous series. Thanks!

Anatolij