mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 13:49:24 -04:00
Merge "msm: camera: sensor: Add error handling when adding request" into camera-kernel.lnx.4.0
This commit is contained in:
commit
fdc5107b5e
3 changed files with 65 additions and 14 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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) ==
|
||||
|
|
|
|||
Loading…
Reference in a new issue