Loading drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_csid_ppi_core.c +6 −5 Original line number Diff line number Diff line Loading @@ -343,7 +343,6 @@ int cam_csid_ppi_init_soc_resources(struct cam_hw_soc_info *soc_info, irqreturn_t cam_csid_ppi_irq(int irq_num, void *data) { uint32_t irq_status = 0; uint32_t i, ppi_cfg_val = 0; bool fatal_err_detected = false; struct cam_csid_ppi_hw *ppi_hw; Loading Loading @@ -390,11 +389,13 @@ irqreturn_t cam_csid_ppi_irq(int irq_num, void *data) if (fatal_err_detected) { CAM_ERR(CAM_ISP, "PPI: %d irq_status:0x%x", ppi_hw->hw_intf->hw_idx, irq_status); /* disable lanes */ for (i = 0; i < CAM_CSID_PPI_LANES_MAX; i++) ppi_cfg_val &= ~PPI_CFG_CPHY_DLX_EN(i); cam_io_w_mb(ppi_cfg_val, soc_info->reg_map[0].mem_base + /* disable the interrupt */ cam_io_w_mb(0, soc_info->reg_map[0].mem_base + ppi_reg->ppi_irq_mask_addr); /* disable lanes */ cam_io_w_mb(0, soc_info->reg_map[0].mem_base + ppi_reg->ppi_module_cfg_addr); } ret: Loading drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_core.c +16 −15 Original line number Diff line number Diff line Loading @@ -4193,6 +4193,22 @@ int cam_ife_csid_hw_probe_init(struct cam_hw_intf *csid_hw_intf, for (i = 0; i <= CAM_IFE_PIX_PATH_RES_RDI_3; i++) ife_csid_hw->rdi_path_config[i].measure_enabled = 0; scnprintf(worker_name, sizeof(worker_name), "csid%u_worker", ife_csid_hw->hw_intf->hw_idx); CAM_DBG(CAM_ISP, "Create CSID worker %s", worker_name); rc = cam_req_mgr_workq_create(worker_name, CAM_CSID_WORKQ_NUM_TASK, &ife_csid_hw->work, CRM_WORKQ_USAGE_IRQ, 0); if (rc) { CAM_ERR(CAM_ISP, "Unable to create a workq, rc=%d", rc); goto err; } for (i = 0; i < CAM_CSID_WORKQ_NUM_TASK; i++) ife_csid_hw->work->task.pool[i].payload = &ife_csid_hw->work_data[i]; /* Check if ppi bridge is present or not? */ ife_csid_hw->ppi_enable = of_property_read_bool( csid_hw_info->soc_info.pdev->dev.of_node, Loading @@ -4209,21 +4225,6 @@ int cam_ife_csid_hw_probe_init(struct cam_hw_intf *csid_hw_intf, break; } } snprintf(worker_name, sizeof(worker_name), "csid%u_worker", ife_csid_hw->hw_intf->hw_idx); CAM_DBG(CAM_ISP, "Create CSID worker %s", worker_name); rc = cam_req_mgr_workq_create(worker_name, CAM_CSID_WORKQ_NUM_TASK, &ife_csid_hw->work, CRM_WORKQ_USAGE_IRQ, 0); if (rc) { CAM_ERR(CAM_ISP, "Unable to create a workq, rc=%d", rc); goto err; } for (i = 0; i < CAM_CSID_WORKQ_NUM_TASK; i++) ife_csid_hw->work->task.pool[i].payload = &ife_csid_hw->work_data[i]; return 0; err: if (rc) { kfree(ife_csid_hw->ipp_res.res_priv); Loading Loading
drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_csid_ppi_core.c +6 −5 Original line number Diff line number Diff line Loading @@ -343,7 +343,6 @@ int cam_csid_ppi_init_soc_resources(struct cam_hw_soc_info *soc_info, irqreturn_t cam_csid_ppi_irq(int irq_num, void *data) { uint32_t irq_status = 0; uint32_t i, ppi_cfg_val = 0; bool fatal_err_detected = false; struct cam_csid_ppi_hw *ppi_hw; Loading Loading @@ -390,11 +389,13 @@ irqreturn_t cam_csid_ppi_irq(int irq_num, void *data) if (fatal_err_detected) { CAM_ERR(CAM_ISP, "PPI: %d irq_status:0x%x", ppi_hw->hw_intf->hw_idx, irq_status); /* disable lanes */ for (i = 0; i < CAM_CSID_PPI_LANES_MAX; i++) ppi_cfg_val &= ~PPI_CFG_CPHY_DLX_EN(i); cam_io_w_mb(ppi_cfg_val, soc_info->reg_map[0].mem_base + /* disable the interrupt */ cam_io_w_mb(0, soc_info->reg_map[0].mem_base + ppi_reg->ppi_irq_mask_addr); /* disable lanes */ cam_io_w_mb(0, soc_info->reg_map[0].mem_base + ppi_reg->ppi_module_cfg_addr); } ret: Loading
drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_core.c +16 −15 Original line number Diff line number Diff line Loading @@ -4193,6 +4193,22 @@ int cam_ife_csid_hw_probe_init(struct cam_hw_intf *csid_hw_intf, for (i = 0; i <= CAM_IFE_PIX_PATH_RES_RDI_3; i++) ife_csid_hw->rdi_path_config[i].measure_enabled = 0; scnprintf(worker_name, sizeof(worker_name), "csid%u_worker", ife_csid_hw->hw_intf->hw_idx); CAM_DBG(CAM_ISP, "Create CSID worker %s", worker_name); rc = cam_req_mgr_workq_create(worker_name, CAM_CSID_WORKQ_NUM_TASK, &ife_csid_hw->work, CRM_WORKQ_USAGE_IRQ, 0); if (rc) { CAM_ERR(CAM_ISP, "Unable to create a workq, rc=%d", rc); goto err; } for (i = 0; i < CAM_CSID_WORKQ_NUM_TASK; i++) ife_csid_hw->work->task.pool[i].payload = &ife_csid_hw->work_data[i]; /* Check if ppi bridge is present or not? */ ife_csid_hw->ppi_enable = of_property_read_bool( csid_hw_info->soc_info.pdev->dev.of_node, Loading @@ -4209,21 +4225,6 @@ int cam_ife_csid_hw_probe_init(struct cam_hw_intf *csid_hw_intf, break; } } snprintf(worker_name, sizeof(worker_name), "csid%u_worker", ife_csid_hw->hw_intf->hw_idx); CAM_DBG(CAM_ISP, "Create CSID worker %s", worker_name); rc = cam_req_mgr_workq_create(worker_name, CAM_CSID_WORKQ_NUM_TASK, &ife_csid_hw->work, CRM_WORKQ_USAGE_IRQ, 0); if (rc) { CAM_ERR(CAM_ISP, "Unable to create a workq, rc=%d", rc); goto err; } for (i = 0; i < CAM_CSID_WORKQ_NUM_TASK; i++) ife_csid_hw->work->task.pool[i].payload = &ife_csid_hw->work_data[i]; return 0; err: if (rc) { kfree(ife_csid_hw->ipp_res.res_priv); Loading