diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_hw_ver2.c b/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_hw_ver2.c index fa7475b2a0..d9934c0a85 100644 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_hw_ver2.c +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_hw_ver2.c @@ -3998,6 +3998,7 @@ static int cam_ife_csid_ver2_csi2_irq_subscribe(struct cam_ife_csid_ver2_hw *csi CAM_ERR(CAM_ISP, "CSID[%d] RX Subscribe Top Irq fail", csid_hw->hw_intf->hw_idx); rc = -EINVAL; + goto err; } rc = cam_irq_controller_register_dependent(csid_hw->top_irq_controller, @@ -4058,7 +4059,7 @@ unsub_top: cam_irq_controller_unsubscribe_irq(csid_hw->top_irq_controller, csid_hw->rx_cfg.top_irq_handle); csid_hw->rx_cfg.top_irq_handle = 0; - +err: return rc; } @@ -4508,6 +4509,10 @@ static int cam_ife_csid_ver2_disable_core( rc = cam_irq_controller_unsubscribe_irq( csid_hw->top_irq_controller, csid_hw->reset_irq_handle); + if (rc) + CAM_WARN(CAM_ISP, + "CSID:%d Failed to unsubscribe reset irq", + csid_hw->hw_intf->hw_idx); csid_hw->reset_irq_handle = 0; } diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_wr.c b/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_wr.c index 65af961b20..082807dbcd 100644 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_wr.c +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/sfe_hw/sfe_bus/cam_sfe_bus_wr.c @@ -1653,8 +1653,17 @@ static int cam_sfe_bus_start_sfe_out( CAM_DBG(CAM_SFE, "Start SFE:%d out_type:0x%X", rsrc_data->common_data->core_index, rsrc_data->out_type); - for (i = 0; i < rsrc_data->num_wm; i++) + for (i = 0; i < rsrc_data->num_wm; i++) { rc = cam_sfe_bus_start_wm(&rsrc_data->wm_res[i]); + if (rc) { + CAM_ERR(CAM_SFE, + "SFE:%d Start Failed for out_type:0x%X", + sfe_out->res_state, rsrc_data->common_data->core_index, + rsrc_data->out_type); + + return rc; + } + } memset(bus_irq_reg_mask, 0, sizeof(bus_irq_reg_mask)); rc = cam_sfe_bus_start_comp_grp(rsrc_data->comp_grp, diff --git a/drivers/cam_jpeg/jpeg_hw/cam_jpeg_hw_mgr.c b/drivers/cam_jpeg/jpeg_hw/cam_jpeg_hw_mgr.c index 35af66470a..94f0ad1fd4 100644 --- a/drivers/cam_jpeg/jpeg_hw/cam_jpeg_hw_mgr.c +++ b/drivers/cam_jpeg/jpeg_hw/cam_jpeg_hw_mgr.c @@ -441,6 +441,9 @@ static int cam_jpeg_mgr_bottom_half_irq(void *priv, void *data) g_jpeg_hw_mgr.devices[dev_type][0]->hw_priv, CAM_JPEG_CMD_DUMP_HW_MISR_VAL, &misr_args, sizeof(struct cam_jpeg_misr_dump_args)); + if (rc) + CAM_WARN_RATE_LIMIT(CAM_JPEG, "jpeg and camnoc hw misr enable failed %d", + rc); } /* If we have processed just plane 1 for jpeg dma,