From 7429211dfcea83fed5ad5b339d7f395bef3e343c Mon Sep 17 00:00:00 2001 From: Mukund Madhusudan Atre Date: Tue, 21 Apr 2020 21:22:55 -0700 Subject: [PATCH] msm: camera: isp: Fix checking for valid bw vote The BW config coming from user space functions based on usage type as single or dual. Checking the validity of bw vote based on hw index caused bw updates to be ignored from isp side. Fix checking for valid bw vote by falling back to walking through all indices. CRs-Fixed: 2669422 Change-Id: I5762fb06c8b69ade286d890146e91844fbde5ce7 Signed-off-by: Mukund Madhusudan Atre --- drivers/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c b/drivers/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c index 253361b608f8..5d8f1b2c6860 100644 --- a/drivers/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c +++ b/drivers/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c @@ -3805,7 +3805,7 @@ static int cam_ife_config_hw_external_cdm(struct cam_ife_hw_mgr_ctx *ctx, static int cam_ife_mgr_config_hw(void *hw_mgr_priv, void *config_hw_args) { - int rc = -1, i, idx; + int rc = -1, i; struct cam_isp_hw_config_args *cfg; struct cam_ife_hw_mgr_ctx *ctx; struct cam_isp_prepare_hw_update_data *hw_update_data; @@ -3844,18 +3844,17 @@ static int cam_ife_mgr_config_hw(void *hw_mgr_priv, CAM_DBG(CAM_ISP, "Ctx[%pK][%d] : Applying Req %lld, init_packet=%d", ctx, ctx->ctx_index, cfg->request_id, cfg->init_packet); - for (i = 0; i < ctx->num_base; i++) { - idx = ctx->base[i].idx; - if (hw_update_data->bw_config_valid[idx] == true) { + for (i = 0; i < CAM_IFE_HW_NUM_MAX; i++) { + if (hw_update_data->bw_config_valid[i]) { CAM_DBG(CAM_PERF, "idx=%d, bw_config_version=%d", - idx, hw_update_data->bw_config_version); + i, hw_update_data->bw_config_version); if (hw_update_data->bw_config_version == CAM_ISP_BW_CONFIG_V1) { rc = cam_isp_blob_bw_update( (struct cam_isp_bw_config *) - &hw_update_data->bw_config[idx], ctx); + &hw_update_data->bw_config[i], ctx); if (rc) CAM_ERR(CAM_PERF, "Bandwidth Update Failed rc: %d", rc); @@ -3863,7 +3862,7 @@ static int cam_ife_mgr_config_hw(void *hw_mgr_priv, CAM_ISP_BW_CONFIG_V2) { rc = cam_isp_blob_bw_update_v2( (struct cam_isp_bw_config_v2 *) - &hw_update_data->bw_config_v2[idx], + &hw_update_data->bw_config_v2[i], ctx); if (rc) CAM_ERR(CAM_PERF,