net: hns3: Add support to enable and disable hw errors
[muen/linux.git] / drivers / net / ethernet / hisilicon / hns3 / hns3pf / hclge_err.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*  Copyright (c) 2016-2017 Hisilicon Limited. */
3
4 #ifndef __HCLGE_ERR_H
5 #define __HCLGE_ERR_H
6
7 #include "hclge_main.h"
8
9 #define HCLGE_RAS_PF_OTHER_INT_STS_REG   0x20B00
10 #define HCLGE_RAS_REG_FE_MASK    0xFF
11 #define HCLGE_RAS_REG_NFE_MASK   0xFF00
12 #define HCLGE_RAS_REG_NFE_SHIFT 8
13
14 enum hclge_err_int_type {
15         HCLGE_ERR_INT_MSIX = 0,
16         HCLGE_ERR_INT_RAS_CE = 1,
17         HCLGE_ERR_INT_RAS_NFE = 2,
18         HCLGE_ERR_INT_RAS_FE = 3,
19 };
20
21 struct hclge_hw_blk {
22         u32 msk;
23         const char *name;
24         int (*enable_error)(struct hclge_dev *hdev, bool en);
25         void (*process_error)(struct hclge_dev *hdev,
26                               enum hclge_err_int_type type);
27 };
28
29 int hclge_hw_error_set_state(struct hclge_dev *hdev, bool state);
30 pci_ers_result_t hclge_process_ras_hw_error(struct hnae3_ae_dev *ae_dev);
31 #endif