]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: mediatek: vcodec: use = { } instead of memset()
authorQianfeng Rong <rongqianfeng@vivo.com>
Sun, 7 Sep 2025 09:35:57 +0000 (17:35 +0800)
committerHans Verkuil <hverkuil+cisco@kernel.org>
Mon, 5 Jan 2026 14:56:31 +0000 (15:56 +0100)
Based on testing and recommendations by David Lechner et al. [1][2],
using = { } to initialize a structure or array is the preferred way
to do this in the kernel.

Converts memset() to = { }, thereby:
- Eliminating the risk of sizeof() mismatches.
- Simplifying the code.

[1]: https://lore.kernel.org/linux-iio/202505090942.48EBF01B@keescook/
[2]: https://lore.kernel.org/lkml/20250614151844.50524610@jic23-huawei/

Signed-off-by: Qianfeng Rong <rongqianfeng@vivo.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_if.c
drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.c
drivers/media/platform/mediatek/vcodec/encoder/mtk_vcodec_enc.c
drivers/media/platform/mediatek/vcodec/encoder/venc_vpu_if.c

index eb3354192853f104c9105cfd2a1b516086026d39..80554b2c26c066072b248fc1568a57290d979529 100644 (file)
@@ -548,10 +548,9 @@ static bool vp9_wait_dec_end(struct vdec_vp9_inst *inst)
 static struct vdec_vp9_inst *vp9_alloc_inst(struct mtk_vcodec_dec_ctx *ctx)
 {
        int result;
-       struct mtk_vcodec_mem mem;
+       struct mtk_vcodec_mem mem = { };
        struct vdec_vp9_inst *inst;
 
-       memset(&mem, 0, sizeof(mem));
        mem.size = sizeof(struct vdec_vp9_inst);
        result = mtk_vcodec_mem_alloc(ctx, &mem);
        if (result)
index 40b97f114cf6f02e4bc6317346b05eb4e660e90a..b35759a0b3533ef0a00bea7a619849e7202b53f1 100644 (file)
@@ -182,12 +182,11 @@ static int vcodec_vpu_send_msg(struct vdec_vpu_inst *vpu, void *msg, int len)
 
 static int vcodec_send_ap_ipi(struct vdec_vpu_inst *vpu, unsigned int msg_id)
 {
-       struct vdec_ap_ipi_cmd msg;
+       struct vdec_ap_ipi_cmd msg = { };
        int err = 0;
 
        mtk_vdec_debug(vpu->ctx, "+ id=%X", msg_id);
 
-       memset(&msg, 0, sizeof(msg));
        msg.msg_id = msg_id;
        if (vpu->fw_abi_version < 2)
                msg.vpu_inst_addr = vpu->inst_addr;
@@ -202,7 +201,7 @@ static int vcodec_send_ap_ipi(struct vdec_vpu_inst *vpu, unsigned int msg_id)
 
 int vpu_dec_init(struct vdec_vpu_inst *vpu)
 {
-       struct vdec_ap_ipi_init msg;
+       struct vdec_ap_ipi_init msg = { };
        int err;
 
        init_waitqueue_head(&vpu->wq);
@@ -226,7 +225,6 @@ int vpu_dec_init(struct vdec_vpu_inst *vpu)
                }
        }
 
-       memset(&msg, 0, sizeof(msg));
        msg.msg_id = AP_IPIMSG_DEC_INIT;
        msg.ap_inst_addr = (unsigned long)vpu;
        msg.codec_type = vpu->codec_type;
@@ -246,7 +244,7 @@ int vpu_dec_init(struct vdec_vpu_inst *vpu)
 
 int vpu_dec_start(struct vdec_vpu_inst *vpu, uint32_t *data, unsigned int len)
 {
-       struct vdec_ap_ipi_dec_start msg;
+       struct vdec_ap_ipi_dec_start msg = { };
        int i;
        int err = 0;
 
@@ -255,7 +253,6 @@ int vpu_dec_start(struct vdec_vpu_inst *vpu, uint32_t *data, unsigned int len)
                return -EINVAL;
        }
 
-       memset(&msg, 0, sizeof(msg));
        msg.msg_id = AP_IPIMSG_DEC_START;
        if (vpu->fw_abi_version < 2)
                msg.vpu_inst_addr = vpu->inst_addr;
@@ -274,7 +271,7 @@ int vpu_dec_start(struct vdec_vpu_inst *vpu, uint32_t *data, unsigned int len)
 int vpu_dec_get_param(struct vdec_vpu_inst *vpu, uint32_t *data,
                      unsigned int len, unsigned int param_type)
 {
-       struct vdec_ap_ipi_get_param msg;
+       struct vdec_ap_ipi_get_param msg = { };
        int err;
 
        if (len > ARRAY_SIZE(msg.data)) {
@@ -282,7 +279,6 @@ int vpu_dec_get_param(struct vdec_vpu_inst *vpu, uint32_t *data,
                return -EINVAL;
        }
 
-       memset(&msg, 0, sizeof(msg));
        msg.msg_id = AP_IPIMSG_DEC_GET_PARAM;
        msg.inst_id = vpu->inst_id;
        memcpy(msg.data, data, sizeof(unsigned int) * len);
index b3a0a1d8b7a8e923e41c37f536506e73bae028c8..0d4e944636852eff0ade448ac52b0b2e8b10cd3d 100644 (file)
@@ -1049,7 +1049,7 @@ static int mtk_venc_encode_header(void *priv)
 
 static int mtk_venc_param_change(struct mtk_vcodec_enc_ctx *ctx)
 {
-       struct venc_enc_param enc_prm;
+       struct venc_enc_param enc_prm = { };
        struct vb2_v4l2_buffer *vb2_v4l2 = v4l2_m2m_next_src_buf(ctx->m2m_ctx);
        struct mtk_video_enc_buf *mtk_buf;
        int ret = 0;
@@ -1060,7 +1060,6 @@ static int mtk_venc_param_change(struct mtk_vcodec_enc_ctx *ctx)
 
        mtk_buf = container_of(vb2_v4l2, struct mtk_video_enc_buf, m2m_buf.vb);
 
-       memset(&enc_prm, 0, sizeof(enc_prm));
        if (mtk_buf->param_change == MTK_ENCODE_PARAM_NONE)
                return 0;
 
@@ -1123,7 +1122,7 @@ static void mtk_venc_worker(struct work_struct *work)
        struct mtk_vcodec_enc_ctx *ctx = container_of(work, struct mtk_vcodec_enc_ctx,
                                    encode_work);
        struct vb2_v4l2_buffer *src_buf, *dst_buf;
-       struct venc_frm_buf frm_buf;
+       struct venc_frm_buf frm_buf = { };
        struct mtk_vcodec_mem bs_buf;
        struct venc_done_result enc_result = { };
        int ret, i;
@@ -1153,7 +1152,6 @@ static void mtk_venc_worker(struct work_struct *work)
                return;
        }
 
-       memset(&frm_buf, 0, sizeof(frm_buf));
        for (i = 0; i < src_buf->vb2_buf.num_planes ; i++) {
                frm_buf.fb_addr[i].dma_addr =
                                vb2_dma_contig_plane_dma_addr(&src_buf->vb2_buf, i);
index 3c229b1f6b21f48f1824bdf00e0be8f05782125e..0c825aa7224dea87292b71c2b15dc2a9aa1440a5 100644 (file)
@@ -133,7 +133,7 @@ static int vpu_enc_send_msg(struct venc_vpu_inst *vpu, void *msg,
 int vpu_enc_init(struct venc_vpu_inst *vpu)
 {
        int status;
-       struct venc_ap_ipi_msg_init out;
+       struct venc_ap_ipi_msg_init out = { };
 
        init_waitqueue_head(&vpu->wq_hd);
        vpu->signaled = 0;
@@ -149,7 +149,6 @@ int vpu_enc_init(struct venc_vpu_inst *vpu)
                return -EINVAL;
        }
 
-       memset(&out, 0, sizeof(out));
        out.msg_id = AP_IPIMSG_ENC_INIT;
        out.venc_inst = (unsigned long)vpu;
        if (vpu_enc_send_msg(vpu, &out, sizeof(out))) {
@@ -192,11 +191,10 @@ int vpu_enc_set_param(struct venc_vpu_inst *vpu,
        size_t msg_size = is_ext ?
                sizeof(struct venc_ap_ipi_msg_set_param_ext) :
                sizeof(struct venc_ap_ipi_msg_set_param);
-       struct venc_ap_ipi_msg_set_param_ext out;
+       struct venc_ap_ipi_msg_set_param_ext out = { };
 
        mtk_venc_debug(vpu->ctx, "id %d ->", id);
 
-       memset(&out, 0, sizeof(out));
        out.base.msg_id = AP_IPIMSG_ENC_SET_PARAM;
        out.base.vpu_inst_addr = vpu->inst_addr;
        out.base.param_id = id;
@@ -259,11 +257,10 @@ static int vpu_enc_encode_32bits(struct venc_vpu_inst *vpu,
        size_t msg_size = is_ext ?
                sizeof(struct venc_ap_ipi_msg_enc_ext) :
                sizeof(struct venc_ap_ipi_msg_enc);
-       struct venc_ap_ipi_msg_enc_ext out;
+       struct venc_ap_ipi_msg_enc_ext out = { };
 
        mtk_venc_debug(vpu->ctx, "bs_mode %d ->", bs_mode);
 
-       memset(&out, 0, sizeof(out));
        out.base.msg_id = AP_IPIMSG_ENC_ENCODE;
        out.base.vpu_inst_addr = vpu->inst_addr;
        out.base.bs_mode = bs_mode;
@@ -303,12 +300,11 @@ static int vpu_enc_encode_34bits(struct venc_vpu_inst *vpu,
                                 struct mtk_vcodec_mem *bs_buf,
                                 struct venc_frame_info *frame_info)
 {
-       struct venc_ap_ipi_msg_enc_ext_34 out;
+       struct venc_ap_ipi_msg_enc_ext_34 out = { };
        size_t msg_size = sizeof(struct venc_ap_ipi_msg_enc_ext_34);
 
        mtk_venc_debug(vpu->ctx, "bs_mode %d ->", bs_mode);
 
-       memset(&out, 0, sizeof(out));
        out.msg_id = AP_IPIMSG_ENC_ENCODE;
        out.vpu_inst_addr = vpu->inst_addr;
        out.bs_mode = bs_mode;
@@ -368,9 +364,8 @@ int vpu_enc_encode(struct venc_vpu_inst *vpu, unsigned int bs_mode,
 
 int vpu_enc_deinit(struct venc_vpu_inst *vpu)
 {
-       struct venc_ap_ipi_msg_deinit out;
+       struct venc_ap_ipi_msg_deinit out = { };
 
-       memset(&out, 0, sizeof(out));
        out.msg_id = AP_IPIMSG_ENC_DEINIT;
        out.vpu_inst_addr = vpu->inst_addr;
        if (vpu_enc_send_msg(vpu, &out, sizeof(out))) {