]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: qcom: iris: Optimize iris_hfi_gen1_packet_session_set_property
authorWangao Wang <wangao.wang@oss.qualcomm.com>
Tue, 12 May 2026 08:55:14 +0000 (16:55 +0800)
committerBryan O'Donoghue <bod@kernel.org>
Sat, 30 May 2026 07:41:48 +0000 (08:41 +0100)
Modify iris_hfi_gen1_packet_session_set_property to simplify size
calculations and remove redundant code patterns.

Previously, packet->shdr.hdr.size was incremented by sizeof(u32) in
every switch case, resulting in repetitive and less maintainable
logic.

Reviewed-by: Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8650-HDK
Signed-off-by: Wangao Wang <wangao.wang@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Bryan O'Donoghue <bod@kernel.org>
drivers/media/platform/qcom/iris/iris_hfi_gen1_command.c

index 4cb54e5e4f1f15137d08027ac9a0d46c46784ea8..7674b47ad6c49adfaf16b444c8ec7295b230a529 100644 (file)
@@ -485,7 +485,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
 {
        void *prop_data = &packet->data[1];
 
-       packet->shdr.hdr.size = sizeof(*packet);
+       packet->shdr.hdr.size = sizeof(*packet) + sizeof(ptype);
        packet->shdr.hdr.pkt_type = HFI_CMD_SESSION_SET_PROPERTY;
        packet->shdr.session_id = inst->session_id;
        packet->num_properties = 1;
@@ -498,14 +498,14 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
                fsize->buffer_type = in->buffer_type;
                fsize->height = in->height;
                fsize->width = in->width;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*fsize);
+               packet->shdr.hdr.size += sizeof(*fsize);
                break;
        }
        case HFI_PROPERTY_CONFIG_VIDEOCORES_USAGE: {
                struct hfi_videocores_usage_type *in = pdata, *cu = prop_data;
 
                cu->video_core_enable_mask = in->video_core_enable_mask;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*cu);
+               packet->shdr.hdr.size += sizeof(*cu);
                break;
        }
        case HFI_PROPERTY_PARAM_UNCOMPRESSED_FORMAT_SELECT: {
@@ -514,7 +514,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
 
                hfi->buffer_type = in->buffer_type;
                hfi->format = in->format;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*hfi);
+               packet->shdr.hdr.size += sizeof(*hfi);
                break;
        }
        case HFI_PROPERTY_PARAM_UNCOMPRESSED_PLANE_ACTUAL_CONSTRAINTS_INFO: {
@@ -533,7 +533,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
                        info->plane_format[1].buffer_alignment = 256;
                }
 
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*info);
+               packet->shdr.hdr.size += sizeof(*info);
                break;
        }
        case HFI_PROPERTY_PARAM_BUFFER_COUNT_ACTUAL: {
@@ -543,7 +543,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
                count->type = in->type;
                count->count_actual = in->count_actual;
                count->count_min_host = in->count_min_host;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*count);
+               packet->shdr.hdr.size += sizeof(*count);
                break;
        }
        case HFI_PROPERTY_PARAM_VDEC_MULTI_STREAM: {
@@ -552,7 +552,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
 
                multi->buffer_type = in->buffer_type;
                multi->enable = in->enable;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*multi);
+               packet->shdr.hdr.size += sizeof(*multi);
                break;
        }
        case HFI_PROPERTY_PARAM_BUFFER_SIZE_ACTUAL: {
@@ -560,7 +560,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
 
                sz->size = in->size;
                sz->type = in->type;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*sz);
+               packet->shdr.hdr.size += sizeof(*sz);
                break;
        }
        case HFI_PROPERTY_PARAM_WORK_ROUTE: {
@@ -568,7 +568,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
                u32 *in = pdata;
 
                wr->video_work_route = *in;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*wr);
+               packet->shdr.hdr.size += sizeof(*wr);
                break;
        }
        case HFI_PROPERTY_PARAM_WORK_MODE: {
@@ -576,7 +576,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
                u32 *in = pdata;
 
                wm->video_work_mode = *in;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*wm);
+               packet->shdr.hdr.size += sizeof(*wm);
                break;
        }
        case HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT: {
@@ -592,7 +592,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
                        /* Level not supported, falling back to 1 */
                        pl->level = 1;
 
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*pl);
+               packet->shdr.hdr.size += sizeof(*pl);
                break;
        }
        case HFI_PROPERTY_CONFIG_VENC_SYNC_FRAME_SEQUENCE_HEADER: {
@@ -600,7 +600,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
                u32 *in = pdata;
 
                en->enable = *in;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*en);
+               packet->shdr.hdr.size += sizeof(*en);
                break;
        }
        case HFI_PROPERTY_CONFIG_VENC_TARGET_BITRATE: {
@@ -608,7 +608,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
 
                brate->bitrate = in->bitrate;
                brate->layer_id = in->layer_id;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*brate);
+               packet->shdr.hdr.size += sizeof(*brate);
                break;
        }
        case HFI_PROPERTY_PARAM_VENC_RATE_CONTROL: {
@@ -627,7 +627,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
                }
 
                packet->data[1] = *in;
-               packet->shdr.hdr.size += sizeof(u32) * 2;
+               packet->shdr.hdr.size += sizeof(u32);
                break;
        }
        case HFI_PROPERTY_PARAM_VENC_H264_ENTROPY_CONTROL: {
@@ -637,7 +637,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
                entropy->entropy_mode = *in;
                if (entropy->entropy_mode == HFI_H264_ENTROPY_CABAC)
                        entropy->cabac_model = HFI_H264_CABAC_MODEL_0;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*entropy);
+               packet->shdr.hdr.size += sizeof(*entropy);
                break;
        }
        case HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2: {
@@ -662,7 +662,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
                        ((max_qp & 0xFF) << 16);
                range->min_qp.enable = 7;
                range->max_qp.enable = 7;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*range);
+               packet->shdr.hdr.size += sizeof(*range);
                break;
        }
        case HFI_PROPERTY_CONFIG_FRAME_RATE: {
@@ -671,7 +671,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
 
                frate->buffer_type = in->buffer_type;
                frate->framerate = in->framerate;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*frate);
+               packet->shdr.hdr.size += sizeof(*frate);
                break;
        }
        case HFI_PROPERTY_PARAM_UNCOMPRESSED_PLANE_ACTUAL_INFO: {
@@ -683,7 +683,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
                plane_actual_info->plane_format[0] = in->plane_format[0];
                if (in->num_planes > 1)
                        plane_actual_info->plane_format[1] = in->plane_format[1];
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*plane_actual_info);
+               packet->shdr.hdr.size += sizeof(*plane_actual_info);
                break;
        }
        case HFI_PROPERTY_PARAM_VENC_INTRA_REFRESH: {
@@ -691,7 +691,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
 
                intra_refresh->mode = in->mode;
                intra_refresh->mbs = in->mbs;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*intra_refresh);
+               packet->shdr.hdr.size += sizeof(*intra_refresh);
                break;
        }
        case HFI_PROPERTY_PARAM_VENC_LTRMODE: {
@@ -700,7 +700,7 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
                ltr_mode->mode = in->mode;
                ltr_mode->count = in->count;
                ltr_mode->trust_mode = in->trust_mode;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*ltr_mode);
+               packet->shdr.hdr.size += sizeof(*ltr_mode);
                break;
        }
        case HFI_PROPERTY_CONFIG_VENC_USELTRFRAME: {
@@ -709,14 +709,14 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
                ltr_use->frames = in->frames;
                ltr_use->ref_ltr = in->ref_ltr;
                ltr_use->use_constrnt = in->use_constrnt;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*ltr_use);
+               packet->shdr.hdr.size += sizeof(*ltr_use);
                break;
        }
        case HFI_PROPERTY_CONFIG_VENC_MARKLTRFRAME: {
                struct hfi_ltr_mark *in = pdata, *ltr_mark = prop_data;
 
                ltr_mark->mark_frame = in->mark_frame;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*ltr_mark);
+               packet->shdr.hdr.size += sizeof(*ltr_mark);
                break;
        }
        case HFI_PROPERTY_CONFIG_VENC_INTRA_PERIOD: {
@@ -724,21 +724,21 @@ iris_hfi_gen1_packet_session_set_property(struct hfi_session_set_property_pkt *p
 
                intra_period->pframes = in->pframes;
                intra_period->bframes = in->bframes;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(*intra_period);
+               packet->shdr.hdr.size += sizeof(*intra_period);
                break;
        }
        case HFI_PROPERTY_PARAM_VENC_HIER_P_MAX_NUM_ENH_LAYER: {
                u32 *in = pdata;
 
                packet->data[1] = *in;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(u32);
+               packet->shdr.hdr.size += sizeof(u32);
                break;
        }
        case HFI_PROPERTY_CONFIG_VENC_HIER_P_ENH_LAYER: {
                u32 *in = pdata;
 
                packet->data[1] = *in;
-               packet->shdr.hdr.size += sizeof(u32) + sizeof(u32);
+               packet->shdr.hdr.size += sizeof(u32);
                break;
        }
        default: