[PATCH][next] media: rkisp1: make a few const arrays static

Alexander Stein alexander.stein at ew.tq-group.com
Thu Jan 5 23:30:23 PST 2023


Hi Ian,

Am Donnerstag, 5. Januar 2023, 19:44:03 CET schrieb Colin Ian King:
> Don't populate the const arrays on the stack, instead make them
> static. Also makes the object code smaller.

While I don't dislike this change itself, are you sure about the size change?

bloat-o-meter shows an overall increase:
> ./scripts/bloat-o-meter /tmp/rkisp1-capture_old.o
> /tmp/rkisp1-capture_new.o
> add/remove: 3/0 grow/shrink: 1/2 up/down: 256/-116 (140)
> Function                                     old     new   delta
> rkisp1_try_fmt_vid_cap_mplane                 56     280    +224
> dev_names                                      -      16     +16
> max_widths                                     -       8      +8
> max_heights                                    -       8      +8
> rkisp1_try_fmt                               356     304     -52
> rkisp1_register_capture                      548     484     -64
> Total: Before=12333, After=12473, chg +1.14%

To be honest I don't know why GCC now inlines rkisp1_try_fmt() in 
rkisp1_try_fmt_vid_cap_mplane.

Best regards,
Alexander

> Signed-off-by: Colin Ian King <colin.i.king at gmail.com>
> ---
>  .../platform/rockchip/rkisp1/rkisp1-capture.c     | 15 +++++++++------
>  1 file changed, 9 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
> b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c index
> d4540684ea9a..d1d1fdce03e3 100644
> --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
> +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
> @@ -1131,10 +1131,12 @@ static void rkisp1_try_fmt(const struct
> rkisp1_capture *cap, const struct rkisp1_capture_config *config =
> cap->config;
>  	const struct rkisp1_capture_fmt_cfg *fmt;
>  	const struct v4l2_format_info *info;
> -	const unsigned int max_widths[] = { RKISP1_RSZ_MP_SRC_MAX_WIDTH,
> -					    
RKISP1_RSZ_SP_SRC_MAX_WIDTH };
> -	const unsigned int max_heights[] = { RKISP1_RSZ_MP_SRC_MAX_HEIGHT,
> -					     
RKISP1_RSZ_SP_SRC_MAX_HEIGHT};
> +	static const unsigned int max_widths[] = {
> +		RKISP1_RSZ_MP_SRC_MAX_WIDTH, RKISP1_RSZ_SP_SRC_MAX_WIDTH
> +	};
> +	static const unsigned int max_heights[] = {
> +		RKISP1_RSZ_MP_SRC_MAX_HEIGHT, RKISP1_RSZ_SP_SRC_MAX_HEIGHT
> +	};
> 
>  	fmt = rkisp1_find_fmt_cfg(cap, pixm->pixelformat);
>  	if (!fmt) {
> @@ -1336,8 +1338,9 @@ void rkisp1_capture_devs_unregister(struct
> rkisp1_device *rkisp1)
> 
>  static int rkisp1_register_capture(struct rkisp1_capture *cap)
>  {
> -	const char * const dev_names[] = {RKISP1_MP_DEV_NAME,
> -					  RKISP1_SP_DEV_NAME};
> +	static const char * const dev_names[] = {
> +		RKISP1_MP_DEV_NAME, RKISP1_SP_DEV_NAME
> +	};
>  	struct v4l2_device *v4l2_dev = &cap->rkisp1->v4l2_dev;
>  	struct video_device *vdev = &cap->vnode.vdev;
>  	struct rkisp1_vdev_node *node;







More information about the linux-arm-kernel mailing list