[U-Boot] [PATCH V2 00/13] common lcd refactor
Bo Shen
voice.shen at atmel.com
Wed Feb 4 09:03:19 CET 2015
Hi Nikita Kiryanov,
On 02/03/2015 07:32 PM, Nikita Kiryanov wrote:
> This series is part of my ongoing efforts to cleanup common/lcd code (and at
> some point merge it with the CONFIG_VIDEO code).
> This series focuses on eliminating platform specific #defines from lcd.c code,
> and then adds a few platform independent code refactors and cleanups on top of
> that. A small note on the series:
>
> - The patch "lcd: split configuration_get_cmap" turned out to be a little
> problematic: the goal was to move all platform specific code to the appropriate
> lcd/fb drivers, and keep the generic case in lcd.c as a weak function.
> This was not possible to do for configuration_get_cmap(), because the weak
> version still has to compile even if it is overridden, and unfortunately the
> generic case references panel_info, which is a struct that varies depending on
> the configuration, and does not always have a cmap field. This demonstrated that
> the visibility of panel_info should be reviewed, and that there might be a need
> for some kind of lcd_generic driver.
> Since this may warrant a series of its own, I opted to tentatively implement
> the generic configuration_get_cmap() function in lcd.h as static function, and
> plan to revisit it in the next series.
>
> The end result was compile tested on arm and powerpc, and tested on cm_t35
> (splash screen feature). Rebased on current mainline.
>
> Changes in V2:
> - Minor commit message changes (such as s/platform specific/platform-specific/,
> s/Raspberry Pi config file is updated to compile the new file/Raspberry Pi is updated to accommodate the changes/)
> - patch 2: define configuration_get_cmap() prototype only once.
>
> Cc: Bo Shen <voice.shen at atmel.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Anatolij Gustschin <agust at denx.de>
>
> Nikita Kiryanov (13):
> lcd: move platform-specific structs to their own headers
> lcd: split configuration_get_cmap
> lcd: atmel: move atmel-specific fb_put_word to atmel_lcdfb
> lcd: mpc8xx: move mpc823-specific fb_put_byte to mpc8xx_lcd.c
> lcd: atmel: introduce lcd_logo_set_cmap
> lcd: mpc823: move mpc823-specific lcd_logo_set_cmap code to
> mpc8xx_lcd.c
> lcd: logo: move generic cmap setting to lcd_logo_set_cmap()
> lcd: introduce lcd_set_cmap
> lcd: remove unused includes
> lcd: various cleanups
> lcd: rename bitmap_plot to better represent its functionality
> lcd: dt: extract simplefb support
> lcd: split splash code into its own function
Tested OK on at91sam9g10ek, at91sam9x5ek boards.
Tested-by: Bo Shen <voice.shen at atmel.com>
> board/raspberrypi/rpi/rpi.c | 1 +
> common/Makefile | 1 +
> common/lcd.c | 358 ++++++++++---------------------------------
> common/lcd_simplefb.c | 59 +++++++
> common/splash.c | 16 ++
> drivers/video/atmel_hlcdfb.c | 13 ++
> drivers/video/atmel_lcdfb.c | 51 ++++++
> drivers/video/exynos_fb.c | 9 ++
> drivers/video/mpc8xx_lcd.c | 29 ++++
> drivers/video/pxa_lcd.c | 6 +
> include/atmel_lcd.h | 38 +++++
> include/exynos_lcd.h | 81 ++++++++++
> include/fdt_simplefb.h | 14 ++
> include/lcd.h | 311 ++++++-------------------------------
> include/mpc823_lcd.h | 43 ++++++
> include/pxa_lcd.h | 80 ++++++++++
> include/splash.h | 11 +-
> 17 files changed, 574 insertions(+), 547 deletions(-)
> create mode 100644 common/lcd_simplefb.c
> create mode 100644 include/atmel_lcd.h
> create mode 100644 include/exynos_lcd.h
> create mode 100644 include/fdt_simplefb.h
> create mode 100644 include/mpc823_lcd.h
> create mode 100644 include/pxa_lcd.h
>
Best Regards,
Bo Shen
More information about the U-Boot
mailing list