media: fimc-is: constify fimc_formats array

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>
This commit is contained in:
Krzysztof Kozlowski 2023-12-24 12:49:12 +01:00 committed by Hans Verkuil
parent 6b659c7b10
commit 17b8d951b5
4 changed files with 28 additions and 25 deletions

View File

@ -559,7 +559,7 @@ static const struct v4l2_file_operations fimc_capture_fops = {
* Format and crop negotiation helpers * Format and crop negotiation helpers
*/ */
static struct fimc_fmt *fimc_capture_try_format(struct fimc_ctx *ctx, static const struct fimc_fmt *fimc_capture_try_format(struct fimc_ctx *ctx,
u32 *width, u32 *height, u32 *width, u32 *height,
u32 *code, u32 *fourcc, int pad) u32 *code, u32 *fourcc, int pad)
{ {
@ -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; const struct fimc_pix_limit *pl = var->pix_limit;
struct fimc_frame *dst = &ctx->d_frame; struct fimc_frame *dst = &ctx->d_frame;
u32 depth, min_w, max_w, min_h, align_h = 3; u32 depth, min_w, max_w, min_h, align_h = 3;
const struct fimc_fmt *ffmt;
u32 mask = FMT_FLAGS_CAM; u32 mask = FMT_FLAGS_CAM;
struct fimc_fmt *ffmt;
/* Conversion from/to JPEG or User Defined format is not supported */ /* Conversion from/to JPEG or User Defined format is not supported */
if (code && ctx->s_frame.fmt && pad == FIMC_SD_PAD_SOURCE && 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, static int fimc_pipeline_try_format(struct fimc_ctx *ctx,
struct v4l2_mbus_framefmt *tfmt, struct v4l2_mbus_framefmt *tfmt,
struct fimc_fmt **fmt_id, const struct fimc_fmt **fmt_id,
bool set) bool set)
{ {
struct fimc_dev *fimc = ctx->fimc_dev; 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, : V4L2_SUBDEV_FORMAT_TRY,
}; };
struct v4l2_mbus_framefmt *mf = &sfmt.format; struct v4l2_mbus_framefmt *mf = &sfmt.format;
const struct fimc_fmt *ffmt;
struct media_entity *me; struct media_entity *me;
struct fimc_fmt *ffmt;
struct media_pad *pad; struct media_pad *pad;
int ret, i = 1; int ret, i = 1;
u32 fcc; 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, static int __video_try_or_set_format(struct fimc_dev *fimc,
struct v4l2_format *f, bool try, struct v4l2_format *f, bool try,
struct fimc_fmt **inp_fmt, const struct fimc_fmt **inp_fmt,
struct fimc_fmt **out_fmt) const struct fimc_fmt **out_fmt)
{ {
struct v4l2_pix_format_mplane *pix = &f->fmt.pix_mp; struct v4l2_pix_format_mplane *pix = &f->fmt.pix_mp;
struct fimc_vid_cap *vc = &fimc->vid_cap; 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 v4l2_format *f)
{ {
struct fimc_dev *fimc = video_drvdata(file); 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); 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 fimc_ctx *ctx = vc->ctx;
struct v4l2_pix_format_mplane *pix = &f->fmt.pix_mp; struct v4l2_pix_format_mplane *pix = &f->fmt.pix_mp;
struct fimc_frame *ff = &ctx->d_frame; struct fimc_frame *ff = &ctx->d_frame;
struct fimc_fmt *inp_fmt = NULL; const struct fimc_fmt *inp_fmt = NULL;
int ret, i; int ret, i;
if (vb2_is_busy(&fimc->vid_cap.vbq)) 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_vid_cap *vc = &fimc->vid_cap;
struct fimc_ctx *ctx = vc->ctx; struct fimc_ctx *ctx = vc->ctx;
struct fimc_frame *ff; struct fimc_frame *ff;
struct fimc_fmt *ffmt; const struct fimc_fmt *ffmt;
dbg("pad%d: code: 0x%x, %dx%d", dbg("pad%d: code: 0x%x, %dx%d",
fmt->pad, mf->code, mf->width, mf->height); 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 video_device *vfd = &fimc->vid_cap.ve.vdev;
struct vb2_queue *q = &fimc->vid_cap.vbq; struct vb2_queue *q = &fimc->vid_cap.vbq;
struct fimc_ctx *ctx;
struct fimc_vid_cap *vid_cap; struct fimc_vid_cap *vid_cap;
struct fimc_fmt *fmt; const struct fimc_fmt *fmt;
struct fimc_ctx *ctx;
int ret = -ENOMEM; int ret = -ENOMEM;
ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);

View File

@ -33,7 +33,7 @@ static const char *fimc_clocks[MAX_FIMC_CLOCKS] = {
"sclk_fimc", "fimc" "sclk_fimc", "fimc"
}; };
static struct fimc_fmt fimc_formats[] = { static const struct fimc_fmt fimc_formats[] = {
{ {
.fourcc = V4L2_PIX_FMT_RGB565, .fourcc = V4L2_PIX_FMT_RGB565,
.depth = { 16 }, .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)) if (index >= ARRAY_SIZE(fimc_formats))
return NULL; 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 * @mask: the color flags to match
* @index: offset in the fimc_formats array, ignored if negative * @index: offset in the fimc_formats array, ignored if negative
*/ */
struct fimc_fmt *fimc_find_format(const u32 *pixelformat, const u32 *mbus_code, const struct fimc_fmt *fimc_find_format(const u32 *pixelformat,
const u32 *mbus_code,
unsigned int mask, int index) unsigned int mask, int index)
{ {
struct fimc_fmt *fmt, *def_fmt = NULL; const struct fimc_fmt *fmt, *def_fmt = NULL;
unsigned int i; unsigned int i;
int id = 0; int id = 0;

View File

@ -257,7 +257,7 @@ struct fimc_frame {
unsigned int bytesperline[VIDEO_MAX_PLANES]; unsigned int bytesperline[VIDEO_MAX_PLANES];
struct fimc_addr addr; struct fimc_addr addr;
struct fimc_dma_offset dma_offset; struct fimc_dma_offset dma_offset;
struct fimc_fmt *fmt; const struct fimc_fmt *fmt;
u8 alpha; 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_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, void fimc_adjust_mplane_format(const struct fimc_fmt *fmt, u32 width, u32 height,
struct v4l2_pix_format_mplane *pix); struct v4l2_pix_format_mplane *pix);
struct fimc_fmt *fimc_find_format(const u32 *pixelformat, const u32 *mbus_code, const struct fimc_fmt *fimc_find_format(const u32 *pixelformat,
const u32 *mbus_code,
unsigned int mask, int index); unsigned int mask, int index);
struct fimc_fmt *fimc_get_format(unsigned 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 fimc_check_scaler_ratio(struct fimc_ctx *ctx, int sw, int sh,
int dw, int dh, int rotation); int dw, int dh, int rotation);

View File

@ -314,7 +314,8 @@ static int fimc_m2m_try_fmt_mplane(struct file *file, void *fh,
return fimc_try_fmt_mplane(ctx, f); 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) struct v4l2_pix_format_mplane *pixm)
{ {
int i; 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_ctx *ctx = fh_to_ctx(fh);
struct fimc_dev *fimc = ctx->fimc_dev; struct fimc_dev *fimc = ctx->fimc_dev;
struct fimc_fmt *fmt; const struct fimc_fmt *fmt;
struct vb2_queue *vq; struct vb2_queue *vq;
struct fimc_frame *frame; struct fimc_frame *frame;
int ret; int ret;
@ -588,7 +589,7 @@ static int fimc_m2m_set_default_format(struct fimc_ctx *ctx)
.sizeimage = 800 * 4 * 600, .sizeimage = 800 * 4 * 600,
}, },
}; };
struct fimc_fmt *fmt; const struct fimc_fmt *fmt;
fmt = fimc_find_format(&pixm.pixelformat, NULL, FMT_FLAGS_M2M, 0); fmt = fimc_find_format(&pixm.pixelformat, NULL, FMT_FLAGS_M2M, 0);
if (!fmt) if (!fmt)