diff --git a/drivers/cam_sensor_module/cam_actuator/cam_actuator_core.c b/drivers/cam_sensor_module/cam_actuator/cam_actuator_core.c index 06f98a01d1df..a3fc2d7756ad 100644 --- a/drivers/cam_sensor_module/cam_actuator/cam_actuator_core.c +++ b/drivers/cam_sensor_module/cam_actuator/cam_actuator_core.c @@ -360,10 +360,11 @@ int32_t cam_actuator_establish_link( return 0; } -static void cam_actuator_update_req_mgr( +static int cam_actuator_update_req_mgr( struct cam_actuator_ctrl_t *a_ctrl, struct cam_packet *csl_packet) { + int rc = 0; struct cam_req_mgr_add_request add_req; add_req.link_hdl = a_ctrl->bridge_intf.link_hdl; @@ -374,13 +375,22 @@ static void cam_actuator_update_req_mgr( if (a_ctrl->bridge_intf.crm_cb && a_ctrl->bridge_intf.crm_cb->add_req) { - a_ctrl->bridge_intf.crm_cb->add_req(&add_req); + rc = a_ctrl->bridge_intf.crm_cb->add_req(&add_req); + if (rc) { + CAM_ERR(CAM_ACTUATOR, + "Adding request: %llu failed: rc: %d", + csl_packet->header.request_id, rc); + return rc; + } CAM_DBG(CAM_ACTUATOR, "Request Id: %lld added to CRM", add_req.req_id); } else { CAM_ERR(CAM_ACTUATOR, "Can't add Request ID: %lld to CRM", csl_packet->header.request_id); + rc = -EINVAL; } + + return rc; } int32_t cam_actuator_publish_dev_info(struct cam_req_mgr_device_info *info) @@ -619,7 +629,12 @@ int32_t cam_actuator_i2c_pkt_parse(struct cam_actuator_ctrl_t *a_ctrl, "Auto move lens parsing failed: %d", rc); goto end; } - cam_actuator_update_req_mgr(a_ctrl, csl_packet); + rc = cam_actuator_update_req_mgr(a_ctrl, csl_packet); + if (rc) { + CAM_ERR(CAM_ACTUATOR, + "Failed in adding request to request manager"); + goto end; + } break; case CAM_ACTUATOR_PACKET_MANUAL_MOVE_LENS: if (a_ctrl->cam_act_state < CAM_ACTUATOR_CONFIG) { @@ -651,7 +666,12 @@ int32_t cam_actuator_i2c_pkt_parse(struct cam_actuator_ctrl_t *a_ctrl, goto end; } - cam_actuator_update_req_mgr(a_ctrl, csl_packet); + rc = cam_actuator_update_req_mgr(a_ctrl, csl_packet); + if (rc) { + CAM_ERR(CAM_ACTUATOR, + "Failed in adding request to request manager"); + goto end; + } break; case CAM_PKT_NOP_OPCODE: if (a_ctrl->cam_act_state < CAM_ACTUATOR_CONFIG) { @@ -661,7 +681,12 @@ int32_t cam_actuator_i2c_pkt_parse(struct cam_actuator_ctrl_t *a_ctrl, rc = -EINVAL; goto end; } - cam_actuator_update_req_mgr(a_ctrl, csl_packet); + rc = cam_actuator_update_req_mgr(a_ctrl, csl_packet); + if (rc) { + CAM_ERR(CAM_ACTUATOR, + "Failed in adding request to request manager"); + goto end; + } break; case CAM_ACTUATOR_PACKET_OPCODE_READ: { struct cam_buf_io_cfg *io_cfg; diff --git a/drivers/cam_sensor_module/cam_flash/cam_flash_core.c b/drivers/cam_sensor_module/cam_flash/cam_flash_core.c index 3212c795473e..15def761af55 100644 --- a/drivers/cam_sensor_module/cam_flash/cam_flash_core.c +++ b/drivers/cam_sensor_module/cam_flash/cam_flash_core.c @@ -1275,7 +1275,13 @@ update_req_mgr: if (fctrl->bridge_intf.crm_cb && fctrl->bridge_intf.crm_cb->add_req) - fctrl->bridge_intf.crm_cb->add_req(&add_req); + rc = fctrl->bridge_intf.crm_cb->add_req(&add_req); + if (rc) { + CAM_ERR(CAM_FLASH, + "Failed in adding request: %llu to request manager", + csl_packet->header.request_id); + return rc; + } CAM_DBG(CAM_FLASH, "add req to req_mgr= %lld", add_req.req_id); } return rc; diff --git a/drivers/cam_sensor_module/cam_sensor/cam_sensor_core.c b/drivers/cam_sensor_module/cam_sensor/cam_sensor_core.c index 42f92279f0af..55779be0dac0 100644 --- a/drivers/cam_sensor_module/cam_sensor/cam_sensor_core.c +++ b/drivers/cam_sensor_module/cam_sensor/cam_sensor_core.c @@ -13,25 +13,34 @@ #include "cam_packet_util.h" -static void cam_sensor_update_req_mgr( +static int cam_sensor_update_req_mgr( struct cam_sensor_ctrl_t *s_ctrl, struct cam_packet *csl_packet) { + int rc = 0; struct cam_req_mgr_add_request add_req; add_req.link_hdl = s_ctrl->bridge_intf.link_hdl; add_req.req_id = csl_packet->header.request_id; - CAM_DBG(CAM_SENSOR, " Rxed Req Id: %lld", + CAM_DBG(CAM_SENSOR, " Rxed Req Id: %llu", csl_packet->header.request_id); add_req.dev_hdl = s_ctrl->bridge_intf.device_hdl; add_req.skip_before_applying = 0; add_req.trigger_eof = false; if (s_ctrl->bridge_intf.crm_cb && - s_ctrl->bridge_intf.crm_cb->add_req) - s_ctrl->bridge_intf.crm_cb->add_req(&add_req); + s_ctrl->bridge_intf.crm_cb->add_req) { + rc = s_ctrl->bridge_intf.crm_cb->add_req(&add_req); + if (rc) { + CAM_ERR(CAM_SENSOR, + "Adding request: %llu failed with request manager rc: %d", + csl_packet->header.request_id, rc); + return rc; + } + } - CAM_DBG(CAM_SENSOR, " add req to req mgr: %lld", + CAM_DBG(CAM_SENSOR, "Successfully add req: %llu to req mgr", add_req.req_id); + return rc; } static void cam_sensor_release_stream_rsc( @@ -248,7 +257,10 @@ static int32_t cam_sensor_i2c_pkt_parse(struct cam_sensor_ctrl_t *s_ctrl, * and freeze. If this log is triggered then * fix it. */ - cam_sensor_update_req_mgr(s_ctrl, csl_packet); + rc = cam_sensor_update_req_mgr(s_ctrl, csl_packet); + if (rc) + CAM_ERR(CAM_SENSOR, + "Failed in adding request to req_mgr"); goto end; } break; @@ -277,7 +289,10 @@ static int32_t cam_sensor_i2c_pkt_parse(struct cam_sensor_ctrl_t *s_ctrl, goto end; } - cam_sensor_update_req_mgr(s_ctrl, csl_packet); + rc = cam_sensor_update_req_mgr(s_ctrl, csl_packet); + if (rc) + CAM_ERR(CAM_SENSOR, + "Failed in adding request to req_mgr"); goto end; } default: @@ -301,7 +316,12 @@ static int32_t cam_sensor_i2c_pkt_parse(struct cam_sensor_ctrl_t *s_ctrl, CAM_SENSOR_PACKET_OPCODE_SENSOR_UPDATE) { i2c_reg_settings->request_id = csl_packet->header.request_id; - cam_sensor_update_req_mgr(s_ctrl, csl_packet); + rc = cam_sensor_update_req_mgr(s_ctrl, csl_packet); + if (rc) { + CAM_ERR(CAM_SENSOR, + "Failed in adding request to req_mgr"); + goto end; + } } if ((csl_packet->header.op_code & 0xFFFFFF) ==