From 3486a7e10a0a12585677c7ff8d2e69044625ada2 Mon Sep 17 00:00:00 2001 From: Qiwei Liu Date: Fri, 18 Sep 2020 22:25:35 +0800 Subject: [PATCH] msm: vidc: always use HQ for HEIC and lossless encoder Always use HQ mode for HEIC and lossless encoder. Refine FW version retrieve to support version string start with lower case v. Change-Id: I092956b34250da55a4cfc2c7b88815c05a64375f Signed-off-by: Qiwei Liu --- msm/vidc/hfi_common.c | 7 ++++--- msm/vidc/msm_vidc_clocks.c | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/msm/vidc/hfi_common.c b/msm/vidc/hfi_common.c index addf03b45c8f..bbb48a5120de 100644 --- a/msm/vidc/hfi_common.c +++ b/msm/vidc/hfi_common.c @@ -3993,16 +3993,17 @@ static int venus_hfi_get_fw_info(void *dev, struct hal_fw_info *fw_info) smem_table_ptr + smem_image_index_venus, VENUS_VERSION_LENGTH); - while (version[i++] != 'V' && i < VENUS_VERSION_LENGTH) + while (version[i] != 'V' && version[i] != 'v' && + ++i < VENUS_VERSION_LENGTH) ; - if (i == VENUS_VERSION_LENGTH - 1) { + if (i >= VENUS_VERSION_LENGTH - 1) { d_vpr_e("Venus version string is not proper\n"); fw_info->version[0] = '\0'; goto fail_version_string; } - for (i--; i < VENUS_VERSION_LENGTH && j < VENUS_VERSION_LENGTH - 1; i++) + for (; i < VENUS_VERSION_LENGTH && j < VENUS_VERSION_LENGTH - 1; i++) fw_info->version[j++] = version[i]; fw_info->version[j] = '\0'; diff --git a/msm/vidc/msm_vidc_clocks.c b/msm/vidc/msm_vidc_clocks.c index 9a4716ef16eb..b9a1359a9387 100644 --- a/msm/vidc/msm_vidc_clocks.c +++ b/msm/vidc/msm_vidc_clocks.c @@ -1462,7 +1462,10 @@ int msm_vidc_decide_core_and_power_mode_iris2(struct msm_vidc_inst *inst) max_hq_mbpf = inst->core->resources.max_hq_mbs_per_frame; max_hq_mbps = inst->core->resources.max_hq_mbs_per_sec; - if (mbpf <= max_hq_mbpf && mbps <= max_hq_mbps) + /* Power saving always disabled for CQ and LOSSLESS RC modes. */ + if (inst->rc_type == V4L2_MPEG_VIDEO_BITRATE_MODE_CQ || + inst->rc_type == RATE_CONTROL_LOSSLESS || + (mbpf <= max_hq_mbpf && mbps <= max_hq_mbps)) enable = false; rc = msm_vidc_power_save_mode_enable(inst, enable);