#include <linux/bitfield.h>
#include "rvu.h"
#include "rvu_reg.h"
#include "rvu_struct.h"
#include "rvu_npc_hash.h"
#define DRV_NAME …
static void rvu_report_pair_start(struct devlink_fmsg *fmsg, const char *name)
{ … }
static void rvu_report_pair_end(struct devlink_fmsg *fmsg)
{ … }
static bool rvu_common_request_irq(struct rvu *rvu, int offset,
const char *name, irq_handler_t fn)
{ … }
static void rvu_nix_intr_work(struct work_struct *work)
{ … }
static irqreturn_t rvu_nix_af_rvu_intr_handler(int irq, void *rvu_irq)
{ … }
static void rvu_nix_gen_work(struct work_struct *work)
{ … }
static irqreturn_t rvu_nix_af_rvu_gen_handler(int irq, void *rvu_irq)
{ … }
static void rvu_nix_err_work(struct work_struct *work)
{ … }
static irqreturn_t rvu_nix_af_rvu_err_handler(int irq, void *rvu_irq)
{ … }
static void rvu_nix_ras_work(struct work_struct *work)
{ … }
static irqreturn_t rvu_nix_af_rvu_ras_handler(int irq, void *rvu_irq)
{ … }
static void rvu_nix_unregister_interrupts(struct rvu *rvu)
{ … }
static int rvu_nix_register_interrupts(struct rvu *rvu)
{ … }
static int rvu_nix_report_show(struct devlink_fmsg *fmsg, void *ctx,
enum nix_af_rvu_health health_reporter)
{ … }
static int rvu_hw_nix_intr_dump(struct devlink_health_reporter *reporter,
struct devlink_fmsg *fmsg, void *ctx,
struct netlink_ext_ack *netlink_extack)
{ … }
static int rvu_hw_nix_intr_recover(struct devlink_health_reporter *reporter,
void *ctx, struct netlink_ext_ack *netlink_extack)
{ … }
static int rvu_hw_nix_gen_dump(struct devlink_health_reporter *reporter,
struct devlink_fmsg *fmsg, void *ctx,
struct netlink_ext_ack *netlink_extack)
{ … }
static int rvu_hw_nix_gen_recover(struct devlink_health_reporter *reporter,
void *ctx, struct netlink_ext_ack *netlink_extack)
{ … }
static int rvu_hw_nix_err_dump(struct devlink_health_reporter *reporter,
struct devlink_fmsg *fmsg, void *ctx,
struct netlink_ext_ack *netlink_extack)
{ … }
static int rvu_hw_nix_err_recover(struct devlink_health_reporter *reporter,
void *ctx, struct netlink_ext_ack *netlink_extack)
{ … }
static int rvu_hw_nix_ras_dump(struct devlink_health_reporter *reporter,
struct devlink_fmsg *fmsg, void *ctx,
struct netlink_ext_ack *netlink_extack)
{ … }
static int rvu_hw_nix_ras_recover(struct devlink_health_reporter *reporter,
void *ctx, struct netlink_ext_ack *netlink_extack)
{ … }
RVU_REPORTERS(…);
RVU_REPORTERS(…);
RVU_REPORTERS(…);
RVU_REPORTERS(…);
static void rvu_nix_health_reporters_destroy(struct rvu_devlink *rvu_dl);
static int rvu_nix_register_reporters(struct rvu_devlink *rvu_dl)
{ … }
static int rvu_nix_health_reporters_create(struct rvu_devlink *rvu_dl)
{ … }
static void rvu_nix_health_reporters_destroy(struct rvu_devlink *rvu_dl)
{ … }
static void rvu_npa_intr_work(struct work_struct *work)
{ … }
static irqreturn_t rvu_npa_af_rvu_intr_handler(int irq, void *rvu_irq)
{ … }
static void rvu_npa_gen_work(struct work_struct *work)
{ … }
static irqreturn_t rvu_npa_af_gen_intr_handler(int irq, void *rvu_irq)
{ … }
static void rvu_npa_err_work(struct work_struct *work)
{ … }
static irqreturn_t rvu_npa_af_err_intr_handler(int irq, void *rvu_irq)
{ … }
static void rvu_npa_ras_work(struct work_struct *work)
{ … }
static irqreturn_t rvu_npa_af_ras_intr_handler(int irq, void *rvu_irq)
{ … }
static void rvu_npa_unregister_interrupts(struct rvu *rvu)
{ … }
static int rvu_npa_register_interrupts(struct rvu *rvu)
{ … }
static int rvu_npa_report_show(struct devlink_fmsg *fmsg, void *ctx,
enum npa_af_rvu_health health_reporter)
{ … }
static int rvu_hw_npa_intr_dump(struct devlink_health_reporter *reporter,
struct devlink_fmsg *fmsg, void *ctx,
struct netlink_ext_ack *netlink_extack)
{ … }
static int rvu_hw_npa_intr_recover(struct devlink_health_reporter *reporter,
void *ctx, struct netlink_ext_ack *netlink_extack)
{ … }
static int rvu_hw_npa_gen_dump(struct devlink_health_reporter *reporter,
struct devlink_fmsg *fmsg, void *ctx,
struct netlink_ext_ack *netlink_extack)
{ … }
static int rvu_hw_npa_gen_recover(struct devlink_health_reporter *reporter,
void *ctx, struct netlink_ext_ack *netlink_extack)
{ … }
static int rvu_hw_npa_err_dump(struct devlink_health_reporter *reporter,
struct devlink_fmsg *fmsg, void *ctx,
struct netlink_ext_ack *netlink_extack)
{ … }
static int rvu_hw_npa_err_recover(struct devlink_health_reporter *reporter,
void *ctx, struct netlink_ext_ack *netlink_extack)
{ … }
static int rvu_hw_npa_ras_dump(struct devlink_health_reporter *reporter,
struct devlink_fmsg *fmsg, void *ctx,
struct netlink_ext_ack *netlink_extack)
{ … }
static int rvu_hw_npa_ras_recover(struct devlink_health_reporter *reporter,
void *ctx, struct netlink_ext_ack *netlink_extack)
{ … }
RVU_REPORTERS(…);
RVU_REPORTERS(…);
RVU_REPORTERS(…);
RVU_REPORTERS(…);
static void rvu_npa_health_reporters_destroy(struct rvu_devlink *rvu_dl);
static int rvu_npa_register_reporters(struct rvu_devlink *rvu_dl)
{ … }
static int rvu_npa_health_reporters_create(struct rvu_devlink *rvu_dl)
{ … }
static void rvu_npa_health_reporters_destroy(struct rvu_devlink *rvu_dl)
{ … }
static int rvu_health_reporters_create(struct rvu *rvu)
{ … }
static void rvu_health_reporters_destroy(struct rvu *rvu)
{ … }
static int rvu_af_dl_dwrr_mtu_validate(struct devlink *devlink, u32 id,
union devlink_param_value val,
struct netlink_ext_ack *extack)
{ … }
static int rvu_af_dl_dwrr_mtu_set(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ … }
static int rvu_af_dl_dwrr_mtu_get(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx)
{ … }
enum rvu_af_dl_param_id { … };
static int rvu_af_npc_exact_feature_get(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx)
{ … }
static int rvu_af_npc_exact_feature_disable(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ … }
static int rvu_af_npc_exact_feature_validate(struct devlink *devlink, u32 id,
union devlink_param_value val,
struct netlink_ext_ack *extack)
{ … }
static int rvu_af_dl_npc_mcam_high_zone_percent_get(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx)
{ … }
static int rvu_af_dl_npc_mcam_high_zone_percent_set(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ … }
static int rvu_af_dl_npc_mcam_high_zone_percent_validate(struct devlink *devlink, u32 id,
union devlink_param_value val,
struct netlink_ext_ack *extack)
{ … }
static int rvu_af_dl_nix_maxlf_get(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx)
{ … }
static int rvu_af_dl_nix_maxlf_set(struct devlink *devlink, u32 id,
struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ … }
static int rvu_af_dl_nix_maxlf_validate(struct devlink *devlink, u32 id,
union devlink_param_value val,
struct netlink_ext_ack *extack)
{ … }
static const struct devlink_param rvu_af_dl_params[] = …;
static const struct devlink_param rvu_af_dl_param_exact_match[] = …;
static int rvu_devlink_eswitch_mode_get(struct devlink *devlink, u16 *mode)
{ … }
static int rvu_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode,
struct netlink_ext_ack *extack)
{ … }
static const struct devlink_ops rvu_devlink_ops = …;
int rvu_register_dl(struct rvu *rvu)
{ … }
void rvu_unregister_dl(struct rvu *rvu)
{ … }