[U-Boot] [PATCH V2 2/2] api: export LCD and video to external apps

Che-liang Chiou
2011-10-18T06:12:59Z

Hi Anatolij,

Thanks for testing this patch. Please see below.

On Tue, Oct 18, 2011 at 5:13 AM, Anatolij Gustschin <agust@denx.de> wrote:
> Hi,
>
> thanks for the patch and style fixes! I've some comments on it.
> Please see below.
>
> On Fri, ?7 Oct 2011 16:28:12 +0800
> Che-Liang Chiou <clchiou@chromium.org> wrote:
>
>> This patch exports LCD and video information and bitmap-rendering
>> functions to external apps.
>>
>> This patch is tested on a Seaboard, which does not have a video output.
>> So I only tested LCD code paths.
>>
>> NOTE: The Seaboard LCD driver is not yet upstreamed; the test was done
>> in a local downstream repo.
>
> Many boards defining CONFIG_LCD also define CONFIG_LCD_LOGO.
> Enabling CONFIG_API for such board configurations will break
> compiling, e.g.:
>
> $ ./MAKEALL TQM823L_LCD
> Configuring for TQM823L_LCD - Board: TQM823L, Options: LCD,NEC_NL6448BC20
> api_display.c: In function 'display_get_info':
> api_display.c:40: error: 'BMP_LOGO_HEIGHT' undeclared (first use in this function)
> api_display.c:40: error: (Each undeclared identifier is reported only once
> api_display.c:40: error: for each function it appears in.)
> make[1]: *** [api_display.o] Error 1
> make: *** [api/libapi.o] Error 2
>
> Any idea how to fix this issue?
>

BMP_LOGO_HEIGHT is defined bmp_logo.h, which is automatically
generated by tools/bmp_logo.c when CONFIG_LCD_LOGO or
CONFIG_VIDEO_LOGO is set. So I guess this is quite easy to fix. We
could include bmp_logo.h in api_display.c.

> Similar problem exists for boards using cfb_console driver, e.g. enabling
> CONFIG_API breaks compiling for tqm5200 board:
>
> $ ./MAKEALL TQM5200
> Configuring for TQM5200 board...
> api_display.c: In function 'display_get_info':
> api_display.c:47: error: 'VIDEO_VISIBLE_COLS' undeclared (first use in this function)
> api_display.c:47: error: (Each undeclared identifier is reported only once
> api_display.c:47: error: for each function it appears in.)
> api_display.c:48: error: 'VIDEO_VISIBLE_ROWS' undeclared (first use in this function)
> make[1]: *** [api_display.o] Error 1
> make: *** [api/libapi.o] Error 2
>
> We need to resolve these issues before committing this patch, i think.
>

VIDEO_VISIBLE_{COLS,ROLS} are just macros defined in cfb_console.c,
this is my mistake. I should use GraphicDevice->{winSizeX,winSizeY}
that are VIDEO_VISIBLE_{COLS,ROLS} defined upon.

> Thanks,
> Anatolij
>
>> Signed-off-by: Che-Liang Chiou <clchiou@chromium.org>
>> ---
>>
>> Changes since V1
>> ? Fix style errors
>>
>> ?api/Makefile ? ? ? ? | ? ?3 +-
>> ?api/api.c ? ? ? ? ? ?| ? 51 +++++++++++++++++++++++++++++
>> ?api/api_display.c ? ?| ? 86 ++++++++++++++++++++++++++++++++++++++++++++++++++
>> ?api/api_private.h ? ?| ? ?4 ++
>> ?examples/api/demo.c ?| ? 31 ++++++++++++++++++
>> ?examples/api/glue.c ?| ? 31 ++++++++++++++++++
>> ?examples/api/glue.h ?| ? ?5 +++
>> ?include/api_public.h | ? 16 +++++++++
>> ?include/video_font.h | ? ?6 +++
>> ?9 files changed, 232 insertions(+), 1 deletions(-)
>> ?create mode 100644 api/api_display.c
>

Regards,
Che-Liang