diff options
author | Nikita Kiryanov <nikita@compulab.co.il> | 2015-02-03 13:32:25 +0200 |
---|---|---|
committer | Anatolij Gustschin <agust@denx.de> | 2015-02-10 13:27:58 +0100 |
commit | 0ee261f6d3f387a33687bff29342e9321e2f8194 (patch) | |
tree | 20eff4030906462a43383727e0d5171a90f921ee | |
parent | a02e9481396bbd831d9bd970515f277de516fa28 (diff) | |
download | u-boot-imx-0ee261f6d3f387a33687bff29342e9321e2f8194.zip u-boot-imx-0ee261f6d3f387a33687bff29342e9321e2f8194.tar.gz u-boot-imx-0ee261f6d3f387a33687bff29342e9321e2f8194.tar.bz2 |
lcd: mpc823: move mpc823-specific lcd_logo_set_cmap code to mpc8xx_lcd.c
Reduce the bitmap_plot #ifdef complexity by extracting MPC823-specific code for
setting cmap into its own implementation of lcd_logo_set_cmap(), implemented in
mpc8xx_lcd.c. In the MPC823 implementation, ARRAY_SIZE(bmp_logo_palette) is
switched for BMP_LOGO_COLORS to avoid having to include bmp_logo_data.h, which
would cause a compilation error because the logo data and palette arrays would
be defined twice.
This is a step towards cleaning bitmap_plot() of platform-specific code.
Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Bo Shen <voice.shen@atmel.com>
Tested-by: Josh Wu <josh.wu@atmel.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Anatolij Gustschin <agust@denx.de>
-rw-r--r-- | common/lcd.c | 10 | ||||
-rw-r--r-- | drivers/video/mpc8xx_lcd.c | 15 |
2 files changed, 16 insertions, 9 deletions
diff --git a/common/lcd.c b/common/lcd.c index 7fcac1d..355c144 100644 --- a/common/lcd.c +++ b/common/lcd.c @@ -396,10 +396,6 @@ void bitmap_plot(int x, int y) uchar *bmap; uchar *fb; ushort *fb16; -#if defined(CONFIG_MPC823) - immap_t *immr = (immap_t *) CONFIG_SYS_IMMR; - cpm8xx_t *cp = &(immr->im_cpm); -#endif unsigned bpix = NBITS(panel_info.vl_bpix); debug("Logo: width %d height %d colors %d cmap %d\n", @@ -415,16 +411,12 @@ void bitmap_plot(int x, int y) * cmap was set to the source palette, so no change is done. * This avoids even more ifdefs in the next stanza */ -#if defined(CONFIG_MPC823) - cmap = (ushort *) &(cp->lcd_cmap[BMP_LOGO_OFFSET * sizeof(ushort)]); -#else cmap = configuration_get_cmap(); -#endif WATCHDOG_RESET(); /* Set color map */ -#ifdef CONFIG_ATMEL_LCD +#if defined(CONFIG_ATMEL_LCD) || defined(CONFIG_MPC823) lcd_logo_set_cmap(); #else for (i = 0; i < ARRAY_SIZE(bmp_logo_palette); ++i) { diff --git a/drivers/video/mpc8xx_lcd.c b/drivers/video/mpc8xx_lcd.c index 190c05a..faa58c0 100644 --- a/drivers/video/mpc8xx_lcd.c +++ b/drivers/video/mpc8xx_lcd.c @@ -371,6 +371,21 @@ void fb_put_byte(uchar **fb, uchar **from) } #endif +#ifdef CONFIG_LCD_LOGO +#include <bmp_logo.h> +void lcd_logo_set_cmap(void) +{ + int i; + ushort *cmap; + immap_t *immr = (immap_t *)CONFIG_SYS_IMMR; + cpm8xx_t *cp = &(immr->im_cpm); + cmap = (ushort *)&(cp->lcd_cmap[BMP_LOGO_OFFSET * sizeof(ushort)]); + + for (i = 0; i < BMP_LOGO_COLORS; ++i) + *cmap++ = bmp_logo_palette[i]; +} +#endif + void lcd_enable (void) { volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR; |