[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