Loading drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/cam_vfe_core.c +8 −3 Original line number Diff line number Diff line Loading @@ -373,12 +373,17 @@ int cam_vfe_irq_top_half(uint32_t evt_id, * need to handle overflow condition here, otherwise irq storm * will block everything. */ if (evt_payload->irq_reg_val[1]) { if ((evt_payload->irq_reg_val[0] & 0x3FC00) || (evt_payload->irq_reg_val[1])) { CAM_ERR(CAM_ISP, "Encountered Error Irq_status1=0x%x. Stopping further IRQ processing from this HW", "Encountered Error Irq_status0=0x%x Status1=0x%x", evt_payload->irq_reg_val[0], evt_payload->irq_reg_val[1]); CAM_ERR(CAM_ISP, "Violation status = %x", CAM_ERR(CAM_ISP, "Violation status = 0x%x", evt_payload->irq_reg_val[2]); CAM_ERR(CAM_ISP, "Stopping further IRQ processing from this HW index=%d", handler_priv->core_index); cam_io_w(0, handler_priv->mem_base + 0x60); cam_io_w(0, handler_priv->mem_base + 0x5C); Loading drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver2.c +3 −0 Original line number Diff line number Diff line Loading @@ -2300,12 +2300,15 @@ static int cam_vfe_bus_error_irq_top_half(uint32_t evt_id, struct cam_irq_th_payload *th_payload) { int i = 0; struct cam_vfe_bus_ver2_priv *bus_priv = th_payload->handler_priv; CAM_ERR_RATE_LIMIT(CAM_ISP, "Bus Err IRQ"); for (i = 0; i < th_payload->num_registers; i++) { CAM_ERR_RATE_LIMIT(CAM_ISP, "IRQ_Status%d: 0x%x", i, th_payload->evt_status_arr[i]); } cam_irq_controller_disable_irq(bus_priv->common_data.bus_irq_controller, bus_priv->error_irq_handle); /* Returning error stops from enqueuing bottom half */ return -EFAULT; Loading Loading
drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/cam_vfe_core.c +8 −3 Original line number Diff line number Diff line Loading @@ -373,12 +373,17 @@ int cam_vfe_irq_top_half(uint32_t evt_id, * need to handle overflow condition here, otherwise irq storm * will block everything. */ if (evt_payload->irq_reg_val[1]) { if ((evt_payload->irq_reg_val[0] & 0x3FC00) || (evt_payload->irq_reg_val[1])) { CAM_ERR(CAM_ISP, "Encountered Error Irq_status1=0x%x. Stopping further IRQ processing from this HW", "Encountered Error Irq_status0=0x%x Status1=0x%x", evt_payload->irq_reg_val[0], evt_payload->irq_reg_val[1]); CAM_ERR(CAM_ISP, "Violation status = %x", CAM_ERR(CAM_ISP, "Violation status = 0x%x", evt_payload->irq_reg_val[2]); CAM_ERR(CAM_ISP, "Stopping further IRQ processing from this HW index=%d", handler_priv->core_index); cam_io_w(0, handler_priv->mem_base + 0x60); cam_io_w(0, handler_priv->mem_base + 0x5C); Loading
drivers/media/platform/msm/camera/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver2.c +3 −0 Original line number Diff line number Diff line Loading @@ -2300,12 +2300,15 @@ static int cam_vfe_bus_error_irq_top_half(uint32_t evt_id, struct cam_irq_th_payload *th_payload) { int i = 0; struct cam_vfe_bus_ver2_priv *bus_priv = th_payload->handler_priv; CAM_ERR_RATE_LIMIT(CAM_ISP, "Bus Err IRQ"); for (i = 0; i < th_payload->num_registers; i++) { CAM_ERR_RATE_LIMIT(CAM_ISP, "IRQ_Status%d: 0x%x", i, th_payload->evt_status_arr[i]); } cam_irq_controller_disable_irq(bus_priv->common_data.bus_irq_controller, bus_priv->error_irq_handle); /* Returning error stops from enqueuing bottom half */ return -EFAULT; Loading