public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Vignesh Raghavendra <vigneshr@ti.com>
To: Nikhil M Jain <n-jain1@ti.com>, Simon Glass <sjg@chromium.org>
Cc: <u-boot@lists.denx.de>, <trini@konsulko.com>, <devarsht@ti.com>,
	<nsekhar@ti.com>
Subject: Re: [PATCH V6 08/13] cmd: bmp: Split bmp commands and functions
Date: Thu, 6 Apr 2023 13:11:20 +0530	[thread overview]
Message-ID: <eaebe49e-2dc4-b030-32f4-1a3acfd99ec2@ti.com> (raw)
In-Reply-To: <d04f326f-80f8-3028-ecce-345bac65bb50@ti.com>

Hi Nikhil,

On 06/04/23 11:57, Nikhil M Jain wrote:
>>> +struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
>>> +                            void **alloc_addr)
>>> +{
>>> +       void *dst;
>>> +       unsigned long len;
>>> +       struct bmp_image *bmp;
>>> +
>>
>> if (!IS_ENABLED(CONFIG_VIDEO_BMP_GZIP))
>>     return NULL;
>>
> 
> I preferred to use #if to avoid compilation of code when not required.
> 
> For example,  if someone doesn't want to display a gzip bmp image they
> wouldn't want the code to be compiled, so that binary size doesn't
> increase.

Both are equivalent. Compiler will optimize out the function if
CONFIG_VIDEO_BMP_GZIP is not defined.

#ifdefs are complicated to read compared to inline if()s (at least for me).

> 
>>> +       /*
>>> +        * Decompress bmp image
>>> +        */
>>> +       len = CONFIG_VIDEO_LOGO_MAX_SIZE;
>>> +       /* allocate extra 3 bytes for 32-bit-aligned-address + 2
>>> alignment */
>>> +       dst = malloc(CONFIG_VIDEO_LOGO_MAX_SIZE + 3);
>>> +       if (!dst) {
>>> +               puts("Error: malloc in gunzip failed!\n");
>>> +               return NULL;
>>> +       }
>>> +
>>> +       /* align to 32-bit-aligned-address + 2 */
>>> +       bmp = dst + 2;
>>> +
>>> +       if (gunzip(bmp, CONFIG_VIDEO_LOGO_MAX_SIZE, map_sysmem(addr, 0),
>>> +                  &len)) {
>>> +               free(dst);
>>> +               return NULL;
>>> +       }
>>> +       if (len == CONFIG_VIDEO_LOGO_MAX_SIZE)
>>> +               puts("Image could be truncated (increase
>>> CONFIG_VIDEO_LOGO_MAX_SIZE)!\n");
>>> +
>>> +       /*
>>> +        * Check for bmp mark 'BM'
>>> +        */
>>> +       if (!((bmp->header.signature[0] == 'B') &&
>>> +             (bmp->header.signature[1] == 'M'))) {
>>> +               free(dst);
>>> +               return NULL;
>>> +       }
>>> +
>>> +       debug("Gzipped BMP image detected!\n");
>>> +
>>> +       *alloc_addr = dst;
>>> +       return bmp;
>>> +}
>>> +#else
>>> +struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
>>> +                            void **alloc_addr)
>>> +{
>>> +       return NULL;
>>> +}
>>> +#endif
>>> + 

[...]

-- 
Regards
Vignesh

  reply	other threads:[~2023-04-06  7:41 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-04 13:05 [PATCH V6 00/13] Add splash screen support at u-boot SPL Nikhil M Jain
2023-04-04 13:05 ` [PATCH V6 01/13] drivers: video: Kconfig: Add configs for enabling video at SPL Nikhil M Jain
2023-04-05 18:37   ` Simon Glass
2023-04-04 13:05 ` [PATCH V6 02/13] drivers: video: tidss: Kconfig: Configs to enable TIDSS " Nikhil M Jain
2023-04-04 13:06 ` [PATCH V6 03/13] drivers: Makefile: Add rule to compile video driver Nikhil M Jain
2023-04-05 18:37   ` Simon Glass
2023-04-04 13:06 ` [PATCH V6 04/13] drivers: video: Makefile: Rule to compile necessary video driver files Nikhil M Jain
2023-04-05 18:37   ` Simon Glass
2023-04-04 13:06 ` [PATCH V6 05/13] drivers: video: tidss: Makefile: Add condition to compile TIDSS at SPL Nikhil M Jain
2023-04-04 13:06 ` [PATCH V6 06/13] common: Makefile: Add rule to compile splash and splash_source " Nikhil M Jain
2023-04-05 18:38   ` Simon Glass
2023-04-04 13:06 ` [PATCH V6 07/13] common: Kconfig: Add BMP configs Nikhil M Jain
2023-04-04 13:06 ` [PATCH V6 08/13] cmd: bmp: Split bmp commands and functions Nikhil M Jain
2023-04-05 18:37   ` Simon Glass
2023-04-06  6:27     ` Nikhil M Jain
2023-04-06  7:41       ` Vignesh Raghavendra [this message]
2023-04-06 12:12         ` Nikhil M Jain
2023-04-04 13:06 ` [PATCH V6 09/13] common: Makefile: Rule to compile bmp.c Nikhil M Jain
2023-04-05 18:37   ` Simon Glass
2023-04-04 13:06 ` [PATCH V6 10/13] drivers: video: Enable necessary video functions at SPL Nikhil M Jain
2023-04-05 18:37   ` Simon Glass
2023-04-04 13:06 ` [PATCH V6 11/13] common: Enable splash " Nikhil M Jain
2023-04-05 18:37   ` Simon Glass
2023-04-04 13:06 ` [PATCH V6 12/13] include: Enable video related global data variable and splash " Nikhil M Jain
2023-04-05 18:37   ` Simon Glass
2023-04-04 13:06 ` [PATCH V6 13/13] board: ti: am62x: evm: OSPI support for splash screen Nikhil M Jain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=eaebe49e-2dc4-b030-32f4-1a3acfd99ec2@ti.com \
    --to=vigneshr@ti.com \
    --cc=devarsht@ti.com \
    --cc=n-jain1@ti.com \
    --cc=nsekhar@ti.com \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox