lcd: mpc8xx: move mpc823-specific fb_put_byte to mpc8xx_lcd.c
Reduce the amount of platform-specific code in common/lcd.c by moving MPC823 implementation of fb_put_byte() to mpc8xx_lcd.c. Since we must also have a default implementation for everybody else, make the remainder of the code into a weak function. 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>
This commit is contained in:
parent
b3d12e9bca
commit
27fad01b7f
11
common/lcd.c
11
common/lcd.c
|
@ -635,11 +635,10 @@ static void lcd_display_rle8_bitmap(bmp_image_t *bmp, ushort *cmap, uchar *fb,
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_MPC823)
|
||||
#define FB_PUT_BYTE(fb, from) *(fb)++ = (255 - *(from)++)
|
||||
#else
|
||||
#define FB_PUT_BYTE(fb, from) *(fb)++ = *(from)++
|
||||
#endif
|
||||
__weak void fb_put_byte(uchar **fb, uchar **from)
|
||||
{
|
||||
*(*fb)++ = *(*from)++;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_BMP_16BPP)
|
||||
__weak void fb_put_word(uchar **fb, uchar **from)
|
||||
|
@ -764,7 +763,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
|
|||
WATCHDOG_RESET();
|
||||
for (j = 0; j < width; j++) {
|
||||
if (bpix != 16) {
|
||||
FB_PUT_BYTE(fb, bmap);
|
||||
fb_put_byte(&fb, &bmap);
|
||||
} else {
|
||||
*(uint16_t *)fb = cmap_base[*(bmap++)];
|
||||
fb += sizeof(uint16_t) / sizeof(*fb);
|
||||
|
|
|
@ -364,6 +364,13 @@ ushort *configuration_get_cmap(void)
|
|||
return (ushort *)&(cp->lcd_cmap[255 * sizeof(ushort)]);
|
||||
}
|
||||
|
||||
#if defined(CONFIG_MPC823)
|
||||
void fb_put_byte(uchar **fb, uchar **from)
|
||||
{
|
||||
*(*fb)++ = (255 - *(*from)++);
|
||||
}
|
||||
#endif
|
||||
|
||||
void lcd_enable (void)
|
||||
{
|
||||
volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
|
||||
|
|
Loading…
Reference in New Issue