From d64baed296ec3ba5c712a23b7b78b3b391971dba Mon Sep 17 00:00:00 2001 From: Chinmay Sawarkar Date: Fri, 10 May 2019 14:00:13 -0700 Subject: [PATCH] msm: vidc: Use input bitrate to calculate decoder bus vote By calculating bitrate at each frame, we get a better estimate of the BW requirements of the decode session. Thus improving performance and power usage. CRs-Fixed: 2451137 Change-Id: I22f0029bbb7d501340469a317e89de7eb34717c4 Signed-off-by: Chinmay Sawarkar --- msm/vidc/msm_vidc_bus_iris2.c | 2 +- msm/vidc/msm_vidc_clocks.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/msm/vidc/msm_vidc_bus_iris2.c b/msm/vidc/msm_vidc_bus_iris2.c index 400ca9991314..fc91088ef6d7 100644 --- a/msm/vidc/msm_vidc_bus_iris2.c +++ b/msm/vidc/msm_vidc_bus_iris2.c @@ -134,7 +134,7 @@ static unsigned long __calculate_decoder(struct vidc_bus_vote_data *d, lcu_per_frame = DIV_ROUND_UP(width, lcu_size) * DIV_ROUND_UP(height, lcu_size); - bitrate = __lut(width, height, fps)->bitrate; + bitrate = (d->bitrate + 1000000 - 1) / 1000000; bins_to_bit_factor = FP_INT(4); diff --git a/msm/vidc/msm_vidc_clocks.c b/msm/vidc/msm_vidc_clocks.c index 620812cbb621..faea7f22f46b 100644 --- a/msm/vidc/msm_vidc_clocks.c +++ b/msm/vidc/msm_vidc_clocks.c @@ -344,6 +344,9 @@ int msm_comm_vote_bus(struct msm_vidc_core *core) (inst->clk_data.frame_rate >> 16) * vote_data[i].fps; } + } else if (inst->session_type == MSM_VIDC_DECODER) { + vote_data[i].bitrate = + filled_len * vote_data[i].fps * 8; } vote_data[i].power_mode = 0;