Loading drivers/cam_cdm/cam_cdm_hw_core.c +7 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include "cam_cdm_hw_reg_1_1.h" #include "cam_cdm_hw_reg_1_2.h" #include "cam_cdm_hw_reg_2_0.h" #include "cam_trace.h" #define CAM_CDM_BL_FIFO_WAIT_TIMEOUT 2000 #define CAM_CDM_DBG_GEN_IRQ_USR_DATA 0xff Loading Loading @@ -691,6 +692,8 @@ int cam_hw_cdm_submit_gen_irq( rc = -EIO; } trace_cam_log_event("CDM_START", "CDM_START_IRQ", req->data->cookie, 0); end: return rc; } Loading Loading @@ -1162,6 +1165,10 @@ irqreturn_t cam_hw_cdm_irq(int irq_num, void *data) INIT_WORK((struct work_struct *)&payload[i]->work, cam_hw_cdm_work); trace_cam_log_event("CDM_DONE", "CDM_DONE_IRQ", payload[i]->irq_status, cdm_hw->soc_info.index); if (cam_cdm_write_hw_reg(cdm_hw, cdm_core->offsets->irq_reg[i]->irq_clear, payload[i]->irq_status)) { Loading drivers/cam_isp/cam_isp_context.c +18 −2 Original line number Diff line number Diff line Loading @@ -696,15 +696,26 @@ static void __cam_isp_ctx_handle_buf_done_fail_log( "Resource Handles that fail to generate buf_done in prev frame"); for (i = 0; i < req_isp->num_fence_map_out; i++) { if (req_isp->fence_map_out[i].sync_id != -1) { if (isp_device_type == CAM_IFE_DEVICE_TYPE) if (isp_device_type == CAM_IFE_DEVICE_TYPE) { handle_type = __cam_isp_resource_handle_id_to_type( req_isp->fence_map_out[i].resource_handle); else trace_cam_log_event("Buf_done Congestion", __cam_isp_resource_handle_id_to_type( req_isp->fence_map_out[i].resource_handle), request_id, req_isp->fence_map_out[i].sync_id); } else { handle_type = __cam_isp_tfe_resource_handle_id_to_type( req_isp->fence_map_out[i].resource_handle); trace_cam_log_event("Buf_done Congestion", __cam_isp_tfe_resource_handle_id_to_type( req_isp->fence_map_out[i].resource_handle), request_id, req_isp->fence_map_out[i].sync_id); } CAM_WARN(CAM_ISP, "Resource_Handle: [%s][0x%x] Sync_ID: [0x%x]", handle_type, Loading Loading @@ -769,6 +780,9 @@ static int __cam_isp_ctx_handle_buf_done_for_request( "Duplicate BUF_DONE for req %lld : i=%d, j=%d, res=%s", req->request_id, i, j, handle_type); trace_cam_log_event("Duplicate BufDone", handle_type, req->request_id, ctx->ctx_id); if (done_next_req) { done_next_req->resource_handle [done_next_req->num_handles++] = Loading Loading @@ -1287,6 +1301,8 @@ static int __cam_isp_ctx_epoch_in_applied(struct cam_isp_context *ctx_isp, CAM_WARN(CAM_ISP, "Notify CRM about Bubble req %lld frame %lld, ctx %u", req->request_id, ctx_isp->frame_id, ctx->ctx_id); trace_cam_log_event("Bubble", "Rcvd epoch in applied state", req->request_id, ctx->ctx_id); ctx->ctx_crm_intf->notify_err(¬ify); atomic_set(&ctx_isp->process_bubble, 1); } else { Loading drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cdm/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/include ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller Loading drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver3.c +23 −1 Original line number Diff line number Diff line Loading @@ -21,8 +21,10 @@ #include "cam_vfe_soc.h" #include "cam_debug_util.h" #include "cam_cpas_api.h" #include "cam_trace.h" static const char drv_name[] = "vfe_bus"; static char rup_controller_name[32] = ""; #define CAM_VFE_BUS_VER3_IRQ_REG0 0 #define CAM_VFE_BUS_VER3_IRQ_REG1 1 Loading Loading @@ -916,6 +918,7 @@ static int cam_vfe_bus_ver3_handle_rup_top_half(uint32_t evt_id, struct cam_isp_resource_node *vfe_out = NULL; struct cam_vfe_bus_ver3_vfe_out_data *rsrc_data = NULL; struct cam_vfe_bus_irq_evt_payload *evt_payload; uint32_t irq_status; vfe_out = th_payload->handler_priv; if (!vfe_out) { Loading Loading @@ -944,6 +947,12 @@ static int cam_vfe_bus_ver3_handle_rup_top_half(uint32_t evt_id, evt_payload->evt_id = evt_id; for (i = 0; i < th_payload->num_registers; i++) evt_payload->irq_reg_val[i] = th_payload->evt_status_arr[i]; irq_status = th_payload->evt_status_arr[CAM_IFE_IRQ_BUS_VER3_REG_STATUS0]; trace_cam_log_event("RUP", "RUP_IRQ", irq_status, 0); th_payload->evt_payload_priv = evt_payload; return rc; Loading Loading @@ -2238,6 +2247,8 @@ static int cam_vfe_bus_ver3_handle_vfe_out_done_top_half(uint32_t evt_id, struct cam_isp_resource_node *vfe_out = NULL; struct cam_vfe_bus_ver3_vfe_out_data *rsrc_data = NULL; struct cam_vfe_bus_irq_evt_payload *evt_payload; struct cam_vfe_bus_ver3_comp_grp_data *resource_data; uint32_t status_0; vfe_out = th_payload->handler_priv; if (!vfe_out) { Loading @@ -2246,6 +2257,7 @@ static int cam_vfe_bus_ver3_handle_vfe_out_done_top_half(uint32_t evt_id, } rsrc_data = vfe_out->res_priv; resource_data = rsrc_data->comp_grp->res_priv; CAM_DBG(CAM_ISP, "VFE:%d Bus IRQ status_0: 0x%X status_1: 0x%X", rsrc_data->common_data->core_index, Loading Loading @@ -2274,6 +2286,17 @@ static int cam_vfe_bus_ver3_handle_vfe_out_done_top_half(uint32_t evt_id, th_payload->evt_payload_priv = evt_payload; status_0 = th_payload->evt_status_arr[CAM_IFE_IRQ_BUS_VER3_REG_STATUS0]; if (status_0 & BIT(resource_data->comp_grp_type + rsrc_data->common_data->comp_done_shift)) { trace_cam_log_event("bufdone", "bufdone_IRQ", status_0, resource_data->comp_grp_type); } if (status_0 & 0x1) trace_cam_log_event("UnexpectedRUP", "RUP_IRQ", status_0, 40); CAM_DBG(CAM_ISP, "Exit"); return rc; } Loading Loading @@ -3725,7 +3748,6 @@ int cam_vfe_bus_ver3_init( struct cam_vfe_bus *vfe_bus_local; struct cam_vfe_bus_ver3_hw_info *ver3_hw_info = bus_hw_info; struct cam_vfe_soc_private *soc_private = NULL; char rup_controller_name[12] = ""; CAM_DBG(CAM_ISP, "Enter"); Loading drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cdm/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/include ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/include Loading Loading
drivers/cam_cdm/cam_cdm_hw_core.c +7 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include "cam_cdm_hw_reg_1_1.h" #include "cam_cdm_hw_reg_1_2.h" #include "cam_cdm_hw_reg_2_0.h" #include "cam_trace.h" #define CAM_CDM_BL_FIFO_WAIT_TIMEOUT 2000 #define CAM_CDM_DBG_GEN_IRQ_USR_DATA 0xff Loading Loading @@ -691,6 +692,8 @@ int cam_hw_cdm_submit_gen_irq( rc = -EIO; } trace_cam_log_event("CDM_START", "CDM_START_IRQ", req->data->cookie, 0); end: return rc; } Loading Loading @@ -1162,6 +1165,10 @@ irqreturn_t cam_hw_cdm_irq(int irq_num, void *data) INIT_WORK((struct work_struct *)&payload[i]->work, cam_hw_cdm_work); trace_cam_log_event("CDM_DONE", "CDM_DONE_IRQ", payload[i]->irq_status, cdm_hw->soc_info.index); if (cam_cdm_write_hw_reg(cdm_hw, cdm_core->offsets->irq_reg[i]->irq_clear, payload[i]->irq_status)) { Loading
drivers/cam_isp/cam_isp_context.c +18 −2 Original line number Diff line number Diff line Loading @@ -696,15 +696,26 @@ static void __cam_isp_ctx_handle_buf_done_fail_log( "Resource Handles that fail to generate buf_done in prev frame"); for (i = 0; i < req_isp->num_fence_map_out; i++) { if (req_isp->fence_map_out[i].sync_id != -1) { if (isp_device_type == CAM_IFE_DEVICE_TYPE) if (isp_device_type == CAM_IFE_DEVICE_TYPE) { handle_type = __cam_isp_resource_handle_id_to_type( req_isp->fence_map_out[i].resource_handle); else trace_cam_log_event("Buf_done Congestion", __cam_isp_resource_handle_id_to_type( req_isp->fence_map_out[i].resource_handle), request_id, req_isp->fence_map_out[i].sync_id); } else { handle_type = __cam_isp_tfe_resource_handle_id_to_type( req_isp->fence_map_out[i].resource_handle); trace_cam_log_event("Buf_done Congestion", __cam_isp_tfe_resource_handle_id_to_type( req_isp->fence_map_out[i].resource_handle), request_id, req_isp->fence_map_out[i].sync_id); } CAM_WARN(CAM_ISP, "Resource_Handle: [%s][0x%x] Sync_ID: [0x%x]", handle_type, Loading Loading @@ -769,6 +780,9 @@ static int __cam_isp_ctx_handle_buf_done_for_request( "Duplicate BUF_DONE for req %lld : i=%d, j=%d, res=%s", req->request_id, i, j, handle_type); trace_cam_log_event("Duplicate BufDone", handle_type, req->request_id, ctx->ctx_id); if (done_next_req) { done_next_req->resource_handle [done_next_req->num_handles++] = Loading Loading @@ -1287,6 +1301,8 @@ static int __cam_isp_ctx_epoch_in_applied(struct cam_isp_context *ctx_isp, CAM_WARN(CAM_ISP, "Notify CRM about Bubble req %lld frame %lld, ctx %u", req->request_id, ctx_isp->frame_id, ctx->ctx_id); trace_cam_log_event("Bubble", "Rcvd epoch in applied state", req->request_id, ctx->ctx_id); ctx->ctx_crm_intf->notify_err(¬ify); atomic_set(&ctx_isp->process_bubble, 1); } else { Loading
drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cdm/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/include ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller Loading
drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver3.c +23 −1 Original line number Diff line number Diff line Loading @@ -21,8 +21,10 @@ #include "cam_vfe_soc.h" #include "cam_debug_util.h" #include "cam_cpas_api.h" #include "cam_trace.h" static const char drv_name[] = "vfe_bus"; static char rup_controller_name[32] = ""; #define CAM_VFE_BUS_VER3_IRQ_REG0 0 #define CAM_VFE_BUS_VER3_IRQ_REG1 1 Loading Loading @@ -916,6 +918,7 @@ static int cam_vfe_bus_ver3_handle_rup_top_half(uint32_t evt_id, struct cam_isp_resource_node *vfe_out = NULL; struct cam_vfe_bus_ver3_vfe_out_data *rsrc_data = NULL; struct cam_vfe_bus_irq_evt_payload *evt_payload; uint32_t irq_status; vfe_out = th_payload->handler_priv; if (!vfe_out) { Loading Loading @@ -944,6 +947,12 @@ static int cam_vfe_bus_ver3_handle_rup_top_half(uint32_t evt_id, evt_payload->evt_id = evt_id; for (i = 0; i < th_payload->num_registers; i++) evt_payload->irq_reg_val[i] = th_payload->evt_status_arr[i]; irq_status = th_payload->evt_status_arr[CAM_IFE_IRQ_BUS_VER3_REG_STATUS0]; trace_cam_log_event("RUP", "RUP_IRQ", irq_status, 0); th_payload->evt_payload_priv = evt_payload; return rc; Loading Loading @@ -2238,6 +2247,8 @@ static int cam_vfe_bus_ver3_handle_vfe_out_done_top_half(uint32_t evt_id, struct cam_isp_resource_node *vfe_out = NULL; struct cam_vfe_bus_ver3_vfe_out_data *rsrc_data = NULL; struct cam_vfe_bus_irq_evt_payload *evt_payload; struct cam_vfe_bus_ver3_comp_grp_data *resource_data; uint32_t status_0; vfe_out = th_payload->handler_priv; if (!vfe_out) { Loading @@ -2246,6 +2257,7 @@ static int cam_vfe_bus_ver3_handle_vfe_out_done_top_half(uint32_t evt_id, } rsrc_data = vfe_out->res_priv; resource_data = rsrc_data->comp_grp->res_priv; CAM_DBG(CAM_ISP, "VFE:%d Bus IRQ status_0: 0x%X status_1: 0x%X", rsrc_data->common_data->core_index, Loading Loading @@ -2274,6 +2286,17 @@ static int cam_vfe_bus_ver3_handle_vfe_out_done_top_half(uint32_t evt_id, th_payload->evt_payload_priv = evt_payload; status_0 = th_payload->evt_status_arr[CAM_IFE_IRQ_BUS_VER3_REG_STATUS0]; if (status_0 & BIT(resource_data->comp_grp_type + rsrc_data->common_data->comp_done_shift)) { trace_cam_log_event("bufdone", "bufdone_IRQ", status_0, resource_data->comp_grp_type); } if (status_0 & 0x1) trace_cam_log_event("UnexpectedRUP", "RUP_IRQ", status_0, 40); CAM_DBG(CAM_ISP, "Exit"); return rc; } Loading Loading @@ -3725,7 +3748,6 @@ int cam_vfe_bus_ver3_init( struct cam_vfe_bus *vfe_bus_local; struct cam_vfe_bus_ver3_hw_info *ver3_hw_info = bus_hw_info; struct cam_vfe_soc_private *soc_private = NULL; char rup_controller_name[12] = ""; CAM_DBG(CAM_ISP, "Enter"); Loading
drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cdm/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr/ ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/include ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/include Loading