|
@@ -974,6 +974,7 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"Inval cam_packet strut size: %zu, len_of_buff: %zu",
|
|
|
sizeof(struct cam_packet), len_of_buffer);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
@@ -984,6 +985,7 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (cam_packet_util_validate_packet(csl_packet,
|
|
|
remain_len)) {
|
|
|
CAM_ERR(CAM_FLASH, "Invalid packet params");
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
@@ -994,6 +996,7 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
CAM_DBG(CAM_FLASH,
|
|
|
"reject request %lld, last request to flush %lld",
|
|
|
csl_packet->header.request_id, fctrl->last_flush_req);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return -EBADR;
|
|
|
}
|
|
|
|
|
@@ -1015,12 +1018,15 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
rc = cam_mem_get_cpu_buf(cmd_desc[i].mem_handle,
|
|
|
&generic_ptr, &len_of_buffer);
|
|
|
if (rc < 0) {
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
CAM_ERR(CAM_FLASH, "Failed to get cpu buf");
|
|
|
return rc;
|
|
|
}
|
|
|
cmd_buf = (uint32_t *)generic_ptr;
|
|
|
if (!cmd_buf) {
|
|
|
CAM_ERR(CAM_FLASH, "invalid cmd buf");
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc[i].mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
@@ -1028,6 +1034,8 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
(cmd_desc[i].offset >
|
|
|
(len_of_buffer -
|
|
|
sizeof(struct common_header)))) {
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc[i].mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
CAM_ERR(CAM_FLASH, "invalid cmd buf length");
|
|
|
return -EINVAL;
|
|
|
}
|
|
@@ -1044,6 +1052,8 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (len_of_buffer <
|
|
|
sizeof(struct cam_flash_init)) {
|
|
|
CAM_ERR(CAM_FLASH, "Not enough buffer");
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc[i].mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
@@ -1057,6 +1067,8 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"Failed parsing slave info: rc: %d",
|
|
|
rc);
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc[i].mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
break;
|
|
@@ -1071,6 +1083,8 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (rc) {
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"Failed update power settings");
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc[i].mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
break;
|
|
@@ -1089,6 +1103,8 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (rc < 0) {
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"pkt parsing failed: %d", rc);
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc[i].mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
break;
|
|
@@ -1098,6 +1114,7 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
power_info = &fctrl->power_info;
|
|
|
if (!power_info) {
|
|
|
CAM_ERR(CAM_FLASH, "Power_info is NULL");
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
@@ -1109,6 +1126,7 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"failed to fill vreg params for power up rc:%d",
|
|
|
rc);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
@@ -1121,6 +1139,7 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"failed to fill vreg params power down rc:%d",
|
|
|
rc);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
@@ -1128,12 +1147,14 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (rc) {
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"Enable Regulator Failed rc = %d", rc);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
|
rc = fctrl->func_tbl.apply_setting(fctrl, 0);
|
|
|
if (rc) {
|
|
|
CAM_ERR(CAM_FLASH, "cannot apply settings rc = %d", rc);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
@@ -1163,6 +1184,7 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (rc) {
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"Failed in parsing i2c packets");
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
break;
|
|
@@ -1181,6 +1203,7 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (rc) {
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"Failed in Deleting the err: %d", rc);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
}
|
|
@@ -1194,12 +1217,14 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (rc) {
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"Failed in parsing i2c NRT packets");
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
rc = fctrl->func_tbl.apply_setting(fctrl, 0);
|
|
|
if (rc)
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"Apply setting failed: %d", rc);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
case CAM_PKT_NOP_OPCODE: {
|
|
@@ -1211,6 +1236,7 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
MAX_PER_FRAME_ARRAY;
|
|
|
fctrl->i2c_data.per_frame[frm_offset].is_settings_valid
|
|
|
= false;
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -1221,6 +1247,7 @@ int cam_flash_i2c_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
default:
|
|
|
CAM_ERR(CAM_FLASH, "Wrong Opcode : %d",
|
|
|
(csl_packet->header.op_code & 0xFFFFFF));
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
update_req_mgr:
|
|
@@ -1251,6 +1278,7 @@ update_req_mgr:
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"Failed in adding request: %llu to request manager",
|
|
|
csl_packet->header.request_id);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
CAM_DBG(CAM_FLASH,
|
|
@@ -1258,7 +1286,6 @@ update_req_mgr:
|
|
|
add_req.req_id, add_req.trigger_eof);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
@@ -1318,6 +1345,7 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"Inval cam_packet strut size: %zu, len_of_buff: %zu",
|
|
|
sizeof(struct cam_packet), len_of_buffer);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
rc = -EINVAL;
|
|
|
return rc;
|
|
|
}
|
|
@@ -1329,6 +1357,7 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (cam_packet_util_validate_packet(csl_packet,
|
|
|
remain_len)) {
|
|
|
CAM_ERR(CAM_FLASH, "Invalid packet params");
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
rc = -EINVAL;
|
|
|
return rc;
|
|
|
}
|
|
@@ -1340,6 +1369,7 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
CAM_WARN(CAM_FLASH,
|
|
|
"reject request %lld, last request to flush %d",
|
|
|
csl_packet->header.request_id, fctrl->last_flush_req);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
rc = -EINVAL;
|
|
|
return rc;
|
|
|
}
|
|
@@ -1356,12 +1386,15 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
rc = cam_mem_get_cpu_buf(cmd_desc->mem_handle,
|
|
|
&cmd_buf_ptr, &len_of_buffer);
|
|
|
if (rc) {
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
CAM_ERR(CAM_FLASH, "Fail in get buffer: %d", rc);
|
|
|
return rc;
|
|
|
}
|
|
|
if ((len_of_buffer < sizeof(struct cam_flash_init)) ||
|
|
|
(cmd_desc->offset >
|
|
|
(len_of_buffer - sizeof(struct cam_flash_init)))) {
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
CAM_ERR(CAM_FLASH, "Not enough buffer");
|
|
|
rc = -EINVAL;
|
|
|
return rc;
|
|
@@ -1393,6 +1426,8 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (remain_len < sizeof(struct cam_flash_set_on_off)) {
|
|
|
CAM_ERR(CAM_FLASH, "Not enough buffer");
|
|
|
rc = -EINVAL;
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
@@ -1401,12 +1436,16 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (!flash_operation_info) {
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"flash_operation_info Null");
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
rc = -EINVAL;
|
|
|
return rc;
|
|
|
}
|
|
|
if (flash_operation_info->count >
|
|
|
CAM_FLASH_MAX_LED_TRIGGERS) {
|
|
|
CAM_ERR(CAM_FLASH, "led count out of limit");
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
rc = -EINVAL;
|
|
|
return rc;
|
|
|
}
|
|
@@ -1433,6 +1472,8 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
CAM_ERR(CAM_FLASH, "Wrong cmd_type = %d",
|
|
|
cam_flash_info->cmd_type);
|
|
|
rc = -EINVAL;
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
@@ -1461,6 +1502,7 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (rc) {
|
|
|
CAM_ERR(CAM_FLASH, "Fail in get buffer: 0x%x",
|
|
|
cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
@@ -1468,6 +1510,8 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
(cmd_desc->offset >
|
|
|
(len_of_buffer - sizeof(struct common_header)))) {
|
|
|
CAM_ERR(CAM_FLASH, "not enough buffer");
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
rc = -EINVAL;
|
|
|
return rc;
|
|
|
}
|
|
@@ -1493,6 +1537,8 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (remain_len < sizeof(struct cam_flash_set_on_off)) {
|
|
|
CAM_ERR(CAM_FLASH, "Not enough buffer");
|
|
|
rc = -EINVAL;
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
@@ -1502,11 +1548,15 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"flash_operation_info Null");
|
|
|
rc = -EINVAL;
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
if (flash_operation_info->count >
|
|
|
CAM_FLASH_MAX_LED_TRIGGERS) {
|
|
|
CAM_ERR(CAM_FLASH, "led count out of limit");
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
rc = -EINVAL;
|
|
|
return rc;
|
|
|
}
|
|
@@ -1541,6 +1591,8 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
default:
|
|
|
CAM_ERR(CAM_FLASH, "Wrong cmd_type = %d",
|
|
|
cmn_hdr->cmd_type);
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
rc = -EINVAL;
|
|
|
return rc;
|
|
|
}
|
|
@@ -1556,6 +1608,7 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
rc = cam_mem_get_cpu_buf(cmd_desc->mem_handle,
|
|
|
&cmd_buf_ptr, &len_of_buffer);
|
|
|
if (rc) {
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
CAM_ERR(CAM_FLASH, "Fail in get buffer: %d", rc);
|
|
|
return rc;
|
|
|
}
|
|
@@ -1565,6 +1618,8 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
(len_of_buffer - sizeof(struct common_header)))) {
|
|
|
CAM_ERR(CAM_FLASH, "Not enough buffer");
|
|
|
rc = -EINVAL;
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
remain_len = len_of_buffer - cmd_desc->offset;
|
|
@@ -1578,6 +1633,8 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (remain_len < sizeof(struct cam_flash_set_on_off)) {
|
|
|
CAM_ERR(CAM_FLASH, "Not enough buffer");
|
|
|
rc = -EINVAL;
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
flash_operation_info =
|
|
@@ -1586,12 +1643,16 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"flash_operation_info Null");
|
|
|
rc = -EINVAL;
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
if (flash_operation_info->count >
|
|
|
CAM_FLASH_MAX_LED_TRIGGERS) {
|
|
|
CAM_ERR(CAM_FLASH, "led count out of limit");
|
|
|
rc = -EINVAL;
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
@@ -1611,6 +1672,8 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (rc)
|
|
|
CAM_ERR(CAM_FLASH, "Apply setting failed: %d",
|
|
|
rc);
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
case CAMERA_SENSOR_FLASH_CMD_TYPE_QUERYCURR: {
|
|
@@ -1619,6 +1682,8 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (remain_len < sizeof(struct cam_flash_query_curr)) {
|
|
|
CAM_ERR(CAM_FLASH, "Not enough buffer");
|
|
|
rc = -EINVAL;
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
flash_query_info =
|
|
@@ -1638,6 +1703,8 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (rc) {
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"Query current failed with rc=%d", rc);
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
flash_query_info->query_current_ma = query_curr_ma;
|
|
@@ -1647,6 +1714,8 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (remain_len < sizeof(struct cam_flash_set_rer)) {
|
|
|
CAM_ERR(CAM_FLASH, "Not enough buffer");
|
|
|
rc = -EINVAL;
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
flash_rer_info = (struct cam_flash_set_rer *)cmd_buf;
|
|
@@ -1654,12 +1723,16 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"flash_rer_info Null");
|
|
|
rc = -EINVAL;
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
if (flash_rer_info->count >
|
|
|
CAM_FLASH_MAX_LED_TRIGGERS) {
|
|
|
CAM_ERR(CAM_FLASH, "led count out of limit");
|
|
|
rc = -EINVAL;
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
@@ -1683,11 +1756,15 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
if (rc)
|
|
|
CAM_ERR(CAM_FLASH, "apply_setting failed: %d",
|
|
|
rc);
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
default:
|
|
|
CAM_ERR(CAM_FLASH, "Wrong cmd_type : %d",
|
|
|
cmn_hdr->cmd_type);
|
|
|
+ cam_mem_put_cpu_buf(cmd_desc->mem_handle);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
rc = -EINVAL;
|
|
|
return rc;
|
|
|
}
|
|
@@ -1704,6 +1781,7 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
"Rxed NOP packets without linking");
|
|
|
fctrl->per_frame[frm_offset].cmn_attr.is_settings_valid
|
|
|
= false;
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
@@ -1718,6 +1796,7 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
CAM_ERR(CAM_FLASH, "Wrong Opcode : %d",
|
|
|
(csl_packet->header.op_code & 0xFFFFFF));
|
|
|
rc = -EINVAL;
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
@@ -1754,6 +1833,7 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
|
|
|
CAM_ERR(CAM_FLASH,
|
|
|
"Failed in adding request: %llu to request manager",
|
|
|
csl_packet->header.request_id);
|
|
|
+ cam_mem_put_cpu_buf(config.packet_handle);
|
|
|
return rc;
|
|
|
}
|
|
|
CAM_DBG(CAM_FLASH,
|