Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fdc5107b authored by Haritha Chintalapati's avatar Haritha Chintalapati Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: camera: sensor: Add error handling when adding request" into camera-kernel.lnx.4.0

parents 1eb162cc c1b6545f
Loading
Loading
Loading
Loading
+30 −5
Original line number Diff line number Diff line
@@ -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;
+7 −1
Original line number Diff line number Diff line
@@ -1275,7 +1275,13 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)

		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;
+28 −8
Original line number Diff line number Diff line
@@ -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) ==