Re: [PATCH] drm/bridge/tc358767: make the array ext_div static const, makes object smaller

From: Joe Perches
Date: Thu Aug 19 2021 - 09:51:30 EST


On Thu, 2021-08-19 at 14:38 +0100, Colin King wrote:
> From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>
> Don't populate the array ext_div on the stack but instead it
> static const. Makes the object code smaller by 118 bytes:
>
> Before:
>    text data bss dec hex filename
>   39449 17500 128 57077 def5 ./drivers/gpu/drm/bridge/tc358767.o
>
> After:
>    text data bss dec hex filename
>   39235 17596 128 56959 de7f ./drivers/gpu/drm/bridge/tc358767.o

Why is text smaller and data larger with this change?

>
> (gcc version 10.3.0)
>
> Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
> ---
>  drivers/gpu/drm/bridge/tc358767.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/bridge/tc358767.c b/drivers/gpu/drm/bridge/tc358767.c
> index 23a6f90b694b..599c23759400 100644
> --- a/drivers/gpu/drm/bridge/tc358767.c
> +++ b/drivers/gpu/drm/bridge/tc358767.c
> @@ -468,7 +468,7 @@ static int tc_pxl_pll_en(struct tc_data *tc, u32 refclk, u32 pixelclock)
>   int div, best_div = 1;
>   int mul, best_mul = 1;
>   int delta, best_delta;
> - int ext_div[] = {1, 2, 3, 5, 7};
> + static const int ext_div[] = {1, 2, 3, 5, 7};
>   int best_pixelclock = 0;
>   int vco_hi = 0;
>   u32 pxl_pllparam;