brintos

brintos / linux-shallow public Read only

0
0
Text · 2.0 KiB · 51efe88 Raw
83 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/* Marvell RVU Admin Function Devlink3 *4 * Copyright (C) 2020 Marvell.5 *6 */7 8#ifndef RVU_DEVLINK_H9#define  RVU_DEVLINK_H10 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 */83