common.lcd: remove globals and cleanup
Subsystems (6)
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
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.
--- 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
@@ -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
PATCH 1/10 lcd, amba: remove this frame buffer driver since it is not used
Hello.
Quoted 2 lines
Since
CONFIG_VIDEO_AMBAis 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
PATCH 2/10 lcd, tegra: remove unused cursor functions
In reply to Jeroen Hofstee--- drivers/video/tegra.c | 52 ------------------------------------------------- 1 file changed, 52 deletions(-)
drivers/video/tegra.c +0 -52
@@ -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
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>Signed-off-by Jeroen Hofstee <[email protected]>--- drivers/video/tegra.c | 52 ------------------------------------------------- 1 file changed, 52 deletions(-)drivers/video/tegra.c +0
-52@@ -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;
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>Signed-off-by Jeroen Hofstee <[email protected]>
Quoted 78 lines
--- drivers/video/tegra.c | 52 ------------------------------------------------- 1 file changed, 52 deletions(-)drivers/video/tegra.c +0
-53@@ -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
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>Signed-off-by Jeroen Hofstee <[email protected]>Acked-by Simon Glass <[email protected]>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
-03709d0b..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
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
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 functionsHello 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
PATCH 3/10 lcd, mpc8xx: move the mpc8xx frame buffer driver to drivers/video
In reply to Jeroen HofsteeSince the lcd code was compiled unconditionally in arch also add CONFIG_MPC8XX_LCD to the boards using this driver.
--- 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH 4/10 lcd, pxafb: move the pxafb to drivers/video
In reply to Jeroen HofsteeSince 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.
--- 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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_LCDto the boards using this framebuffer. Since the driver/video contains video and lcd driver add lcd to the name to make clear it belongs tocommon/lcd.c.cc Anatolij Gustschin <[email protected]>cc Cliff Brake <[email protected]>cc Marek Vasut <[email protected]>Signed-off-by Jeroen Hofstee <[email protected]>
git format-patch -MC
Otherwise
Best regards,
Marek Vasut
PATCH 5/10 common/lcd.c: cleanup use of global variables
In reply to Jeroen Hofsteeconsole_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.
--- 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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_addresshad 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]>Signed-off-by Jeroen Hofstee <[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@@ -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@@ -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@@ -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 0xc8drivers/video/atmel_lcdfb.c +0
-0@@ -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@@ -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@@ -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@@ -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@@ -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@@ -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);
PATCH 6/10 common/lcd.c: remove global lcd_base
In reply to Jeroen Hofsteelcd_base is available as gd->fb_base as well, there is no need to keep a seperate copy.
--- 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH 6/10 common/lcd.c: remove global lcd_base
Quoted 87 lines · Jeroen Hofstee
lcd_baseis available asgd->fb_baseas 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]>Signed-off-by Jeroen Hofstee <[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@@ -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@@ -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@@ -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 8drivers/video/atmel_lcdfb.c +0
-0
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@@ -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@@ -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@@ -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@@ -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@@ -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);
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
--- common/lcd.c | 84 ++++++++++++++++++++++----------------------------------- include/lcd.h | 35 +++++++++++------------- 2 files changed, 48 insertions(+), 71 deletions(-)
common/lcd.c +32 -52
@@ -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
@@ -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
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
- Removelcd_setmemproto since it is already incommon.h
- Don't init globals to 0
Quoted 6 lines
cc Anatolij Gustschin <[email protected]>Signed-off-by Jeroen Hofstee <[email protected]>--- common/lcd.c | 84 ++++++++++++++++++++++----------------------------------- include/lcd.h | 35 +++++++++++------------- 2 files changed, 48 insertions(+), 71 deletions(-)
merged rebased patch, thanks!
Anatolij
PATCH 8/10 lcd, fb: cleanup, remove prototypes already in lcd.h and unused code
In reply to Jeroen Hofstee--- 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
@@ -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
@@ -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
@@ -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
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
@@ -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
PATCH 9/10 api/api_display: use the getters for console size info
Quoted 24 lines · Jeroen Hofstee
cc Che-Liang Chiou <[email protected]>Signed-off-by Jeroen Hofstee <[email protected]>--- api/api_display.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)api/api_display.c +2
-3@@ -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
PATCH 10/10 common/lcd.c: move the macro's to the c file
In reply to Jeroen HofsteeHide the console macros since some reference global data which is no longer present.
--- common/lcd.c | 28 ++++++++++++++++++++++++++++ include/lcd.h | 28 ---------------------------- 2 files changed, 28 insertions(+), 28 deletions(-)
common/lcd.c +28 -0
@@ -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
@@ -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
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]>Signed-off-by Jeroen Hofstee <[email protected]>--- common/lcd.c | 28 ++++++++++++++++++++++++++++ include/lcd.h | 28 ---------------------------- 2 files changed, 28 insertions(+), 28 deletions(-)
merged rebased patch, thanks!
Anatolij
v2 cover common.lcd: remove globals and cleanup
In reply to Jeroen HofsteeAs 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
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
@@ -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
PATCH v2 2/10 lcd, tegra: remove unused cursor functions
In reply to Jeroen Hofstee--- drivers/video/tegra.c | 52 ------------------------------------------------- 1 file changed, 52 deletions(-)
drivers/video/tegra.c +0 -52
@@ -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
PATCH v2 3/10 lcd, mpc8xx: move the mpc8xx driver to drivers/video
In reply to Jeroen HofsteeSince the lcd code was compiled unconditionally in arch also add CONFIG_MPC8XX_LCD to the boards using this driver.
--- 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
@@ -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
@@ -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
include/configs/R360MPI.h +1 -0
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH v2 4/10 lcd, pxafb: move the pxafb to drivers/video
In reply to Jeroen HofsteeSince 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.
--- 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
@@ -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
@@ -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
include/configs/lubbock.h +1 -0
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH v2 5/10 common/lcd.c: cleanup use of global variables
In reply to Jeroen Hofsteeconsole_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
--- 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH v2 6/10 common/lcd.c: remove global lcd_base
In reply to Jeroen Hofsteelcd_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.
--- 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH v2 8/10 lcd, fb: remove duplicated prototypes and unused code
In reply to Jeroen Hofstee--- 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
@@ -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
@@ -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
@@ -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
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
@@ -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
v2 cover common.lcd: remove globals and cleanup
In reply to Jeroen HofsteeHi,
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.cindrivers/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 repostedJeroen Hofstee (10):
lcd, amba: remove this driver since it is not used lcd, tegra: remove unused cursor functions lcd, mpc8xx: move the mpc8xx driver todrivers/videolcd, pxafb: move the pxafb todrivers/videocommon/lcd.c: cleanup use of global variablescommon/lcd.c: remove globallcd_basecommon/lcd: cosmetic: clean up a bit
lcd, fb: remove duplicated prototypes and unused code api/api_display: use the getters for console size infocommon/lcd.c: move the macro's to the c fileapi/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