#include <linux/pci.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/module.h>
#include "hfi.h"
#include "trace.h"
#include "mad.h"
#include "pio.h"
#include "sdma.h"
#include "eprom.h"
#include "efivar.h"
#include "platform.h"
#include "aspm.h"
#include "affinity.h"
#include "debugfs.h"
#include "fault.h"
#include "netdev.h"
uint num_vls = …;
module_param(num_vls, uint, S_IRUGO);
MODULE_PARM_DESC(…) …;
uint rcv_intr_timeout = …;
module_param(rcv_intr_timeout, uint, S_IRUGO);
MODULE_PARM_DESC(…) …;
uint rcv_intr_count = …;
module_param(rcv_intr_count, uint, S_IRUGO);
MODULE_PARM_DESC(…) …;
ushort link_crc_mask = …;
module_param(link_crc_mask, ushort, S_IRUGO);
MODULE_PARM_DESC(…) …;
uint loopback;
module_param_named(loopback, loopback, uint, S_IRUGO);
MODULE_PARM_DESC(…) …;
uint rcv_intr_dynamic = …;
static ushort crc_14b_sideband = …;
static uint use_flr = …;
uint quick_linkup;
struct flag_table { … };
#define FLAG_ENTRY(str, extra, flag) …
#define FLAG_ENTRY0(str, flag) …
#define SEC_WRITE_DROPPED …
#define SEC_PACKET_DROPPED …
#define SEC_SC_HALTED …
#define SEC_SPC_FREEZE …
#define DEFAULT_KRCVQS …
#define MIN_KERNEL_KCTXTS …
#define FIRST_KERNEL_KCTXT …
#define RSM_INS_FECN …
#define RSM_INS_VNIC …
#define RSM_INS_AIP …
#define RSM_INS_VERBS …
#define GUID_HFI_INDEX_SHIFT …
#define emulator_rev(dd) …
#define is_emulator_p(dd) …
#define is_emulator_s(dd) …
#define IB_PACKET_TYPE …
#define QW_SHIFT …
#define QPN_WIDTH …
#define LRH_BTH_QW …
#define LRH_BTH_BIT_OFFSET …
#define LRH_BTH_OFFSET(off) …
#define LRH_BTH_MATCH_OFFSET …
#define LRH_BTH_SELECT
#define LRH_BTH_MASK …
#define LRH_BTH_VALUE …
#define LRH_SC_QW …
#define LRH_SC_BIT_OFFSET …
#define LRH_SC_OFFSET(off) …
#define LRH_SC_MATCH_OFFSET …
#define LRH_SC_MASK …
#define LRH_SC_VALUE …
#define LRH_SC_SELECT_OFFSET …
#define QPN_SELECT_OFFSET …
#define BTH_DESTQP_QW …
#define BTH_DESTQP_BIT_OFFSET …
#define BTH_DESTQP_OFFSET(off) …
#define BTH_DESTQP_MATCH_OFFSET …
#define BTH_DESTQP_MASK …
#define BTH_DESTQP_VALUE …
#define DETH_AIP_SQPN_QW …
#define DETH_AIP_SQPN_BIT_OFFSET …
#define DETH_AIP_SQPN_OFFSET(off) …
#define DETH_AIP_SQPN_SELECT_OFFSET …
#define L2_TYPE_QW …
#define L2_TYPE_BIT_OFFSET …
#define L2_TYPE_OFFSET(off) …
#define L2_TYPE_MATCH_OFFSET …
#define L2_TYPE_MASK …
#define L2_16B_VALUE …
#define L4_TYPE_QW …
#define L4_TYPE_BIT_OFFSET …
#define L4_TYPE_OFFSET(off) …
#define L4_TYPE_MATCH_OFFSET …
#define L4_16B_TYPE_MASK …
#define L4_16B_ETH_VALUE …
#define L4_16B_HDR_VESWID_OFFSET …
#define L2_16B_ENTROPY_OFFSET …
#define SC2VL_VAL( \
num, \
sc0, sc0val, \
sc1, sc1val, \
sc2, sc2val, \
sc3, sc3val, \
sc4, sc4val, \
sc5, sc5val, \
sc6, sc6val, \
sc7, sc7val) …
#define DC_SC_VL_VAL( \
range, \
e0, e0val, \
e1, e1val, \
e2, e2val, \
e3, e3val, \
e4, e4val, \
e5, e5val, \
e6, e6val, \
e7, e7val, \
e8, e8val, \
e9, e9val, \
e10, e10val, \
e11, e11val, \
e12, e12val, \
e13, e13val, \
e14, e14val, \
e15, e15val) …
#define ALL_FROZE …
#define ALL_TXE_PAUSE …
#define ALL_RXE_PAUSE …
#define CNTR_MAX …
#define CNTR_32BIT_MAX …
static const struct flag_table cce_err_status_flags[] = …;
#define MES(text) …
static const struct flag_table misc_err_status_flags[] = …;
static const struct flag_table pio_err_status_flags[] = …;
#define ALL_PIO_FREEZE_ERR …
static const struct flag_table sdma_err_status_flags[] = …;
#define ALL_SDMA_FREEZE_ERR …
#define PORT_DISCARD_EGRESS_ERRS …
#define SEES(text) …
static const struct flag_table egress_err_status_flags[] = …;
#define SEEI(text) …
static const struct flag_table egress_err_info_flags[] = …;
#define ALL_TXE_EGRESS_FREEZE_ERR …
#define SES(name) …
static const struct flag_table send_err_status_flags[] = …;
static const struct flag_table sc_err_status_flags[] = …;
#define RXES(name) …
static const struct flag_table rxe_err_status_flags[] = …;
#define ALL_RXE_FREEZE_ERR …
#define RXE_FREEZE_ABORT_MASK …
#define DCCE(name) …
static const struct flag_table dcc_err_flags[] = …;
#define LCBE(name) …
static const struct flag_table lcb_err_flags[] = …;
#define D8E(name) …
static const struct flag_table dc8051_err_flags[] = …;
static const struct flag_table dc8051_info_err_flags[] = …;
static const struct flag_table dc8051_info_host_msg_flags[] = …;
static u32 encoded_size(u32 size);
static u32 chip_to_opa_lstate(struct hfi1_devdata *dd, u32 chip_lstate);
static int set_physical_link_state(struct hfi1_devdata *dd, u64 state);
static void read_vc_remote_phy(struct hfi1_devdata *dd, u8 *power_management,
u8 *continuous);
static void read_vc_remote_fabric(struct hfi1_devdata *dd, u8 *vau, u8 *z,
u8 *vcu, u16 *vl15buf, u8 *crc_sizes);
static void read_vc_remote_link_width(struct hfi1_devdata *dd,
u8 *remote_tx_rate, u16 *link_widths);
static void read_vc_local_link_mode(struct hfi1_devdata *dd, u8 *misc_bits,
u8 *flag_bits, u16 *link_widths);
static void read_remote_device_id(struct hfi1_devdata *dd, u16 *device_id,
u8 *device_rev);
static void read_local_lni(struct hfi1_devdata *dd, u8 *enable_lane_rx);
static int read_tx_settings(struct hfi1_devdata *dd, u8 *enable_lane_tx,
u8 *tx_polarity_inversion,
u8 *rx_polarity_inversion, u8 *max_rate);
static void handle_sdma_eng_err(struct hfi1_devdata *dd,
unsigned int context, u64 err_status);
static void handle_qsfp_int(struct hfi1_devdata *dd, u32 source, u64 reg);
static void handle_dcc_err(struct hfi1_devdata *dd,
unsigned int context, u64 err_status);
static void handle_lcb_err(struct hfi1_devdata *dd,
unsigned int context, u64 err_status);
static void handle_8051_interrupt(struct hfi1_devdata *dd, u32 unused, u64 reg);
static void handle_cce_err(struct hfi1_devdata *dd, u32 unused, u64 reg);
static void handle_rxe_err(struct hfi1_devdata *dd, u32 unused, u64 reg);
static void handle_misc_err(struct hfi1_devdata *dd, u32 unused, u64 reg);
static void handle_pio_err(struct hfi1_devdata *dd, u32 unused, u64 reg);
static void handle_sdma_err(struct hfi1_devdata *dd, u32 unused, u64 reg);
static void handle_egress_err(struct hfi1_devdata *dd, u32 unused, u64 reg);
static void handle_txe_err(struct hfi1_devdata *dd, u32 unused, u64 reg);
static void set_partition_keys(struct hfi1_pportdata *ppd);
static const char *link_state_name(u32 state);
static const char *link_state_reason_name(struct hfi1_pportdata *ppd,
u32 state);
static int do_8051_command(struct hfi1_devdata *dd, u32 type, u64 in_data,
u64 *out_data);
static int read_idle_sma(struct hfi1_devdata *dd, u64 *data);
static int thermal_init(struct hfi1_devdata *dd);
static void update_statusp(struct hfi1_pportdata *ppd, u32 state);
static int wait_phys_link_offline_substates(struct hfi1_pportdata *ppd,
int msecs);
static int wait_logical_linkstate(struct hfi1_pportdata *ppd, u32 state,
int msecs);
static void log_state_transition(struct hfi1_pportdata *ppd, u32 state);
static void log_physical_state(struct hfi1_pportdata *ppd, u32 state);
static int wait_physical_linkstate(struct hfi1_pportdata *ppd, u32 state,
int msecs);
static int wait_phys_link_out_of_offline(struct hfi1_pportdata *ppd,
int msecs);
static void read_planned_down_reason_code(struct hfi1_devdata *dd, u8 *pdrrc);
static void read_link_down_reason(struct hfi1_devdata *dd, u8 *ldr);
static void handle_temp_err(struct hfi1_devdata *dd);
static void dc_shutdown(struct hfi1_devdata *dd);
static void dc_start(struct hfi1_devdata *dd);
static int qos_rmt_entries(unsigned int n_krcv_queues, unsigned int *mp,
unsigned int *np);
static void clear_full_mgmt_pkey(struct hfi1_pportdata *ppd);
static int wait_link_transfer_active(struct hfi1_devdata *dd, int wait_ms);
static void clear_rsm_rule(struct hfi1_devdata *dd, u8 rule_index);
static void update_xmit_counters(struct hfi1_pportdata *ppd, u16 link_width);
struct err_reg_info { … };
#define NUM_MISC_ERRS …
#define NUM_DC_ERRS …
#define NUM_VARIOUS …
#define EE(reg, handler, desc) …
#define DC_EE1(reg, handler, desc) …
#define DC_EE2(reg, handler, desc) …
static const struct err_reg_info misc_errs[NUM_MISC_ERRS] = …;
#define TCRIT_INT_SOURCE …
static const struct err_reg_info sdma_eng_err = …;
static const struct err_reg_info various_err[NUM_VARIOUS] = …;
#define DCC_CFG_PORT_MTU_CAP_10240 …
static const struct err_reg_info dc_errs[NUM_DC_ERRS] = …;
struct cntr_entry { … };
#define C_RCV_HDR_OVF_FIRST …
#define C_RCV_HDR_OVF_LAST …
#define CNTR_ELEM(name, csr, offset, flags, accessor) …
#define RXE32_PORT_CNTR_ELEM(name, counter, flags) …
#define RXE32_DEV_CNTR_ELEM(name, counter, flags) …
#define RXE64_PORT_CNTR_ELEM(name, counter, flags) …
#define RXE64_DEV_CNTR_ELEM(name, counter, flags) …
#define OVR_LBL(ctx) …
#define OVR_ELM(ctx) …
#define TXE32_PORT_CNTR_ELEM(name, counter, flags) …
#define TXE64_PORT_CNTR_ELEM(name, counter, flags) …
#define TX64_DEV_CNTR_ELEM(name, counter, flags) …
#define CCE_PERF_DEV_CNTR_ELEM(name, counter, flags) …
#define CCE_INT_DEV_CNTR_ELEM(name, counter, flags) …
#define DC_PERF_CNTR(name, counter, flags) …
#define DC_PERF_CNTR_LCB(name, counter, flags) …
#define SW_IBP_CNTR(name, cntr) …
static inline void __iomem *hfi1_addr_from_offset(
const struct hfi1_devdata *dd,
u32 offset)
{ … }
u64 read_csr(const struct hfi1_devdata *dd, u32 offset)
{ … }
void write_csr(const struct hfi1_devdata *dd, u32 offset, u64 value)
{ … }
void __iomem *get_csr_addr(
const struct hfi1_devdata *dd,
u32 offset)
{ … }
static inline u64 read_write_csr(const struct hfi1_devdata *dd, u32 csr,
int mode, u64 value)
{ … }
static u64 dev_access_u32_csr(const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sde_err_cnt(const struct cntr_entry *entry,
void *context, int idx, int mode, u64 data)
{ … }
static u64 access_sde_int_cnt(const struct cntr_entry *entry,
void *context, int idx, int mode, u64 data)
{ … }
static u64 access_sde_idle_int_cnt(const struct cntr_entry *entry,
void *context, int idx, int mode, u64 data)
{ … }
static u64 access_sde_progress_int_cnt(const struct cntr_entry *entry,
void *context, int idx, int mode,
u64 data)
{ … }
static u64 dev_access_u64_csr(const struct cntr_entry *entry, void *context,
int vl, int mode, u64 data)
{ … }
static u64 dc_access_lcb_cntr(const struct cntr_entry *entry, void *context,
int vl, int mode, u64 data)
{ … }
static u64 port_access_u32_csr(const struct cntr_entry *entry, void *context,
int vl, int mode, u64 data)
{ … }
static u64 port_access_u64_csr(const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static inline u64 read_write_sw(struct hfi1_devdata *dd, u64 *cntr, int mode,
u64 data)
{ … }
static u64 access_sw_link_dn_cnt(const struct cntr_entry *entry, void *context,
int vl, int mode, u64 data)
{ … }
static u64 access_sw_link_up_cnt(const struct cntr_entry *entry, void *context,
int vl, int mode, u64 data)
{ … }
static u64 access_sw_unknown_frame_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sw_xmit_discards(const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_xmit_constraint_errs(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rcv_constraint_errs(const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
u64 get_all_cpu_total(u64 __percpu *cntr)
{ … }
static u64 read_write_cpu(struct hfi1_devdata *dd, u64 *z_val,
u64 __percpu *cntr,
int vl, int mode, u64 data)
{ … }
static u64 access_sw_cpu_intr(const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sw_cpu_rcv_limit(const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sw_pio_wait(const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sw_pio_drain(const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sw_ctx0_seq_drop(const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sw_vtx_wait(const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sw_kmem_wait(const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sw_send_schedule(const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_misc_pll_lock_fail_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_misc_mbist_fail_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_misc_invalid_eep_cmd_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_misc_efuse_done_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_misc_efuse_write_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_misc_efuse_read_bad_addr_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_misc_efuse_csr_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_misc_fw_auth_failed_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_misc_key_mismatch_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_misc_sbus_write_failed_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_misc_csr_write_bad_addr_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_misc_csr_read_bad_addr_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_misc_csr_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sw_cce_err_status_aggregated_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_cce_msix_csr_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_cce_int_map_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_cce_int_map_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_cce_msix_table_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_cce_msix_table_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_cce_rxdma_conv_fifo_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_cce_rcpl_async_fifo_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_cce_seg_write_bad_addr_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_cce_seg_read_bad_addr_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_la_triggered_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_cce_trgt_cpl_timeout_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pcic_receive_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pcic_transmit_back_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pcic_transmit_front_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pcic_cpl_dat_q_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pcic_cpl_hd_q_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pcic_post_dat_q_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pcic_post_hd_q_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pcic_retry_sot_mem_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_pcic_retry_mem_unc_err(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pcic_n_post_dat_q_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pcic_n_post_h_q_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_pcic_cpl_dat_q_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pcic_cpl_hd_q_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pcic_post_dat_q_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pcic_post_hd_q_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pcic_retry_sot_mem_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_pcic_retry_mem_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_cce_cli1_async_fifo_dbg_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_cce_cli1_async_fifo_rxdma_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_cce_cli1_async_fifo_sdma_hd_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_cce_cl1_async_fifo_pio_crdt_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_cce_cli2_async_fifo_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_cce_csr_cfg_bus_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_cce_cli0_async_fifo_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_cce_rspd_data_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_cce_trgt_access_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_cce_trgt_async_fifo_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_cce_csr_write_bad_addr_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_cce_csr_read_bad_addr_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_ccs_csr_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_csr_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_csr_write_bad_addr_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_rx_csr_read_bad_addr_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_dma_csr_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_dma_dq_fsm_encoding_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_rx_dma_eq_fsm_encoding_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_rx_dma_csr_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_rbuf_data_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_rbuf_data_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_dma_data_fifo_rd_cor_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_dma_data_fifo_rd_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_dma_hdr_fifo_rd_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_rx_dma_hdr_fifo_rd_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_rx_rbuf_desc_part2_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_rx_rbuf_desc_part2_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_rx_rbuf_desc_part1_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_rx_rbuf_desc_part1_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_rx_hq_intr_fsm_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_hq_intr_csr_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_lookup_csr_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_lookup_rcv_array_cor_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_lookup_rcv_array_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_lookup_des_part2_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_lookup_des_part1_unc_cor_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_lookup_des_part1_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_next_free_buf_cor_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_next_free_buf_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rbuf_fl_init_wr_addr_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_fl_initdone_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_fl_write_addr_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_fl_rd_addr_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_empty_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_rbuf_full_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rbuf_bad_lookup_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rbuf_ctx_id_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rbuf_csr_qeopdw_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_rx_rbuf_csr_q_num_of_pkt_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_csr_q_t1_ptr_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_csr_q_hd_ptr_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_csr_q_vld_bit_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_csr_q_next_buf_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_csr_q_ent_cnt_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_csr_q_head_buf_num_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_block_list_read_cor_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_block_list_read_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_lookup_des_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_rx_rbuf_lookup_des_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_rx_rbuf_lookup_des_reg_unc_cor_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_lookup_des_reg_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rbuf_free_list_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_rx_rbuf_free_list_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_rx_rcv_fsm_encoding_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_dma_flag_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_dma_flag_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_dc_sop_eop_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_rcv_csr_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_rcv_qp_map_table_cor_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rcv_qp_map_table_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_rx_rcv_data_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_rcv_data_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_rcv_hdr_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_rcv_hdr_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_dc_intf_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_rx_dma_csr_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_pec_sop_head_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_pcc_sop_head_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_last_returned_cnt_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_current_free_cnt_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_reserved_31_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_reserved_30_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_ppmc_sop_len_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_ppmc_bqc_mem_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_vl_fifo_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_vlf_sop_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_vlf_v1_len_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_pio_block_qw_count_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_write_qw_valid_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_state_machine_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_write_data_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_pio_host_addr_mem_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_pio_host_addr_mem_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_pio_pkt_evict_sm_or_arb_sm_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_init_sm_in_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_ppmc_pbl_fifo_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_credit_ret_fifo_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_v1_len_mem_bank1_cor_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_v1_len_mem_bank0_cor_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_v1_len_mem_bank1_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_v1_len_mem_bank0_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_sm_pkt_reset_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_pkt_evict_fifo_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_sbrdctrl_crrel_fifo_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_sbrdctl_crrel_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_pec_fifo_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_pcc_fifo_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_sb_mem_fifo1_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_sb_mem_fifo0_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_csr_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_write_addr_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_pio_write_bad_ctxt_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_pcie_req_tracking_cor_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sdma_pcie_req_tracking_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sdma_csr_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_rpy_tag_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_read_pio_memory_csr_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_read_sdma_memory_csr_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_egress_fifo_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_read_pio_memory_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_tx_read_sdma_memory_cor_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sb_hdr_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_credit_overrun_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_launch_fifo8_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_launch_fifo7_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_launch_fifo6_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_launch_fifo5_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_launch_fifo4_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_launch_fifo3_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_launch_fifo2_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_launch_fifo1_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_launch_fifo0_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_credit_return_vl_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_hcrc_insertion_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_egress_fifo_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_read_pio_memory_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_tx_read_sdma_memory_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sb_hdr_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_credit_return_partiy_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_launch_fifo8_unc_or_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_launch_fifo7_unc_or_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_launch_fifo6_unc_or_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_launch_fifo5_unc_or_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_launch_fifo4_unc_or_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_launch_fifo3_unc_or_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_launch_fifo2_unc_or_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_launch_fifo1_unc_or_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_launch_fifo0_unc_or_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma15_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma14_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma13_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma12_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma11_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma10_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma9_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma8_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma7_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma6_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma5_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma4_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma3_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma2_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma1_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_sdma0_disallowed_packet_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_config_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_sbrd_ctl_csr_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_tx_launch_csr_parity_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_illegal_vl_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_sbrd_ctl_state_machine_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_egress_reserved_10_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_egress_reserved_9_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_sdma_launch_intf_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_pio_launch_intf_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_egress_reserved_6_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_incorrect_link_state_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_linkdown_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_egress_fifi_underrun_or_parity_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_egress_reserved_2_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_tx_pkt_integrity_mem_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_tx_pkt_integrity_mem_cor_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_send_csr_write_bad_addr_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_send_csr_read_bad_addr_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_send_csr_parity_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_write_out_of_bounds_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_write_overflow_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_pio_write_crosses_boundary_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_pio_disallowed_packet_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_pio_inconsistent_sop_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_header_request_fifo_cor_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sdma_header_storage_cor_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sdma_packet_tracking_cor_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sdma_assembly_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_desc_table_cor_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_header_request_fifo_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sdma_header_storage_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sdma_packet_tracking_unc_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sdma_assembly_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_desc_table_unc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_timeout_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_header_length_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_header_address_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_header_select_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_reserved_9_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_packet_desc_overflow_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sdma_length_mismatch_err_cnt(const struct cntr_entry *entry,
void *context, int vl,
int mode, u64 data)
{ … }
static u64 access_sdma_halt_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sdma_mem_read_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_first_desc_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_tail_out_of_bounds_err_cnt(
const struct cntr_entry *entry,
void *context, int vl, int mode, u64 data)
{ … }
static u64 access_sdma_too_long_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_gen_mismatch_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_sdma_wrong_dw_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
static u64 access_dc_rcv_err_cnt(const struct cntr_entry *entry,
void *context, int vl, int mode,
u64 data)
{ … }
#define def_access_sw_cpu(cntr) …
def_access_sw_cpu(rc_acks);
def_access_sw_cpu(rc_qacks);
def_access_sw_cpu(rc_delayed_comp);
#define def_access_ibp_counter(cntr) …
def_access_ibp_counter(loop_pkts);
def_access_ibp_counter(rc_resends);
def_access_ibp_counter(rnr_naks);
def_access_ibp_counter(other_naks);
def_access_ibp_counter(rc_timeouts);
def_access_ibp_counter(pkt_drops);
def_access_ibp_counter(dmawait);
def_access_ibp_counter(rc_seqnak);
def_access_ibp_counter(rc_dupreq);
def_access_ibp_counter(rdma_seq);
def_access_ibp_counter(unaligned);
def_access_ibp_counter(seq_naks);
def_access_ibp_counter(rc_crwaits);
static struct cntr_entry dev_cntrs[DEV_CNTR_LAST] = …;
static struct cntr_entry port_cntrs[PORT_CNTR_LAST] = …;
int is_ax(struct hfi1_devdata *dd)
{ … }
int is_bx(struct hfi1_devdata *dd)
{ … }
bool is_urg_masked(struct hfi1_ctxtdata *rcd)
{ … }
static int append_str(char *buf, char **curp, int *lenp, const char *s)
{ … }
static char *flag_string(char *buf, int buf_len, u64 flags,
const struct flag_table *table, int table_size)
{ … }
static const char * const cce_misc_names[] = …;
static char *is_misc_err_name(char *buf, size_t bsize, unsigned int source)
{ … }
static char *is_sdma_eng_err_name(char *buf, size_t bsize, unsigned int source)
{ … }
static char *is_sendctxt_err_name(char *buf, size_t bsize, unsigned int source)
{ … }
static const char * const various_names[] = …;
static char *is_various_name(char *buf, size_t bsize, unsigned int source)
{ … }
static char *is_dc_name(char *buf, size_t bsize, unsigned int source)
{ … }
static const char * const sdma_int_names[] = …;
static char *is_sdma_eng_name(char *buf, size_t bsize, unsigned int source)
{ … }
static char *is_rcv_avail_name(char *buf, size_t bsize, unsigned int source)
{ … }
static char *is_rcv_urgent_name(char *buf, size_t bsize, unsigned int source)
{ … }
static char *is_send_credit_name(char *buf, size_t bsize, unsigned int source)
{ … }
static char *is_reserved_name(char *buf, size_t bsize, unsigned int source)
{ … }
static char *cce_err_status_string(char *buf, int buf_len, u64 flags)
{ … }
static char *rxe_err_status_string(char *buf, int buf_len, u64 flags)
{ … }
static char *misc_err_status_string(char *buf, int buf_len, u64 flags)
{ … }
static char *pio_err_status_string(char *buf, int buf_len, u64 flags)
{ … }
static char *sdma_err_status_string(char *buf, int buf_len, u64 flags)
{ … }
static char *egress_err_status_string(char *buf, int buf_len, u64 flags)
{ … }
static char *egress_err_info_string(char *buf, int buf_len, u64 flags)
{ … }
static char *send_err_status_string(char *buf, int buf_len, u64 flags)
{ … }
static void handle_cce_err(struct hfi1_devdata *dd, u32 unused, u64 reg)
{ … }
#define RCVERR_CHECK_TIME …
static void update_rcverr_timer(struct timer_list *t)
{ … }
static int init_rcverr(struct hfi1_devdata *dd)
{ … }
static void free_rcverr(struct hfi1_devdata *dd)
{ … }
static void handle_rxe_err(struct hfi1_devdata *dd, u32 unused, u64 reg)
{ … }
static void handle_misc_err(struct hfi1_devdata *dd, u32 unused, u64 reg)
{ … }
static void handle_pio_err(struct hfi1_devdata *dd, u32 unused, u64 reg)
{ … }
static void handle_sdma_err(struct hfi1_devdata *dd, u32 unused, u64 reg)
{ … }
static inline void __count_port_discards(struct hfi1_pportdata *ppd)
{ … }
static void count_port_inactive(struct hfi1_devdata *dd)
{ … }
static void handle_send_egress_err_info(struct hfi1_devdata *dd,
int vl)
{ … }
static inline int port_inactive_err(u64 posn)
{ … }
static inline int disallowed_pkt_err(int posn)
{ … }
static inline int disallowed_pkt_engine(int posn)
{ … }
static int engine_to_vl(struct hfi1_devdata *dd, int engine)
{ … }
static int sc_to_vl(struct hfi1_devdata *dd, int sw_index)
{ … }
static void handle_egress_err(struct hfi1_devdata *dd, u32 unused, u64 reg)
{ … }
static void handle_txe_err(struct hfi1_devdata *dd, u32 unused, u64 reg)
{ … }
#define MAX_CLEAR_COUNT …
static void interrupt_clear_down(struct hfi1_devdata *dd,
u32 context,
const struct err_reg_info *eri)
{ … }
static void is_misc_err_int(struct hfi1_devdata *dd, unsigned int source)
{ … }
static char *send_context_err_status_string(char *buf, int buf_len, u64 flags)
{ … }
static void is_sendctxt_err_int(struct hfi1_devdata *dd,
unsigned int hw_context)
{ … }
static void handle_sdma_eng_err(struct hfi1_devdata *dd,
unsigned int source, u64 status)
{ … }
static void is_sdma_eng_err_int(struct hfi1_devdata *dd, unsigned int source)
{ … }
static void is_various_int(struct hfi1_devdata *dd, unsigned int source)
{ … }
static void handle_qsfp_int(struct hfi1_devdata *dd, u32 src_ctx, u64 reg)
{ … }
static int request_host_lcb_access(struct hfi1_devdata *dd)
{ … }
static int request_8051_lcb_access(struct hfi1_devdata *dd)
{ … }
static inline void set_host_lcb_access(struct hfi1_devdata *dd)
{ … }
static inline void set_8051_lcb_access(struct hfi1_devdata *dd)
{ … }
int acquire_lcb_access(struct hfi1_devdata *dd, int sleep_ok)
{ … }
int release_lcb_access(struct hfi1_devdata *dd, int sleep_ok)
{ … }
static void init_lcb_access(struct hfi1_devdata *dd)
{ … }
static void hreq_response(struct hfi1_devdata *dd, u8 return_code, u16 rsp_data)
{ … }
static void handle_8051_request(struct hfi1_pportdata *ppd)
{ … }
void set_up_vau(struct hfi1_devdata *dd, u8 vau)
{ … }
void set_up_vl15(struct hfi1_devdata *dd, u16 vl15buf)
{ … }
void reset_link_credits(struct hfi1_devdata *dd)
{ … }
static u32 vcu_to_cu(u8 vcu)
{ … }
static u8 cu_to_vcu(u32 cu)
{ … }
static u32 vau_to_au(u8 vau)
{ … }
static void set_linkup_defaults(struct hfi1_pportdata *ppd)
{ … }
static void lcb_shutdown(struct hfi1_devdata *dd, int abort)
{ … }
static void _dc_shutdown(struct hfi1_devdata *dd)
{ … }
static void dc_shutdown(struct hfi1_devdata *dd)
{ … }
static void _dc_start(struct hfi1_devdata *dd)
{ … }
static void dc_start(struct hfi1_devdata *dd)
{ … }
static void adjust_lcb_for_fpga_serdes(struct hfi1_devdata *dd)
{ … }
void handle_sma_message(struct work_struct *work)
{ … }
static void adjust_rcvctrl(struct hfi1_devdata *dd, u64 add, u64 clear)
{ … }
static inline void add_rcvctrl(struct hfi1_devdata *dd, u64 add)
{ … }
static inline void clear_rcvctrl(struct hfi1_devdata *dd, u64 clear)
{ … }
void start_freeze_handling(struct hfi1_pportdata *ppd, int flags)
{ … }
static void wait_for_freeze_status(struct hfi1_devdata *dd, int freeze)
{ … }
static void rxe_freeze(struct hfi1_devdata *dd)
{ … }
static void rxe_kernel_unfreeze(struct hfi1_devdata *dd)
{ … }
void handle_freeze(struct work_struct *work)
{ … }
static void update_xmit_counters(struct hfi1_pportdata *ppd, u16 link_width)
{ … }
void handle_link_up(struct work_struct *work)
{ … }
static void reset_neighbor_info(struct hfi1_pportdata *ppd)
{ … }
static const char * const link_down_reason_strs[] = …;
static const char *link_down_reason_str(u8 reason)
{ … }
void handle_link_down(struct work_struct *work)
{ … }
void handle_link_bounce(struct work_struct *work)
{ … }
static int cap_to_port_ltp(int cap)
{ … }
int port_ltp_to_cap(int port_ltp)
{ … }
static int lcb_to_port_ltp(int lcb_crc)
{ … }
static void clear_full_mgmt_pkey(struct hfi1_pportdata *ppd)
{ … }
static u16 link_width_to_bits(struct hfi1_devdata *dd, u16 width)
{ … }
static const u8 bit_counts[16] = …;
static inline u8 nibble_to_count(u8 nibble)
{ … }
static void get_link_widths(struct hfi1_devdata *dd, u16 *tx_width,
u16 *rx_width)
{ … }
static void get_linkup_widths(struct hfi1_devdata *dd, u16 *tx_width,
u16 *rx_width)
{ … }
void get_linkup_link_widths(struct hfi1_pportdata *ppd)
{ … }
void handle_verify_cap(struct work_struct *work)
{ … }
bool apply_link_downgrade_policy(struct hfi1_pportdata *ppd,
bool refresh_widths)
{ … }
void handle_link_downgrade(struct work_struct *work)
{ … }
static char *dcc_err_string(char *buf, int buf_len, u64 flags)
{ … }
static char *lcb_err_string(char *buf, int buf_len, u64 flags)
{ … }
static char *dc8051_err_string(char *buf, int buf_len, u64 flags)
{ … }
static char *dc8051_info_err_string(char *buf, int buf_len, u64 flags)
{ … }
static char *dc8051_info_host_msg_string(char *buf, int buf_len, u64 flags)
{ … }
static void handle_8051_interrupt(struct hfi1_devdata *dd, u32 unused, u64 reg)
{ … }
static const char * const fm_config_txt[] = …;
static const char * const port_rcv_txt[] = …;
#define OPA_LDR_FMCONFIG_OFFSET …
#define OPA_LDR_PORTRCV_OFFSET …
static void handle_dcc_err(struct hfi1_devdata *dd, u32 unused, u64 reg)
{ … }
static void handle_lcb_err(struct hfi1_devdata *dd, u32 unused, u64 reg)
{ … }
static void is_dc_int(struct hfi1_devdata *dd, unsigned int source)
{ … }
static void is_send_credit_int(struct hfi1_devdata *dd, unsigned int source)
{ … }
static void is_sdma_eng_int(struct hfi1_devdata *dd, unsigned int source)
{ … }
static void is_rcv_avail_int(struct hfi1_devdata *dd, unsigned int source)
{ … }
static void is_rcv_urgent_int(struct hfi1_devdata *dd, unsigned int source)
{ … }
static void is_reserved_int(struct hfi1_devdata *dd, unsigned int source)
{ … }
static const struct is_table is_table[] = …;
static void is_interrupt(struct hfi1_devdata *dd, unsigned int source)
{ … }
irqreturn_t general_interrupt(int irq, void *data)
{ … }
irqreturn_t sdma_interrupt(int irq, void *data)
{ … }
static inline void clear_recv_intr(struct hfi1_ctxtdata *rcd)
{ … }
void force_recv_intr(struct hfi1_ctxtdata *rcd)
{ … }
static inline int check_packet_present(struct hfi1_ctxtdata *rcd)
{ … }
static void receive_interrupt_common(struct hfi1_ctxtdata *rcd)
{ … }
static void __hfi1_rcd_eoi_intr(struct hfi1_ctxtdata *rcd)
{ … }
static void hfi1_rcd_eoi_intr(struct hfi1_ctxtdata *rcd)
{ … }
int hfi1_netdev_rx_napi(struct napi_struct *napi, int budget)
{ … }
irqreturn_t receive_context_interrupt_napi(int irq, void *data)
{ … }
irqreturn_t receive_context_interrupt(int irq, void *data)
{ … }
irqreturn_t receive_context_thread(int irq, void *data)
{ … }
u32 read_physical_state(struct hfi1_devdata *dd)
{ … }
u32 read_logical_state(struct hfi1_devdata *dd)
{ … }
static void set_logical_state(struct hfi1_devdata *dd, u32 chip_lstate)
{ … }
static int read_lcb_via_8051(struct hfi1_devdata *dd, u32 addr, u64 *data)
{ … }
struct lcb_datum { … };
static struct lcb_datum lcb_cache[] = …;
static void update_lcb_cache(struct hfi1_devdata *dd)
{ … }
static int read_lcb_cache(u32 off, u64 *val)
{ … }
int read_lcb_csr(struct hfi1_devdata *dd, u32 addr, u64 *data)
{ … }
static int write_lcb_via_8051(struct hfi1_devdata *dd, u32 addr, u64 data)
{ … }
int write_lcb_csr(struct hfi1_devdata *dd, u32 addr, u64 data)
{ … }
static int do_8051_command(struct hfi1_devdata *dd, u32 type, u64 in_data,
u64 *out_data)
{ … }
static int set_physical_link_state(struct hfi1_devdata *dd, u64 state)
{ … }
int load_8051_config(struct hfi1_devdata *dd, u8 field_id,
u8 lane_id, u32 config_data)
{ … }
int read_8051_config(struct hfi1_devdata *dd, u8 field_id, u8 lane_id,
u32 *result)
{ … }
static int write_vc_local_phy(struct hfi1_devdata *dd, u8 power_management,
u8 continuous)
{ … }
static int write_vc_local_fabric(struct hfi1_devdata *dd, u8 vau, u8 z, u8 vcu,
u16 vl15buf, u8 crc_sizes)
{ … }
static void read_vc_local_link_mode(struct hfi1_devdata *dd, u8 *misc_bits,
u8 *flag_bits, u16 *link_widths)
{ … }
static int write_vc_local_link_mode(struct hfi1_devdata *dd,
u8 misc_bits,
u8 flag_bits,
u16 link_widths)
{ … }
static int write_local_device_id(struct hfi1_devdata *dd, u16 device_id,
u8 device_rev)
{ … }
static void read_remote_device_id(struct hfi1_devdata *dd, u16 *device_id,
u8 *device_rev)
{ … }
int write_host_interface_version(struct hfi1_devdata *dd, u8 version)
{ … }
void read_misc_status(struct hfi1_devdata *dd, u8 *ver_major, u8 *ver_minor,
u8 *ver_patch)
{ … }
static void read_vc_remote_phy(struct hfi1_devdata *dd, u8 *power_management,
u8 *continuous)
{ … }
static void read_vc_remote_fabric(struct hfi1_devdata *dd, u8 *vau, u8 *z,
u8 *vcu, u16 *vl15buf, u8 *crc_sizes)
{ … }
static void read_vc_remote_link_width(struct hfi1_devdata *dd,
u8 *remote_tx_rate,
u16 *link_widths)
{ … }
static void read_local_lni(struct hfi1_devdata *dd, u8 *enable_lane_rx)
{ … }
static void read_last_local_state(struct hfi1_devdata *dd, u32 *lls)
{ … }
static void read_last_remote_state(struct hfi1_devdata *dd, u32 *lrs)
{ … }
void hfi1_read_link_quality(struct hfi1_devdata *dd, u8 *link_quality)
{ … }
static void read_planned_down_reason_code(struct hfi1_devdata *dd, u8 *pdrrc)
{ … }
static void read_link_down_reason(struct hfi1_devdata *dd, u8 *ldr)
{ … }
static int read_tx_settings(struct hfi1_devdata *dd,
u8 *enable_lane_tx,
u8 *tx_polarity_inversion,
u8 *rx_polarity_inversion,
u8 *max_rate)
{ … }
static int write_tx_settings(struct hfi1_devdata *dd,
u8 enable_lane_tx,
u8 tx_polarity_inversion,
u8 rx_polarity_inversion,
u8 max_rate)
{ … }
static int read_idle_message(struct hfi1_devdata *dd, u64 type, u64 *data_out)
{ … }
static int read_idle_sma(struct hfi1_devdata *dd, u64 *data)
{ … }
static int send_idle_message(struct hfi1_devdata *dd, u64 data)
{ … }
int send_idle_sma(struct hfi1_devdata *dd, u64 message)
{ … }
static int do_quick_linkup(struct hfi1_devdata *dd)
{ … }
static int init_loopback(struct hfi1_devdata *dd)
{ … }
static u16 opa_to_vc_link_widths(u16 opa_widths)
{ … }
static int set_local_link_attributes(struct hfi1_pportdata *ppd)
{ … }
int start_link(struct hfi1_pportdata *ppd)
{ … }
static void wait_for_qsfp_init(struct hfi1_pportdata *ppd)
{ … }
static void set_qsfp_int_n(struct hfi1_pportdata *ppd, u8 enable)
{ … }
int reset_qsfp(struct hfi1_pportdata *ppd)
{ … }
static int handle_qsfp_error_conditions(struct hfi1_pportdata *ppd,
u8 *qsfp_interrupt_status)
{ … }
void qsfp_event(struct work_struct *work)
{ … }
void init_qsfp_int(struct hfi1_devdata *dd)
{ … }
static void init_lcb(struct hfi1_devdata *dd)
{ … }
static int test_qsfp_read(struct hfi1_pportdata *ppd)
{ … }
#define MAX_QSFP_RETRIES …
#define QSFP_RETRY_WAIT …
static void try_start_link(struct hfi1_pportdata *ppd)
{ … }
void handle_start_link(struct work_struct *work)
{ … }
int bringup_serdes(struct hfi1_pportdata *ppd)
{ … }
void hfi1_quiet_serdes(struct hfi1_pportdata *ppd)
{ … }
static inline int init_cpu_counters(struct hfi1_devdata *dd)
{ … }
void hfi1_put_tid(struct hfi1_devdata *dd, u32 index,
u32 type, unsigned long pa, u16 order)
{ … }
void hfi1_clear_tids(struct hfi1_ctxtdata *rcd)
{ … }
static const char * const ib_cfg_name_strings[] = …;
static const char *ib_cfg_name(int which)
{ … }
int hfi1_get_ib_cfg(struct hfi1_pportdata *ppd, int which)
{ … }
#define MAX_MAD_PACKET …
u32 lrh_max_header_bytes(struct hfi1_devdata *dd)
{ … }
static void set_send_length(struct hfi1_pportdata *ppd)
{ … }
static void set_lidlmc(struct hfi1_pportdata *ppd)
{ … }
static const char *state_completed_string(u32 completed)
{ … }
static const char all_lanes_dead_timeout_expired[] = …;
static const char tx_out_of_policy[] = …;
static const char no_state_complete[] = …;
static const char * const state_complete_reasons[] = …;
static const char *state_complete_reason_code_string(struct hfi1_pportdata *ppd,
u32 code)
{ … }
static void decode_state_complete(struct hfi1_pportdata *ppd, u32 frame,
const char *prefix)
{ … }
static void check_lni_states(struct hfi1_pportdata *ppd)
{ … }
static int wait_link_transfer_active(struct hfi1_devdata *dd, int wait_ms)
{ … }
static void force_logical_link_state_down(struct hfi1_pportdata *ppd)
{ … }
static int goto_offline(struct hfi1_pportdata *ppd, u8 rem_reason)
{ … }
static const char *link_state_name(u32 state)
{ … }
static const char *link_state_reason_name(struct hfi1_pportdata *ppd, u32 state)
{ … }
u32 driver_pstate(struct hfi1_pportdata *ppd)
{ … }
u32 driver_lstate(struct hfi1_pportdata *ppd)
{ … }
void set_link_down_reason(struct hfi1_pportdata *ppd, u8 lcl_reason,
u8 neigh_reason, u8 rem_reason)
{ … }
static inline bool data_vls_operational(struct hfi1_pportdata *ppd)
{ … }
int set_link_state(struct hfi1_pportdata *ppd, u32 state)
{ … }
int hfi1_set_ib_cfg(struct hfi1_pportdata *ppd, int which, u32 val)
{ … }
static void init_vl_arb_caches(struct hfi1_pportdata *ppd)
{ … }
static inline struct vl_arb_cache *
vl_arb_lock_cache(struct hfi1_pportdata *ppd, int idx)
{ … }
static inline void vl_arb_unlock_cache(struct hfi1_pportdata *ppd, int idx)
{ … }
static void vl_arb_get_cache(struct vl_arb_cache *cache,
struct ib_vl_weight_elem *vl)
{ … }
static void vl_arb_set_cache(struct vl_arb_cache *cache,
struct ib_vl_weight_elem *vl)
{ … }
static int vl_arb_match_cache(struct vl_arb_cache *cache,
struct ib_vl_weight_elem *vl)
{ … }
static int set_vl_weights(struct hfi1_pportdata *ppd, u32 target,
u32 size, struct ib_vl_weight_elem *vl)
{ … }
static void read_one_cm_vl(struct hfi1_devdata *dd, u32 csr,
struct vl_limit *vll)
{ … }
static int get_buffer_control(struct hfi1_devdata *dd,
struct buffer_control *bc, u16 *overall_limit)
{ … }
static int get_sc2vlnt(struct hfi1_devdata *dd, struct sc2vlnt *dp)
{ … }
static void get_vlarb_preempt(struct hfi1_devdata *dd, u32 nelems,
struct ib_vl_weight_elem *vl)
{ … }
static void set_sc2vlnt(struct hfi1_devdata *dd, struct sc2vlnt *dp)
{ … }
static void nonzero_msg(struct hfi1_devdata *dd, int idx, const char *what,
u16 limit)
{ … }
static void set_global_shared(struct hfi1_devdata *dd, u16 limit)
{ … }
static void set_global_limit(struct hfi1_devdata *dd, u16 limit)
{ … }
static void set_vl_shared(struct hfi1_devdata *dd, int vl, u16 limit)
{ … }
static void set_vl_dedicated(struct hfi1_devdata *dd, int vl, u16 limit)
{ … }
static void wait_for_vl_status_clear(struct hfi1_devdata *dd, u64 mask,
const char *which)
{ … }
int set_buffer_control(struct hfi1_pportdata *ppd,
struct buffer_control *new_bc)
{ … }
int fm_get_table(struct hfi1_pportdata *ppd, int which, void *t)
{ … }
int fm_set_table(struct hfi1_pportdata *ppd, int which, void *t)
{ … }
static int disable_data_vls(struct hfi1_devdata *dd)
{ … }
int open_fill_data_vls(struct hfi1_devdata *dd)
{ … }
static void drain_data_vls(struct hfi1_devdata *dd)
{ … }
int stop_drain_data_vls(struct hfi1_devdata *dd)
{ … }
u32 ns_to_cclock(struct hfi1_devdata *dd, u32 ns)
{ … }
u32 cclock_to_ns(struct hfi1_devdata *dd, u32 cclocks)
{ … }
static void adjust_rcv_timeout(struct hfi1_ctxtdata *rcd, u32 npkts)
{ … }
void update_usrhead(struct hfi1_ctxtdata *rcd, u32 hd, u32 updegr, u32 egrhd,
u32 intr_adjust, u32 npkts)
{ … }
u32 hdrqempty(struct hfi1_ctxtdata *rcd)
{ … }
static u32 encoded_size(u32 size)
{ … }
u8 encode_rcv_header_entry_size(u8 size)
{ … }
int hfi1_validate_rcvhdrcnt(struct hfi1_devdata *dd, uint thecnt)
{ … }
void set_hdrq_regs(struct hfi1_devdata *dd, u8 ctxt, u8 entsize, u16 hdrcnt)
{ … }
void hfi1_rcvctrl(struct hfi1_devdata *dd, unsigned int op,
struct hfi1_ctxtdata *rcd)
{ … }
u32 hfi1_read_cntrs(struct hfi1_devdata *dd, char **namep, u64 **cntrp)
{ … }
u32 hfi1_read_portcntrs(struct hfi1_pportdata *ppd, char **namep, u64 **cntrp)
{ … }
static void free_cntrs(struct hfi1_devdata *dd)
{ … }
static u64 read_dev_port_cntr(struct hfi1_devdata *dd, struct cntr_entry *entry,
u64 *psval, void *context, int vl)
{ … }
static u64 write_dev_port_cntr(struct hfi1_devdata *dd,
struct cntr_entry *entry,
u64 *psval, void *context, int vl, u64 data)
{ … }
u64 read_dev_cntr(struct hfi1_devdata *dd, int index, int vl)
{ … }
u64 write_dev_cntr(struct hfi1_devdata *dd, int index, int vl, u64 data)
{ … }
u64 read_port_cntr(struct hfi1_pportdata *ppd, int index, int vl)
{ … }
u64 write_port_cntr(struct hfi1_pportdata *ppd, int index, int vl, u64 data)
{ … }
static void do_update_synth_timer(struct work_struct *work)
{ … }
static void update_synth_timer(struct timer_list *t)
{ … }
#define C_MAX_NAME …
static int init_cntrs(struct hfi1_devdata *dd)
{ … }
static u32 chip_to_opa_lstate(struct hfi1_devdata *dd, u32 chip_lstate)
{ … }
u32 chip_to_opa_pstate(struct hfi1_devdata *dd, u32 chip_pstate)
{ … }
const char *opa_lstate_name(u32 lstate)
{ … }
const char *opa_pstate_name(u32 pstate)
{ … }
static void update_statusp(struct hfi1_pportdata *ppd, u32 state)
{ … }
static int wait_logical_linkstate(struct hfi1_pportdata *ppd, u32 state,
int msecs)
{ … }
static void log_state_transition(struct hfi1_pportdata *ppd, u32 state)
{ … }
static void log_physical_state(struct hfi1_pportdata *ppd, u32 state)
{ … }
static int wait_physical_linkstate(struct hfi1_pportdata *ppd, u32 state,
int msecs)
{ … }
static int wait_phys_link_offline_substates(struct hfi1_pportdata *ppd,
int msecs)
{ … }
static int wait_phys_link_out_of_offline(struct hfi1_pportdata *ppd,
int msecs)
{ … }
#define CLEAR_STATIC_RATE_CONTROL_SMASK(r) …
#define SET_STATIC_RATE_CONTROL_SMASK(r) …
void hfi1_init_ctxt(struct send_context *sc)
{ … }
int hfi1_tempsense_rd(struct hfi1_devdata *dd, struct hfi1_temp *temp)
{ … }
static void read_mod_write(struct hfi1_devdata *dd, u16 src, u64 bits,
bool set)
{ … }
int set_intr_bits(struct hfi1_devdata *dd, u16 first, u16 last, bool set)
{ … }
void clear_all_interrupts(struct hfi1_devdata *dd)
{ … }
void remap_intr(struct hfi1_devdata *dd, int isrc, int msix_intr)
{ … }
void remap_sdma_interrupts(struct hfi1_devdata *dd, int engine, int msix_intr)
{ … }
void reset_interrupts(struct hfi1_devdata *dd)
{ … }
static int set_up_interrupts(struct hfi1_devdata *dd)
{ … }
static int set_up_context_variables(struct hfi1_devdata *dd)
{ … }
static void set_partition_keys(struct hfi1_pportdata *ppd)
{ … }
static void write_uninitialized_csrs_and_memories(struct hfi1_devdata *dd)
{ … }
static void clear_cce_status(struct hfi1_devdata *dd, u64 status_bits,
u64 ctrl_bits)
{ … }
static void reset_cce_csrs(struct hfi1_devdata *dd)
{ … }
static void reset_misc_csrs(struct hfi1_devdata *dd)
{ … }
static void reset_txe_csrs(struct hfi1_devdata *dd)
{ … }
static void init_rbufs(struct hfi1_devdata *dd)
{ … }
static void reset_rxe_csrs(struct hfi1_devdata *dd)
{ … }
static void init_sc2vl_tables(struct hfi1_devdata *dd)
{ … }
static int init_chip(struct hfi1_devdata *dd)
{ … }
static void init_early_variables(struct hfi1_devdata *dd)
{ … }
static void init_kdeth_qp(struct hfi1_devdata *dd)
{ … }
u8 hfi1_get_qp_map(struct hfi1_devdata *dd, u8 idx)
{ … }
static void init_qpmap_table(struct hfi1_devdata *dd,
u32 first_ctxt,
u32 last_ctxt)
{ … }
struct rsm_map_table { … };
struct rsm_rule_data { … };
static struct rsm_map_table *alloc_rsm_map_table(struct hfi1_devdata *dd)
{ … }
static void complete_rsm_map_table(struct hfi1_devdata *dd,
struct rsm_map_table *rmt)
{ … }
static bool has_rsm_rule(struct hfi1_devdata *dd, u8 rule_index)
{ … }
static void add_rsm_rule(struct hfi1_devdata *dd, u8 rule_index,
struct rsm_rule_data *rrd)
{ … }
static void clear_rsm_rule(struct hfi1_devdata *dd, u8 rule_index)
{ … }
static int qos_rmt_entries(unsigned int n_krcv_queues, unsigned int *mp,
unsigned int *np)
{ … }
static void init_qos(struct hfi1_devdata *dd, struct rsm_map_table *rmt)
{ … }
static void init_fecn_handling(struct hfi1_devdata *dd,
struct rsm_map_table *rmt)
{ … }
static inline bool hfi1_is_rmt_full(int start, int spare)
{ … }
static bool hfi1_netdev_update_rmt(struct hfi1_devdata *dd)
{ … }
static void hfi1_enable_rsm_rule(struct hfi1_devdata *dd,
int rule, struct rsm_rule_data *rrd)
{ … }
void hfi1_init_aip_rsm(struct hfi1_devdata *dd)
{ … }
void hfi1_init_vnic_rsm(struct hfi1_devdata *dd)
{ … }
void hfi1_deinit_vnic_rsm(struct hfi1_devdata *dd)
{ … }
void hfi1_deinit_aip_rsm(struct hfi1_devdata *dd)
{ … }
static int init_rxe(struct hfi1_devdata *dd)
{ … }
static void init_other(struct hfi1_devdata *dd)
{ … }
static void assign_cm_au_table(struct hfi1_devdata *dd, u32 cu,
u32 csr0to3, u32 csr4to7)
{ … }
static void assign_local_cm_au_table(struct hfi1_devdata *dd, u8 vcu)
{ … }
void assign_remote_cm_au_table(struct hfi1_devdata *dd, u8 vcu)
{ … }
static void init_txe(struct hfi1_devdata *dd)
{ … }
int hfi1_set_ctxt_jkey(struct hfi1_devdata *dd, struct hfi1_ctxtdata *rcd,
u16 jkey)
{ … }
int hfi1_clear_ctxt_jkey(struct hfi1_devdata *dd, struct hfi1_ctxtdata *rcd)
{ … }
int hfi1_set_ctxt_pkey(struct hfi1_devdata *dd, struct hfi1_ctxtdata *rcd,
u16 pkey)
{ … }
int hfi1_clear_ctxt_pkey(struct hfi1_devdata *dd, struct hfi1_ctxtdata *ctxt)
{ … }
void hfi1_start_cleanup(struct hfi1_devdata *dd)
{ … }
#define HFI_BASE_GUID(dev) …
static int init_asic_data(struct hfi1_devdata *dd)
{ … }
static int obtain_boardname(struct hfi1_devdata *dd)
{ … }
static int check_int_registers(struct hfi1_devdata *dd)
{ … }
int hfi1_init_dd(struct hfi1_devdata *dd)
{ … }
static u16 delay_cycles(struct hfi1_pportdata *ppd, u32 desired_egress_rate,
u32 dw_len)
{ … }
u64 create_pbc(struct hfi1_pportdata *ppd, u64 flags, int srate_mbs, u32 vl,
u32 dw_len)
{ … }
#define SBUS_THERMAL …
#define SBUS_THERM_MONITOR_MODE …
#define THERM_FAILURE(dev, ret, reason) …
static int thermal_init(struct hfi1_devdata *dd)
{ … }
static void handle_temp_err(struct hfi1_devdata *dd)
{ … }