Hi, On Thu, 24 May 2012 14:42:44 +0300 Igor Grinberg <[email protected]> wrote:
> From: Nikita Kiryanov <[email protected]> > > Move highly platform dependant code into its own functions to reduce the > number of #ifdefs in lcd_display_bitmap > > Signed-off-by: Nikita Kiryanov <[email protected]> > Signed-off-by: Igor Grinberg <[email protected]> > --- > common/lcd.c | 44 +++++++++++++++++++++++++++----------------- > 1 files changed, 27 insertions(+), 17 deletions(-) > > diff --git a/common/lcd.c b/common/lcd.c > index 199a8c2..a55ee58 100644 > --- a/common/lcd.c > +++ b/common/lcd.c > @@ -638,6 +638,29 @@ static void splash_align_axis(int *axis, unsigned long > panel_size, ... > +#if defined(CONFIG_BMP_16BPP) > +#if defined(CONFIG_ATMEL_LCD_BGR555) > +static inline void configuration_fb_puts(uchar *fb, uchar *from) > +{ > + *(fb++) = ((from[0] & 0x1f) << 2) | (from[1] & 0x03); > + *(fb++) = (from[0] & 0xe0) | ((from[1] & 0x7c) >> 2); > + from += 2; > +} > +#else > +static inline void configuration_fb_puts(uchar *fb, uchar *from) > +{ > + *(fb++) = *(from++); > + *(fb++) = *(from++); > +} > +#endif > +#endif /* CONFIG_BMP_16BPP */ This won't work. The original code increments 'fb' and 'bmap' pointers in the inner for loop. Using this function in the inner loop won't increment the pointers as needed, as these will only be incremented in the function itself (as local variables). Also please use a different name for the macro, CONFIGURATION_FB_PUTB isn't a descriptive name. FB_PUT_PIXEL or similar perhaps? Thanks, Anatolij _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

