Loading drivers/media/platform/msm/camera/cam_isp/cam_isp_context.c +7 −2 Original line number Diff line number Diff line Loading @@ -3170,7 +3170,7 @@ static int __cam_isp_ctx_start_dev_in_ready(struct cam_context *ctx, ctx_isp->reported_req_id = 0; ctx_isp->substate_activated = ctx_isp->rdi_only_context ? CAM_ISP_CTX_ACTIVATED_APPLIED : (req_isp->num_fence_map_out) ? CAM_ISP_CTX_ACTIVATED_APPLIED : (req_isp->num_fence_map_out) ? CAM_ISP_CTX_ACTIVATED_EPOCH : CAM_ISP_CTX_ACTIVATED_SOF; /* Loading @@ -3192,8 +3192,13 @@ static int __cam_isp_ctx_start_dev_in_ready(struct cam_context *ctx, CAM_DBG(CAM_ISP, "start device success ctx %u", ctx->ctx_id); list_del_init(&req->list); list_add_tail(&req->list, &ctx->wait_req_list); if (req_isp->num_fence_map_out) { list_add_tail(&req->list, &ctx->active_req_list); ctx_isp->active_req_cnt++; } else { list_add_tail(&req->list, &ctx->wait_req_list); } end: return rc; } Loading drivers/media/platform/msm/camera/cam_req_mgr/cam_req_mgr_core.c +7 −3 Original line number Diff line number Diff line Loading @@ -1886,7 +1886,9 @@ int cam_req_mgr_process_add_req(void *priv, void *data) mutex_lock(&link->req.lock); idx = __cam_req_mgr_find_slot_for_req(link->req.in_q, add_req->req_id); if (idx < 0) { CAM_ERR(CAM_CRM, "req %lld not found in in_q", add_req->req_id); CAM_ERR(CAM_CRM, "req %lld not found in in_q for dev %s on link 0x%x", add_req->req_id, device->dev_info.name, link->link_hdl); rc = -EBADSLT; mutex_unlock(&link->req.lock); goto end; Loading @@ -1906,8 +1908,10 @@ int cam_req_mgr_process_add_req(void *priv, void *data) if (slot->state != CRM_REQ_STATE_PENDING && slot->state != CRM_REQ_STATE_EMPTY) { CAM_WARN(CAM_CRM, "Unexpected state %d for slot %d map %x", slot->state, idx, slot->req_ready_map); CAM_WARN(CAM_CRM, "Unexpected state %d for slot %d map %x for dev %s on link 0x%x", slot->state, idx, slot->req_ready_map, device->dev_info.name, link->link_hdl); } slot->state = CRM_REQ_STATE_PENDING; Loading drivers/media/platform/msm/camera/cam_sensor_module/cam_sensor/cam_sensor_core.c +10 −3 Original line number Diff line number Diff line /* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -937,9 +937,13 @@ int32_t cam_sensor_driver_cmd(struct cam_sensor_ctrl_t *s_ctrl, rc = cam_sensor_apply_settings(s_ctrl, 0, CAM_SENSOR_PACKET_OPCODE_SENSOR_INITIAL_CONFIG); s_ctrl->i2c_data.init_settings.request_id = -1; if (rc < 0) { CAM_ERR(CAM_SENSOR, "cannot apply init settings"); delete_request(&s_ctrl->i2c_data.init_settings); goto release_mutex; } rc = delete_request(&s_ctrl->i2c_data.init_settings); Loading @@ -948,16 +952,20 @@ int32_t cam_sensor_driver_cmd(struct cam_sensor_ctrl_t *s_ctrl, "Fail in deleting the Init settings"); goto release_mutex; } s_ctrl->i2c_data.init_settings.request_id = -1; } if (s_ctrl->i2c_data.config_settings.is_settings_valid && (s_ctrl->i2c_data.config_settings.request_id == 0)) { rc = cam_sensor_apply_settings(s_ctrl, 0, CAM_SENSOR_PACKET_OPCODE_SENSOR_CONFIG); s_ctrl->i2c_data.config_settings.request_id = -1; if (rc < 0) { CAM_ERR(CAM_SENSOR, "cannot apply config settings"); delete_request( &s_ctrl->i2c_data.config_settings); goto release_mutex; } rc = delete_request(&s_ctrl->i2c_data.config_settings); Loading @@ -967,7 +975,6 @@ int32_t cam_sensor_driver_cmd(struct cam_sensor_ctrl_t *s_ctrl, goto release_mutex; } s_ctrl->sensor_state = CAM_SENSOR_CONFIG; s_ctrl->i2c_data.config_settings.request_id = -1; } } break; Loading drivers/media/platform/msm/camera/cam_sensor_module/cam_sensor_utils/cam_sensor_util.c +2 −3 Original line number Diff line number Diff line Loading @@ -37,8 +37,7 @@ static struct i2c_settings_list* return NULL; tmp->i2c_settings.reg_setting = (struct cam_sensor_i2c_reg_array *) kcalloc(size, sizeof(struct cam_sensor_i2c_reg_array), GFP_KERNEL); vzalloc(size * sizeof(struct cam_sensor_i2c_reg_array)); if (tmp->i2c_settings.reg_setting == NULL) { list_del(&(tmp->list)); kfree(tmp); Loading @@ -61,7 +60,7 @@ int32_t delete_request(struct i2c_settings_array *i2c_array) list_for_each_entry_safe(i2c_list, i2c_next, &(i2c_array->list_head), list) { kfree(i2c_list->i2c_settings.reg_setting); vfree(i2c_list->i2c_settings.reg_setting); list_del(&(i2c_list->list)); kfree(i2c_list); } Loading drivers/media/platform/msm/camera/cam_utils/cam_soc_util.c +6 −3 Original line number Diff line number Diff line Loading @@ -436,14 +436,17 @@ int cam_soc_util_set_src_clk_rate(struct cam_hw_soc_info *soc_info, int32_t src_clk_idx; struct clk *clk = NULL; int32_t apply_level; uint32_t clk_level_override = 0; if (!soc_info || (soc_info->src_clk_idx < 0)) return -EINVAL; if (soc_info->clk_level_override && clk_rate) clk_rate = soc_info->clk_level_override; src_clk_idx = soc_info->src_clk_idx; clk_level_override = soc_info->clk_level_override; if (clk_level_override && clk_rate) clk_rate = soc_info->clk_rate[clk_level_override][src_clk_idx]; clk = soc_info->clk[src_clk_idx]; if (soc_info->cam_cx_ipeak_enable && clk_rate >= 0) { Loading Loading
drivers/media/platform/msm/camera/cam_isp/cam_isp_context.c +7 −2 Original line number Diff line number Diff line Loading @@ -3170,7 +3170,7 @@ static int __cam_isp_ctx_start_dev_in_ready(struct cam_context *ctx, ctx_isp->reported_req_id = 0; ctx_isp->substate_activated = ctx_isp->rdi_only_context ? CAM_ISP_CTX_ACTIVATED_APPLIED : (req_isp->num_fence_map_out) ? CAM_ISP_CTX_ACTIVATED_APPLIED : (req_isp->num_fence_map_out) ? CAM_ISP_CTX_ACTIVATED_EPOCH : CAM_ISP_CTX_ACTIVATED_SOF; /* Loading @@ -3192,8 +3192,13 @@ static int __cam_isp_ctx_start_dev_in_ready(struct cam_context *ctx, CAM_DBG(CAM_ISP, "start device success ctx %u", ctx->ctx_id); list_del_init(&req->list); list_add_tail(&req->list, &ctx->wait_req_list); if (req_isp->num_fence_map_out) { list_add_tail(&req->list, &ctx->active_req_list); ctx_isp->active_req_cnt++; } else { list_add_tail(&req->list, &ctx->wait_req_list); } end: return rc; } Loading
drivers/media/platform/msm/camera/cam_req_mgr/cam_req_mgr_core.c +7 −3 Original line number Diff line number Diff line Loading @@ -1886,7 +1886,9 @@ int cam_req_mgr_process_add_req(void *priv, void *data) mutex_lock(&link->req.lock); idx = __cam_req_mgr_find_slot_for_req(link->req.in_q, add_req->req_id); if (idx < 0) { CAM_ERR(CAM_CRM, "req %lld not found in in_q", add_req->req_id); CAM_ERR(CAM_CRM, "req %lld not found in in_q for dev %s on link 0x%x", add_req->req_id, device->dev_info.name, link->link_hdl); rc = -EBADSLT; mutex_unlock(&link->req.lock); goto end; Loading @@ -1906,8 +1908,10 @@ int cam_req_mgr_process_add_req(void *priv, void *data) if (slot->state != CRM_REQ_STATE_PENDING && slot->state != CRM_REQ_STATE_EMPTY) { CAM_WARN(CAM_CRM, "Unexpected state %d for slot %d map %x", slot->state, idx, slot->req_ready_map); CAM_WARN(CAM_CRM, "Unexpected state %d for slot %d map %x for dev %s on link 0x%x", slot->state, idx, slot->req_ready_map, device->dev_info.name, link->link_hdl); } slot->state = CRM_REQ_STATE_PENDING; Loading
drivers/media/platform/msm/camera/cam_sensor_module/cam_sensor/cam_sensor_core.c +10 −3 Original line number Diff line number Diff line /* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -937,9 +937,13 @@ int32_t cam_sensor_driver_cmd(struct cam_sensor_ctrl_t *s_ctrl, rc = cam_sensor_apply_settings(s_ctrl, 0, CAM_SENSOR_PACKET_OPCODE_SENSOR_INITIAL_CONFIG); s_ctrl->i2c_data.init_settings.request_id = -1; if (rc < 0) { CAM_ERR(CAM_SENSOR, "cannot apply init settings"); delete_request(&s_ctrl->i2c_data.init_settings); goto release_mutex; } rc = delete_request(&s_ctrl->i2c_data.init_settings); Loading @@ -948,16 +952,20 @@ int32_t cam_sensor_driver_cmd(struct cam_sensor_ctrl_t *s_ctrl, "Fail in deleting the Init settings"); goto release_mutex; } s_ctrl->i2c_data.init_settings.request_id = -1; } if (s_ctrl->i2c_data.config_settings.is_settings_valid && (s_ctrl->i2c_data.config_settings.request_id == 0)) { rc = cam_sensor_apply_settings(s_ctrl, 0, CAM_SENSOR_PACKET_OPCODE_SENSOR_CONFIG); s_ctrl->i2c_data.config_settings.request_id = -1; if (rc < 0) { CAM_ERR(CAM_SENSOR, "cannot apply config settings"); delete_request( &s_ctrl->i2c_data.config_settings); goto release_mutex; } rc = delete_request(&s_ctrl->i2c_data.config_settings); Loading @@ -967,7 +975,6 @@ int32_t cam_sensor_driver_cmd(struct cam_sensor_ctrl_t *s_ctrl, goto release_mutex; } s_ctrl->sensor_state = CAM_SENSOR_CONFIG; s_ctrl->i2c_data.config_settings.request_id = -1; } } break; Loading
drivers/media/platform/msm/camera/cam_sensor_module/cam_sensor_utils/cam_sensor_util.c +2 −3 Original line number Diff line number Diff line Loading @@ -37,8 +37,7 @@ static struct i2c_settings_list* return NULL; tmp->i2c_settings.reg_setting = (struct cam_sensor_i2c_reg_array *) kcalloc(size, sizeof(struct cam_sensor_i2c_reg_array), GFP_KERNEL); vzalloc(size * sizeof(struct cam_sensor_i2c_reg_array)); if (tmp->i2c_settings.reg_setting == NULL) { list_del(&(tmp->list)); kfree(tmp); Loading @@ -61,7 +60,7 @@ int32_t delete_request(struct i2c_settings_array *i2c_array) list_for_each_entry_safe(i2c_list, i2c_next, &(i2c_array->list_head), list) { kfree(i2c_list->i2c_settings.reg_setting); vfree(i2c_list->i2c_settings.reg_setting); list_del(&(i2c_list->list)); kfree(i2c_list); } Loading
drivers/media/platform/msm/camera/cam_utils/cam_soc_util.c +6 −3 Original line number Diff line number Diff line Loading @@ -436,14 +436,17 @@ int cam_soc_util_set_src_clk_rate(struct cam_hw_soc_info *soc_info, int32_t src_clk_idx; struct clk *clk = NULL; int32_t apply_level; uint32_t clk_level_override = 0; if (!soc_info || (soc_info->src_clk_idx < 0)) return -EINVAL; if (soc_info->clk_level_override && clk_rate) clk_rate = soc_info->clk_level_override; src_clk_idx = soc_info->src_clk_idx; clk_level_override = soc_info->clk_level_override; if (clk_level_override && clk_rate) clk_rate = soc_info->clk_rate[clk_level_override][src_clk_idx]; clk = soc_info->clk[src_clk_idx]; if (soc_info->cam_cx_ipeak_enable && clk_rate >= 0) { Loading