Hi,

On Thu, 24 May 2012 14:42:44 +0300
Igor Grinberg <grinb...@compulab.co.il> wrote:

> From: Nikita Kiryanov <nik...@compulab.co.il>
> 
> Move highly platform dependant code into its own functions to reduce the
> number of #ifdefs in lcd_display_bitmap
> 
> Signed-off-by: Nikita Kiryanov <nik...@compulab.co.il>
> Signed-off-by: Igor Grinberg <grinb...@compulab.co.il>
> ---
>  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
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to