Lines Matching refs:event_type

7887 static void gaudi2_print_event(struct hl_device *hdev, u16 event_type,
7899 gaudi2_irq_map_table[event_type].valid ?
7900 gaudi2_irq_map_table[event_type].name : "N/A Event", &vaf);
7903 gaudi2_irq_map_table[event_type].valid ?
7904 gaudi2_irq_map_table[event_type].name : "N/A Event", &vaf);
7909 static bool gaudi2_handle_ecc_event(struct hl_device *hdev, u16 event_type,
7926 gaudi2_print_event(hdev, event_type, !ecc_data->is_critical,
7931 gaudi2_print_event(hdev, event_type, !ecc_data->is_critical,
7980 static int gaudi2_handle_qman_err_generic(struct hl_device *hdev, u16 event_type,
8007 gaudi2_print_event(hdev, event_type, true,
8031 gaudi2_print_event(hdev, event_type, true,
8501 static int _gaudi2_handle_qm_sei_err(struct hl_device *hdev, u64 qman_base, u16 event_type)
8509 gaudi2_print_event(hdev, event_type, true,
8521 static int gaudi2_handle_qm_sei_err(struct hl_device *hdev, u16 event_type,
8529 switch (event_type) {
8531 index = event_type - GAUDI2_EVENT_TPC0_AXI_ERR_RSP;
8545 index = (event_type - GAUDI2_EVENT_MME0_CTRL_AXI_ERROR_RESPONSE) /
8553 index = event_type - GAUDI2_EVENT_PDMA_CH0_AXI_ERR_RSP;
8559 index = event_type - GAUDI2_EVENT_ROTATOR0_AXI_ERROR_RESPONSE;
8567 error_count = _gaudi2_handle_qm_sei_err(hdev, qman_base, event_type);
8570 if (event_type >= GAUDI2_EVENT_NIC0_AXI_ERROR_RESPONSE &&
8571 event_type <= GAUDI2_EVENT_NIC11_AXI_ERROR_RESPONSE)
8573 qman_base + NIC_QM_OFFSET, event_type);
8584 static int gaudi2_handle_qman_err(struct hl_device *hdev, u16 event_type, u64 *event_mask)
8590 switch (event_type) {
8592 index = event_type - GAUDI2_EVENT_TPC0_QM;
8597 index = event_type - GAUDI2_EVENT_TPC6_QM;
8602 index = event_type - GAUDI2_EVENT_TPC12_QM;
8607 index = event_type - GAUDI2_EVENT_TPC18_QM;
8691 error_count = gaudi2_handle_qman_err_generic(hdev, event_type, qman_base,
8695 if (event_type >= GAUDI2_EVENT_HDMA2_QM && event_type <= GAUDI2_EVENT_HDMA5_QM) {
8696 error_count += _gaudi2_handle_qm_sei_err(hdev, qman_base, event_type);
8705 static int gaudi2_handle_arc_farm_sei_err(struct hl_device *hdev, u16 event_type, u64 *event_mask)
8716 gaudi2_print_event(hdev, event_type, true,
8733 static int gaudi2_handle_cpu_sei_err(struct hl_device *hdev, u16 event_type)
8741 gaudi2_print_event(hdev, event_type, true,
8755 static int gaudi2_handle_rot_err(struct hl_device *hdev, u8 rot_index, u16 event_type,
8765 gaudi2_print_event(hdev, event_type, true,
8777 static int gaudi2_tpc_ack_interrupts(struct hl_device *hdev, u8 tpc_index, u16 event_type,
8787 gaudi2_print_event(hdev, event_type, true,
8799 static int gaudi2_handle_dec_err(struct hl_device *hdev, u8 dec_index, u16 event_type,
8819 gaudi2_print_event(hdev, event_type, true,
8836 static int gaudi2_handle_mme_err(struct hl_device *hdev, u8 mme_index, u16 event_type,
8849 gaudi2_print_event(hdev, event_type, true,
8867 static int gaudi2_handle_mme_sbte_err(struct hl_device *hdev, u16 event_type)
8879 static int gaudi2_handle_mme_wap_err(struct hl_device *hdev, u8 mme_index, u16 event_type,
8892 gaudi2_print_event(hdev, event_type, true,
8909 static int gaudi2_handle_kdma_core_event(struct hl_device *hdev, u16 event_type,
8922 gaudi2_print_event(hdev, event_type, true,
8932 static int gaudi2_handle_dma_core_event(struct hl_device *hdev, u16 event_type, u64 intr_cause)
8939 gaudi2_print_event(hdev, event_type, true,
8982 static int gaudi2_print_pcie_addr_dec_info(struct hl_device *hdev, u16 event_type,
8992 gaudi2_print_event(hdev, event_type, true,
9009 static int gaudi2_handle_pif_fatal(struct hl_device *hdev, u16 event_type,
9018 gaudi2_print_event(hdev, event_type, true,
9027 static int gaudi2_handle_hif_fatal(struct hl_device *hdev, u16 event_type, u64 intr_cause_data)
9034 gaudi2_print_event(hdev, event_type, true,
9096 static int gaudi2_handle_mmu_spi_sei_generic(struct hl_device *hdev, u16 event_type,
9106 gaudi2_print_event(hdev, event_type, true,
9130 static int gaudi2_handle_sm_err(struct hl_device *hdev, u16 event_type, u8 sm_index)
9153 gaudi2_print_event(hdev, event_type, true,
9185 static u64 get_hmmu_base(u16 event_type)
9189 switch (event_type) {
9277 static int gaudi2_handle_mmu_spi_sei_err(struct hl_device *hdev, u16 event_type, u64 *event_mask)
9283 switch (event_type) {
9286 mmu_base = get_hmmu_base(event_type);
9301 error_count = gaudi2_handle_mmu_spi_sei_generic(hdev, event_type, mmu_base,
9414 static bool gaudi2_handle_hbm_mc_sei_err(struct hl_device *hdev, u16 event_type,
9420 hbm_id = (event_type - GAUDI2_EVENT_HBM0_MC0_SEI_SEVERE) / 4;
9421 mc_id = ((event_type - GAUDI2_EVENT_HBM0_MC0_SEI_SEVERE) / 2) % 2;
9425 gaudi2_print_event(hdev, event_type, true,
9431 gaudi2_print_event(hdev, event_type, !sei_data->hdr.is_critical,
9479 static int gaudi2_handle_hbm_cattrip(struct hl_device *hdev, u16 event_type,
9483 gaudi2_print_event(hdev, event_type, true,
9505 static void gaudi2_print_clk_change_info(struct hl_device *hdev, u16 event_type, u64 *event_mask)
9511 switch (event_type) {
9543 dev_err(hdev->dev, "Received invalid clock change event %d\n", event_type);
9550 static void gaudi2_print_out_of_sync_info(struct hl_device *hdev, u16 event_type,
9555 gaudi2_print_event(hdev, event_type, false,
9561 static int gaudi2_handle_pcie_p2p_msix(struct hl_device *hdev, u16 event_type)
9569 gaudi2_print_event(hdev, event_type, true,
9578 gaudi2_print_event(hdev, event_type, true,
9627 static void gaudi2_print_cpu_pkt_failure_info(struct hl_device *hdev, u16 event_type,
9632 gaudi2_print_event(hdev, event_type, false,
9637 static int hl_arc_event_handle(struct hl_device *hdev, u16 event_type,
9652 gaudi2_print_event(hdev, event_type, true,
9657 gaudi2_print_event(hdev, event_type, true, "Unknown ARC event type");
9662 static u16 event_id_to_engine_id(struct hl_device *hdev, u16 event_type)
9667 switch (event_type) {
9669 index = event_type - GAUDI2_EVENT_TPC0_AXI_ERR_RSP;
9673 index = event_type - GAUDI2_EVENT_TPC0_QM;
9715 index = event_type - GAUDI2_EVENT_DEC0_AXI_ERR_RSPONSE;
9719 index = (event_type - GAUDI2_EVENT_DEC0_SPI) >> 1;
9723 index = event_type - GAUDI2_EVENT_NIC0_AXI_ERROR_RESPONSE;
9726 index = event_type - GAUDI2_EVENT_NIC0_QM0;
9729 index = event_type - GAUDI2_EVENT_NIC0_BMON_SPMU;
9732 index = (event_type - GAUDI2_EVENT_TPC0_BMON_SPMU) >> 1;
9838 u16 event_type;
9841 event_type = ((ctl & EQ_CTL_EVENT_TYPE_MASK) >> EQ_CTL_EVENT_TYPE_SHIFT);
9843 if (event_type >= GAUDI2_EVENT_SIZE) {
9845 event_type, GAUDI2_EVENT_SIZE - 1);
9849 gaudi2->events_stat[event_type]++;
9850 gaudi2->events_stat_aggregate[event_type]++;
9852 switch (event_type) {
9858 reset_required = gaudi2_handle_ecc_event(hdev, event_type, &eq_entry->ecc_data);
9868 error_count = gaudi2_handle_qman_err(hdev, event_type, &event_mask);
9873 error_count = gaudi2_handle_arc_farm_sei_err(hdev, event_type, &event_mask);
9878 error_count = gaudi2_handle_cpu_sei_err(hdev, event_type);
9885 error_count = gaudi2_handle_qm_sei_err(hdev, event_type, true, &event_mask);
9891 index = event_type - GAUDI2_EVENT_ROTATOR0_AXI_ERROR_RESPONSE;
9892 error_count = gaudi2_handle_rot_err(hdev, index, event_type,
9894 error_count += gaudi2_handle_qm_sei_err(hdev, event_type, false, &event_mask);
9899 index = event_type - GAUDI2_EVENT_TPC0_AXI_ERR_RSP;
9900 error_count = gaudi2_tpc_ack_interrupts(hdev, index, event_type,
9902 error_count += gaudi2_handle_qm_sei_err(hdev, event_type, false, &event_mask);
9907 index = event_type - GAUDI2_EVENT_DEC0_AXI_ERR_RSPONSE;
9908 error_count = gaudi2_handle_dec_err(hdev, index, event_type, &event_mask);
9937 index = (event_type - GAUDI2_EVENT_TPC0_KERNEL_ERR) /
9939 error_count = gaudi2_tpc_ack_interrupts(hdev, index, event_type,
9954 index = (event_type - GAUDI2_EVENT_DEC0_SPI) /
9956 error_count = gaudi2_handle_dec_err(hdev, index, event_type, &event_mask);
9964 index = (event_type - GAUDI2_EVENT_MME0_CTRL_AXI_ERROR_RESPONSE) /
9967 error_count = gaudi2_handle_mme_err(hdev, index, event_type, &event_mask);
9968 error_count += gaudi2_handle_qm_sei_err(hdev, event_type, false, &event_mask);
9976 index = (event_type - GAUDI2_EVENT_MME0_QMAN_SW_ERROR) /
9979 error_count = gaudi2_handle_mme_err(hdev, index, event_type, &event_mask);
9987 index = (event_type - GAUDI2_EVENT_MME0_WAP_SOURCE_RESULT_INVALID) /
9990 error_count = gaudi2_handle_mme_wap_err(hdev, index, event_type, &event_mask);
9996 error_count = gaudi2_handle_kdma_core_event(hdev, event_type,
10002 error_count = gaudi2_handle_dma_core_event(hdev, event_type,
10008 error_count = gaudi2_handle_dma_core_event(hdev, event_type,
10014 error_count = gaudi2_print_pcie_addr_dec_info(hdev, event_type,
10024 error_count = gaudi2_handle_mmu_spi_sei_err(hdev, event_type, &event_mask);
10030 error_count = gaudi2_handle_hif_fatal(hdev, event_type,
10037 error_count = gaudi2_handle_pif_fatal(hdev, event_type,
10050 if (gaudi2_handle_hbm_mc_sei_err(hdev, event_type, &eq_entry->sei_data)) {
10058 error_count = gaudi2_handle_hbm_cattrip(hdev, event_type,
10098 error_count = gaudi2_handle_mme_sbte_err(hdev, event_type);
10183 gaudi2_print_clk_change_info(hdev, event_type, &event_mask);
10188 gaudi2_print_out_of_sync_info(hdev, event_type, &eq_entry->pkt_sync_err);
10201 error_count = gaudi2_handle_pcie_p2p_msix(hdev, event_type);
10206 index = event_type - GAUDI2_EVENT_SM0_AXI_ERROR_RESPONSE;
10207 error_count = gaudi2_handle_sm_err(hdev, event_type, index);
10230 gaudi2_print_cpu_pkt_failure_info(hdev, event_type, &eq_entry->pkt_sync_err);
10237 error_count = hl_arc_event_handle(hdev, event_type, &eq_entry->arc_data);
10256 gaudi2_irq_map_table[event_type].name);
10264 if (gaudi2_irq_map_table[event_type].valid) {
10266 event_type);
10272 hl_capture_engine_err(hdev, event_id_to_engine_id(hdev, event_type), error_count);
10278 if (error_count == GAUDI2_NA_EVENT_CAUSE && !is_info_event(event_type))
10279 gaudi2_print_event(hdev, event_type, true, "%d", event_type);
10281 gaudi2_print_event(hdev, event_type, true,
10282 "No error cause for H/W event %u", event_type);
10284 if ((gaudi2_irq_map_table[event_type].reset != EVENT_RESET_TYPE_NONE) ||
10287 (gaudi2_irq_map_table[event_type].reset == EVENT_RESET_TYPE_HARD))
10296 if (!gaudi2_irq_map_table[event_type].msg)
10297 hl_fw_unmask_irq(hdev, event_type);
10313 hl_handle_critical_hw_err(hdev, event_type, &event_mask);