[U-Boot] [PATCH V2 00/13] common lcd refactor

Nikita Kiryanov nikita at compulab.co.il
Tue Feb 3 12:32:19 CET 2015


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

 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

-- 
1.9.1



More information about the U-Boot mailing list