File Index
Files and directories
Sign in
FILE

rvu_devlink.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.h C
 1/* SPDX-License-Identifier: GPL-2.0 */
 2/* Marvell RVU Admin Function Devlink
 3 *
 4 * Copyright (C) 2020 Marvell.
 5 *
 6 */
 7
 8#ifndef RVU_DEVLINK_H
 9#define  RVU_DEVLINK_H
10
11#define RVU_REPORTERS(_name)  \
12static const struct devlink_health_reporter_ops  rvu_ ## _name ## _reporter_ops =  { \
13	.name = #_name, \
14	.recover = rvu_ ## _name ## _recover, \
15	.dump = rvu_ ## _name ## _dump, \
16}
17
18enum npa_af_rvu_health {
19	NPA_AF_RVU_INTR,
20	NPA_AF_RVU_GEN,
21	NPA_AF_RVU_ERR,
22	NPA_AF_RVU_RAS,
23};
24
25struct rvu_npa_event_ctx {
26	u64 npa_af_rvu_int;
27	u64 npa_af_rvu_gen;
28	u64 npa_af_rvu_err;
29	u64 npa_af_rvu_ras;
30};
31
32struct rvu_npa_health_reporters {
33	struct rvu_npa_event_ctx *npa_event_ctx;
34	struct devlink_health_reporter *rvu_hw_npa_intr_reporter;
35	struct work_struct              intr_work;
36	struct devlink_health_reporter *rvu_hw_npa_gen_reporter;
37	struct work_struct              gen_work;
38	struct devlink_health_reporter *rvu_hw_npa_err_reporter;
39	struct work_struct             err_work;
40	struct devlink_health_reporter *rvu_hw_npa_ras_reporter;
41	struct work_struct              ras_work;
42};
43
44enum nix_af_rvu_health {
45	NIX_AF_RVU_INTR,
46	NIX_AF_RVU_GEN,
47	NIX_AF_RVU_ERR,
48	NIX_AF_RVU_RAS,
49};
50
51struct rvu_nix_event_ctx {
52	u64 nix_af_rvu_int;
53	u64 nix_af_rvu_gen;
54	u64 nix_af_rvu_err;
55	u64 nix_af_rvu_ras;
56};
57
58struct rvu_nix_health_reporters {
59	struct rvu_nix_event_ctx *nix_event_ctx;
60	struct devlink_health_reporter *rvu_hw_nix_intr_reporter;
61	struct work_struct		intr_work;
62	struct devlink_health_reporter *rvu_hw_nix_gen_reporter;
63	struct work_struct		gen_work;
64	struct devlink_health_reporter *rvu_hw_nix_err_reporter;
65	struct work_struct		err_work;
66	struct devlink_health_reporter *rvu_hw_nix_ras_reporter;
67	struct work_struct		ras_work;
68};
69
70struct rvu_devlink {
71	struct devlink *dl;
72	struct rvu *rvu;
73	struct workqueue_struct *devlink_wq;
74	struct rvu_npa_health_reporters *rvu_npa_health_reporter;
75	struct rvu_nix_health_reporters *rvu_nix_health_reporter;
76};
77
78/* Devlink APIs */
79int rvu_register_dl(struct rvu *rvu);
80void rvu_unregister_dl(struct rvu *rvu);
81
82#endif /* RVU_DEVLINK_H */
~/ Read-only file preview.