Browse Source

Merge "msm: camera: isp: Fixing KW errors" into camera-kernel.lnx.4.0

Haritha Chintalapati 4 years ago
parent
commit
22674ab994

+ 6 - 1
drivers/cam_isp/isp_hw_mgr/hw_utils/cam_isp_packet_parser.c

@@ -476,7 +476,7 @@ int cam_isp_add_io_buffers(
 	struct cam_isp_hw_get_cmd_update    update_buf;
 	struct cam_isp_hw_get_cmd_update    update_buf;
 	struct cam_isp_hw_get_wm_update     wm_update;
 	struct cam_isp_hw_get_wm_update     wm_update;
 	struct cam_isp_hw_get_wm_update     bus_rd_update;
 	struct cam_isp_hw_get_wm_update     bus_rd_update;
-	struct cam_hw_fence_map_entry      *out_map_entries;
+	struct cam_hw_fence_map_entry      *out_map_entries = NULL;
 	struct cam_hw_fence_map_entry      *in_map_entries;
 	struct cam_hw_fence_map_entry      *in_map_entries;
 	struct cam_isp_hw_get_cmd_update    secure_mode;
 	struct cam_isp_hw_get_cmd_update    secure_mode;
 	uint32_t                            kmd_buf_remain_size;
 	uint32_t                            kmd_buf_remain_size;
@@ -738,6 +738,11 @@ int cam_isp_add_io_buffers(
 			}
 			}
 			io_cfg_used_bytes += update_buf.cmd.used_bytes;
 			io_cfg_used_bytes += update_buf.cmd.used_bytes;
 
 
+			if (!out_map_entries) {
+				CAM_ERR(CAM_ISP, "out_map_entries is NULL");
+				rc = -EINVAL;
+				return rc;
+			}
 
 
 			image_buf_addr =
 			image_buf_addr =
 				out_map_entries->image_buf_addr;
 				out_map_entries->image_buf_addr;

+ 3 - 2
drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_rd.c

@@ -774,7 +774,7 @@ static int cam_sfe_bus_release_bus_rd(void *bus_priv, void *release_args,
 static int cam_sfe_bus_start_bus_rd(
 static int cam_sfe_bus_start_bus_rd(
 	void *hw_priv, void *stop_hw_args, uint32_t arg_size)
 	void *hw_priv, void *stop_hw_args, uint32_t arg_size)
 {
 {
-	int rc, i;
+	int rc = -ENODEV, i;
 	struct cam_isp_resource_node *sfe_bus_rd = NULL;
 	struct cam_isp_resource_node *sfe_bus_rd = NULL;
 	struct cam_sfe_bus_rd_data *rsrc_data = NULL;
 	struct cam_sfe_bus_rd_data *rsrc_data = NULL;
 	struct cam_sfe_bus_rd_common_data *common_data = NULL;
 	struct cam_sfe_bus_rd_common_data *common_data = NULL;
@@ -811,8 +811,9 @@ static int cam_sfe_bus_start_bus_rd(
 		rc = cam_sfe_bus_start_rm(rsrc_data->rm_res[i]);
 		rc = cam_sfe_bus_start_rm(rsrc_data->rm_res[i]);
 
 
 	/* TO DO Subscribe mask for buf_done */
 	/* TO DO Subscribe mask for buf_done */
+	if (!rc)
+		sfe_bus_rd->res_state = CAM_ISP_RESOURCE_STATE_STREAMING;
 
 
-	sfe_bus_rd->res_state = CAM_ISP_RESOURCE_STATE_STREAMING;
 	return rc;
 	return rc;
 }
 }
 
 

+ 1 - 0
drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_wr.c

@@ -937,6 +937,7 @@ static int cam_sfe_bus_acquire_sfe_out(void *priv, void *acquire_args,
 		return -EINVAL;
 		return -EINVAL;
 	}
 	}
 
 
+	comp_grp_id = CAM_SFE_BUS_WR_COMP_GRP_MAX;
 	out_acquire_args = &acq_args->sfe_out;
 	out_acquire_args = &acq_args->sfe_out;
 	format = out_acquire_args->out_port_info->format;
 	format = out_acquire_args->out_port_info->format;
 
 

+ 2 - 2
drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_top/cam_sfe_top.c

@@ -866,7 +866,7 @@ static int cam_sfe_top_handle_irq_bottom_half(
 {
 {
 	int i;
 	int i;
 	uint32_t irq_status[CAM_SFE_IRQ_REGISTERS_MAX] = {0};
 	uint32_t irq_status[CAM_SFE_IRQ_REGISTERS_MAX] = {0};
-	enum cam_sfe_hw_irq_status          ret;
+	enum cam_sfe_hw_irq_status          ret = CAM_SFE_IRQ_STATUS_MAX;
 	struct cam_isp_hw_event_info        evt_info;
 	struct cam_isp_hw_event_info        evt_info;
 	struct cam_isp_resource_node       *res = handler_priv;
 	struct cam_isp_resource_node       *res = handler_priv;
 	struct cam_sfe_path_data           *path_data = res->res_priv;
 	struct cam_sfe_path_data           *path_data = res->res_priv;
@@ -1126,7 +1126,7 @@ int cam_sfe_top_init(
 	memset(top_priv->last_vote, 0x0, sizeof(struct cam_axi_vote) *
 	memset(top_priv->last_vote, 0x0, sizeof(struct cam_axi_vote) *
 		CAM_SFE_DELAY_BW_REDUCTION_NUM_FRAMES);
 		CAM_SFE_DELAY_BW_REDUCTION_NUM_FRAMES);
 	memset(&top_priv->core_cfg, 0x0,
 	memset(&top_priv->core_cfg, 0x0,
-		sizeof(struct cam_sfe_core_config_args));
+		sizeof(struct cam_sfe_core_cfg));
 
 
 	CAM_DBG(CAM_SFE,
 	CAM_DBG(CAM_SFE,
 		"Initializing SFE [%u] top with hw_version: 0x%x",
 		"Initializing SFE [%u] top with hw_version: 0x%x",

+ 1 - 1
drivers/cam_sensor_module/cam_flash/cam_flash_core.c

@@ -1748,7 +1748,7 @@ int cam_flash_pmic_pkt_parser(struct cam_flash_ctrl *fctrl, void *arg)
 			add_req.skip_before_applying |= SKIP_NEXT_FRAME;
 			add_req.skip_before_applying |= SKIP_NEXT_FRAME;
 			add_req.trigger_eof = true;
 			add_req.trigger_eof = true;
 
 
-			if ((flash_data->opcode !=
+			if (flash_data && (flash_data->opcode !=
 				CAMERA_SENSOR_FLASH_OP_FIREDURATION))
 				CAMERA_SENSOR_FLASH_OP_FIREDURATION))
 				add_req.skip_before_applying |= 1;
 				add_req.skip_before_applying |= 1;
 			else
 			else