media: fimc-is: constify fimc_formats array
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Sun, 24 Dec 2023 11:49:12 +0000 (12:49 +0100)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Mon, 22 Jan 2024 11:16:42 +0000 (12:16 +0100)
Pointers to elements of the static array "fimc_formats" with "struct
fimc_fmt" are passed all around to various calls, but all of them do not
modify pointed data.  Constify the pointers everywhere which at the end
allows to make static array "fimc_formats" const itself.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/platform/samsung/exynos4-is/fimc-capture.c
drivers/media/platform/samsung/exynos4-is/fimc-core.c
drivers/media/platform/samsung/exynos4-is/fimc-core.h
drivers/media/platform/samsung/exynos4-is/fimc-m2m.c

index dde36e5be0c735c1aac915cc5c28009a7955e398..a3a677a3065f97d7076714692b897c3127751d43 100644 (file)
@@ -559,9 +559,9 @@ static const struct v4l2_file_operations fimc_capture_fops = {
  * Format and crop negotiation helpers
  */
 
-static struct fimc_fmt *fimc_capture_try_format(struct fimc_ctx *ctx,
-                                               u32 *width, u32 *height,
-                                               u32 *code, u32 *fourcc, int pad)
+static const struct fimc_fmt *fimc_capture_try_format(struct fimc_ctx *ctx,
+                                                     u32 *width, u32 *height,
+                                                     u32 *code, u32 *fourcc, int pad)
 {
        bool rotation = ctx->rotation == 90 || ctx->rotation == 270;
        struct fimc_dev *fimc = ctx->fimc_dev;
@@ -569,8 +569,8 @@ static struct fimc_fmt *fimc_capture_try_format(struct fimc_ctx *ctx,
        const struct fimc_pix_limit *pl = var->pix_limit;
        struct fimc_frame *dst = &ctx->d_frame;
        u32 depth, min_w, max_w, min_h, align_h = 3;
+       const struct fimc_fmt *ffmt;
        u32 mask = FMT_FLAGS_CAM;
-       struct fimc_fmt *ffmt;
 
        /* Conversion from/to JPEG or User Defined format is not supported */
        if (code && ctx->s_frame.fmt && pad == FIMC_SD_PAD_SOURCE &&
@@ -757,7 +757,7 @@ static struct media_entity *fimc_pipeline_get_head(struct media_entity *me)
  */
 static int fimc_pipeline_try_format(struct fimc_ctx *ctx,
                                    struct v4l2_mbus_framefmt *tfmt,
-                                   struct fimc_fmt **fmt_id,
+                                   const struct fimc_fmt **fmt_id,
                                    bool set)
 {
        struct fimc_dev *fimc = ctx->fimc_dev;
@@ -768,8 +768,8 @@ static int fimc_pipeline_try_format(struct fimc_ctx *ctx,
                       : V4L2_SUBDEV_FORMAT_TRY,
        };
        struct v4l2_mbus_framefmt *mf = &sfmt.format;
+       const struct fimc_fmt *ffmt;
        struct media_entity *me;
-       struct fimc_fmt *ffmt;
        struct media_pad *pad;
        int ret, i = 1;
        u32 fcc;
@@ -903,8 +903,8 @@ static int fimc_cap_g_fmt_mplane(struct file *file, void *fh,
  */
 static int __video_try_or_set_format(struct fimc_dev *fimc,
                                     struct v4l2_format *f, bool try,
-                                    struct fimc_fmt **inp_fmt,
-                                    struct fimc_fmt **out_fmt)
+                                    const struct fimc_fmt **inp_fmt,
+                                    const struct fimc_fmt **out_fmt)
 {
        struct v4l2_pix_format_mplane *pix = &f->fmt.pix_mp;
        struct fimc_vid_cap *vc = &fimc->vid_cap;
@@ -986,7 +986,7 @@ static int fimc_cap_try_fmt_mplane(struct file *file, void *fh,
                                   struct v4l2_format *f)
 {
        struct fimc_dev *fimc = video_drvdata(file);
-       struct fimc_fmt *out_fmt = NULL, *inp_fmt = NULL;
+       const struct fimc_fmt *out_fmt = NULL, *inp_fmt = NULL;
 
        return __video_try_or_set_format(fimc, f, true, &inp_fmt, &out_fmt);
 }
@@ -1012,7 +1012,7 @@ static int __fimc_capture_set_format(struct fimc_dev *fimc,
        struct fimc_ctx *ctx = vc->ctx;
        struct v4l2_pix_format_mplane *pix = &f->fmt.pix_mp;
        struct fimc_frame *ff = &ctx->d_frame;
-       struct fimc_fmt *inp_fmt = NULL;
+       const struct fimc_fmt *inp_fmt = NULL;
        int ret, i;
 
        if (vb2_is_busy(&fimc->vid_cap.vbq))
@@ -1519,7 +1519,7 @@ static int fimc_subdev_set_fmt(struct v4l2_subdev *sd,
        struct fimc_vid_cap *vc = &fimc->vid_cap;
        struct fimc_ctx *ctx = vc->ctx;
        struct fimc_frame *ff;
-       struct fimc_fmt *ffmt;
+       const struct fimc_fmt *ffmt;
 
        dbg("pad%d: code: 0x%x, %dx%d",
            fmt->pad, mf->code, mf->width, mf->height);
@@ -1715,9 +1715,9 @@ static int fimc_register_capture_device(struct fimc_dev *fimc,
 {
        struct video_device *vfd = &fimc->vid_cap.ve.vdev;
        struct vb2_queue *q = &fimc->vid_cap.vbq;
-       struct fimc_ctx *ctx;
        struct fimc_vid_cap *vid_cap;
-       struct fimc_fmt *fmt;
+       const struct fimc_fmt *fmt;
+       struct fimc_ctx *ctx;
        int ret = -ENOMEM;
 
        ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
index 4411b250d7f1024058c56b30285981e37a3066f5..2a881bc770cf7b614a2b5a6bb7e81532f76a488b 100644 (file)
@@ -33,7 +33,7 @@ static const char *fimc_clocks[MAX_FIMC_CLOCKS] = {
        "sclk_fimc", "fimc"
 };
 
-static struct fimc_fmt fimc_formats[] = {
+static const struct fimc_fmt fimc_formats[] = {
        {
                .fourcc         = V4L2_PIX_FMT_RGB565,
                .depth          = { 16 },
@@ -180,7 +180,7 @@ static struct fimc_fmt fimc_formats[] = {
        },
 };
 
-struct fimc_fmt *fimc_get_format(unsigned int index)
+const struct fimc_fmt *fimc_get_format(unsigned int index)
 {
        if (index >= ARRAY_SIZE(fimc_formats))
                return NULL;
@@ -752,10 +752,11 @@ void fimc_adjust_mplane_format(const struct fimc_fmt *fmt, u32 width, u32 height
  * @mask: the color flags to match
  * @index: offset in the fimc_formats array, ignored if negative
  */
-struct fimc_fmt *fimc_find_format(const u32 *pixelformat, const u32 *mbus_code,
-                                 unsigned int mask, int index)
+const struct fimc_fmt *fimc_find_format(const u32 *pixelformat,
+                                       const u32 *mbus_code,
+                                       unsigned int mask, int index)
 {
-       struct fimc_fmt *fmt, *def_fmt = NULL;
+       const struct fimc_fmt *fmt, *def_fmt = NULL;
        unsigned int i;
        int id = 0;
 
index 261c9aac2f7f8a61229fc76211688c3f244f0347..63385152a2ffe82e9871497733971cfc8a1a1238 100644 (file)
@@ -257,7 +257,7 @@ struct fimc_frame {
        unsigned int            bytesperline[VIDEO_MAX_PLANES];
        struct fimc_addr        addr;
        struct fimc_dma_offset  dma_offset;
-       struct fimc_fmt         *fmt;
+       const struct fimc_fmt   *fmt;
        u8                      alpha;
 };
 
@@ -617,9 +617,10 @@ void fimc_alpha_ctrl_update(struct fimc_ctx *ctx);
 void __fimc_get_format(const struct fimc_frame *frame, struct v4l2_format *f);
 void fimc_adjust_mplane_format(const struct fimc_fmt *fmt, u32 width, u32 height,
                               struct v4l2_pix_format_mplane *pix);
-struct fimc_fmt *fimc_find_format(const u32 *pixelformat, const u32 *mbus_code,
-                                 unsigned int mask, int index);
-struct fimc_fmt *fimc_get_format(unsigned int index);
+const struct fimc_fmt *fimc_find_format(const u32 *pixelformat,
+                                       const u32 *mbus_code,
+                                       unsigned int mask, int index);
+const struct fimc_fmt *fimc_get_format(unsigned int index);
 
 int fimc_check_scaler_ratio(struct fimc_ctx *ctx, int sw, int sh,
                            int dw, int dh, int rotation);
index 1918390a2469d76b80b0b2aa4086e9c1e53af078..e9023f64cfbab515479eecabcd10cb5192726a35 100644 (file)
@@ -314,7 +314,8 @@ static int fimc_m2m_try_fmt_mplane(struct file *file, void *fh,
        return fimc_try_fmt_mplane(ctx, f);
 }
 
-static void __set_frame_format(struct fimc_frame *frame, struct fimc_fmt *fmt,
+static void __set_frame_format(struct fimc_frame *frame,
+                              const struct fimc_fmt *fmt,
                               struct v4l2_pix_format_mplane *pixm)
 {
        int i;
@@ -340,7 +341,7 @@ static int fimc_m2m_s_fmt_mplane(struct file *file, void *fh,
 {
        struct fimc_ctx *ctx = fh_to_ctx(fh);
        struct fimc_dev *fimc = ctx->fimc_dev;
-       struct fimc_fmt *fmt;
+       const struct fimc_fmt *fmt;
        struct vb2_queue *vq;
        struct fimc_frame *frame;
        int ret;
@@ -588,7 +589,7 @@ static int fimc_m2m_set_default_format(struct fimc_ctx *ctx)
                        .sizeimage = 800 * 4 * 600,
                },
        };
-       struct fimc_fmt *fmt;
+       const struct fimc_fmt *fmt;
 
        fmt = fimc_find_format(&pixm.pixelformat, NULL, FMT_FLAGS_M2M, 0);
        if (!fmt)