On Thursday 20 October 2011 01:38:46 Che-Liang Chiou wrote:
> --- a/api/api.c
> +++ b/api/api.c
> 
> +/*
> + * pseudo signature:
> + *
> + * int API_display_get_info(int type, struct display_info *di)
> + */
> +static int API_display_get_info(va_list ap)
> +{
> +     int type;
> +     struct display_info *di;
> +
> +     type = (int)va_arg(ap, u_int32_t);
> +     di = (struct display_info *)va_arg(ap, u_int32_t);

i know you simply copied these warts from the rest of the code, but this 
va_arg() usage looks wrong to me.  why is u_int32_t always used as the 
argument to va_arg() and then the return value is cast ?  seems to me this 
code should actually read:
        type = va_arg(ap, int);
        di = va_arg(ap, struct display_info *);

could you see if that change still works for you ?

> +static int API_display_draw_bitmap(va_list ap)
> +{
> +     ulong bitmap;
> +     int x, y;
> +
> +     bitmap = (ulong)va_arg(ap, ulong);
> +     if (!bitmap)
> +             return API_EINVAL;

seems to me that this NULL pointer check belongs in the lcd core

> --- /dev/null
> +++ b/api/api_display.c
>
> +int display_draw_bitmap(ulong bitmap, int x, int y)
> +{
> +     int err = 0;
> +#ifdef CONFIG_LCD
> +     err |= lcd_display_bitmap(bitmap, x, y);
> +#endif
> +     return err;
> +}

i think this should read:
int display_draw_bitmap(ulong bitmap, int x, int y)
{
#ifdef CONFIG_LCD
        return lcd_display_bitmap(bitmap, x, y);
#else
        return API_ENODEV;
#endif
}

> --- a/include/video_font.h
> +++ b/include/video_font.h
> 
> +/*
> + * Adding unused attribute here so that compiler will not complain
> + * video_fontdata is not used in source files that only use
> + * VIDEO_FONT_* (e.g., api/api_display.c).
> + */
> +__attribute__ ((unused))
>  static unsigned char video_fontdata[VIDEO_FONT_SIZE] = {

i don't think this is right.  we should split the data from the rest of the 
defines/structs.
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to