mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-08 12:58:12 -04:00
Merge "msm: camera: common: Print error irq count in csid irq" into camera-kernel.lnx.4.0
This commit is contained in:
commit
a3a5039ba0
1 changed files with 18 additions and 4 deletions
|
|
@ -4854,6 +4854,7 @@ irqreturn_t cam_ife_csid_irq(int irq_num, void *data)
|
|||
uint32_t irq_status[CAM_IFE_CSID_IRQ_REG_MAX] = {0};
|
||||
uint32_t i, val, val2;
|
||||
bool fatal_err_detected = false;
|
||||
bool non_fatal_detected = false;
|
||||
uint32_t sof_irq_debug_en = 0;
|
||||
uint32_t event_type = 0;
|
||||
unsigned long flags;
|
||||
|
|
@ -5036,6 +5037,7 @@ irqreturn_t cam_ife_csid_irq(int irq_num, void *data)
|
|||
"CSID:%d CPHY_EOT_RECEPTION: No EOT on lane/s",
|
||||
csid_hw->hw_intf->hw_idx);
|
||||
csid_hw->error_irq_count++;
|
||||
non_fatal_detected = true;
|
||||
}
|
||||
if (irq_status[CAM_IFE_CSID_IRQ_REG_RX] &
|
||||
CSID_CSI2_RX_ERROR_CPHY_SOT_RECEPTION) {
|
||||
|
|
@ -5043,13 +5045,15 @@ irqreturn_t cam_ife_csid_irq(int irq_num, void *data)
|
|||
"CSID:%d CPHY_SOT_RECEPTION: Less SOTs on lane/s",
|
||||
csid_hw->hw_intf->hw_idx);
|
||||
csid_hw->error_irq_count++;
|
||||
non_fatal_detected = true;
|
||||
}
|
||||
if (irq_status[CAM_IFE_CSID_IRQ_REG_RX] &
|
||||
CSID_CSI2_RX_ERROR_CPHY_PH_CRC) {
|
||||
CAM_ERR_RATE_LIMIT(CAM_ISP,
|
||||
"CSID:%d CPHY_PH_CRC CPHY: Pkt Hdr CRC mismatch",
|
||||
csid_hw->hw_intf->hw_idx);
|
||||
csid_hw->error_irq_count++;
|
||||
fatal_err_detected = true;
|
||||
goto handle_fatal_error;
|
||||
}
|
||||
if (irq_status[CAM_IFE_CSID_IRQ_REG_RX] &
|
||||
CSID_CSI2_RX_ERROR_CRC) {
|
||||
|
|
@ -5057,13 +5061,15 @@ irqreturn_t cam_ife_csid_irq(int irq_num, void *data)
|
|||
"CSID:%d ERROR_CRC CPHY: Long pkt payload CRC mismatch",
|
||||
csid_hw->hw_intf->hw_idx);
|
||||
csid_hw->error_irq_count++;
|
||||
non_fatal_detected = true;
|
||||
}
|
||||
if (irq_status[CAM_IFE_CSID_IRQ_REG_RX] &
|
||||
CSID_CSI2_RX_ERROR_ECC) {
|
||||
CAM_ERR_RATE_LIMIT(CAM_ISP,
|
||||
"CSID:%d ERROR_ECC: Dphy pkt hdr errors unrecoverable",
|
||||
csid_hw->hw_intf->hw_idx);
|
||||
csid_hw->error_irq_count++;
|
||||
fatal_err_detected = true;
|
||||
goto handle_fatal_error;
|
||||
}
|
||||
if (irq_status[CAM_IFE_CSID_IRQ_REG_RX] &
|
||||
CSID_CSI2_RX_ERROR_MMAPPED_VC_DT) {
|
||||
|
|
@ -5081,13 +5087,14 @@ irqreturn_t cam_ife_csid_irq(int irq_num, void *data)
|
|||
CSID_DEBUG_ENABLE_UNMAPPED_VC_DT_IRQ)) {
|
||||
|
||||
val = cam_io_r_mb(soc_info->reg_map[0].mem_base +
|
||||
csi2_reg->csid_csi2_rx_captured_long_pkt_0_addr);
|
||||
csi2_reg->csid_csi2_rx_cap_unmap_long_pkt_hdr_0_addr);
|
||||
|
||||
CAM_ERR_RATE_LIMIT(CAM_ISP,
|
||||
"CSID:%d UNMAPPED_VC_DT: VC:%d DT:%d WC:%d not mapped to any csid paths",
|
||||
csid_hw->hw_intf->hw_idx, (val >> 22),
|
||||
((val >> 16) & 0x3F), (val & 0xFFFF));
|
||||
csid_hw->error_irq_count++;
|
||||
non_fatal_detected = true;
|
||||
}
|
||||
if (irq_status[CAM_IFE_CSID_IRQ_REG_RX] &
|
||||
CSID_CSI2_RX_ERROR_STREAM_UNDERFLOW) {
|
||||
|
|
@ -5097,7 +5104,8 @@ irqreturn_t cam_ife_csid_irq(int irq_num, void *data)
|
|||
CAM_ERR_RATE_LIMIT(CAM_ISP,
|
||||
"CSID:%d ERROR_STREAM_UNDERFLOW: Fewer bytes rcvd than WC:%d in pkt hdr",
|
||||
csid_hw->hw_intf->hw_idx, (val & 0xFFFF));
|
||||
csid_hw->error_irq_count++;
|
||||
fatal_err_detected = true;
|
||||
goto handle_fatal_error;
|
||||
}
|
||||
if (irq_status[CAM_IFE_CSID_IRQ_REG_RX] &
|
||||
CSID_CSI2_RX_ERROR_UNBOUNDED_FRAME) {
|
||||
|
|
@ -5105,7 +5113,13 @@ irqreturn_t cam_ife_csid_irq(int irq_num, void *data)
|
|||
"CSID:%d UNBOUNDED_FRAME: Frame started with EOF or No EOF",
|
||||
csid_hw->hw_intf->hw_idx);
|
||||
csid_hw->error_irq_count++;
|
||||
non_fatal_detected = true;
|
||||
}
|
||||
|
||||
if (non_fatal_detected)
|
||||
CAM_INFO(CAM_ISP, "CSID: %u Error IRQ Count:%u",
|
||||
csid_hw->hw_intf->hw_idx,
|
||||
csid_hw->error_irq_count++);
|
||||
}
|
||||
|
||||
handle_fatal_error:
|
||||
|
|
|
|||
Loading…
Reference in a new issue