Symbol: fbd
drivers/gpu/drm/bridge/tc358768.c
159
u32 fbd; /* PLL feedback divider */
drivers/gpu/drm/bridge/tc358768.c
362
u32 fbd;
drivers/gpu/drm/bridge/tc358768.c
364
for (fbd = 1; fbd <= 512; ++fbd) {
drivers/gpu/drm/bridge/tc358768.c
367
pll = (u32)div_u64((u64)refclk * fbd, divisor);
drivers/gpu/drm/bridge/tc358768.c
382
best_fbd = fbd;
drivers/gpu/drm/bridge/tc358768.c
399
priv->fbd = best_fbd;
drivers/gpu/drm/bridge/tc358768.c
618
u32 fbd, prd, frs;
drivers/gpu/drm/bridge/tc358768.c
627
fbd = priv->fbd;
drivers/gpu/drm/bridge/tc358768.c
632
clk_get_rate(priv->refclk), fbd, prd, frs);
drivers/gpu/drm/bridge/tc358768.c
640
tc358768_write(priv, TC358768_PLLCTL0, ((prd - 1) << 12) | (fbd - 1));
drivers/media/i2c/tc358743_regs.h
86
#define SET_PLL_FBD(fbd) (((fbd) - 1) & MASK_PLL_FBD)
drivers/media/platform/atmel/atmel-isi.c
102
struct fbd *p_fb_descriptors;
drivers/media/platform/atmel/atmel-isi.c
1251
sizeof(struct fbd) * VIDEO_MAX_FRAME,
drivers/media/platform/atmel/atmel-isi.c
1263
i * sizeof(struct fbd);
drivers/media/platform/atmel/atmel-isi.c
1303
sizeof(struct fbd) * VIDEO_MAX_FRAME,
drivers/media/platform/atmel/atmel-isi.c
1320
sizeof(struct fbd) * VIDEO_MAX_FRAME,
drivers/media/platform/atmel/atmel-isi.c
52
static void set_dma_ctrl(struct fbd *fb_desc, u32 ctrl)
drivers/media/platform/atmel/atmel-isi.c
59
struct fbd *p_fbd;
drivers/net/ethernet/meta/fbnic/fbnic.h
114
static inline bool fbnic_present(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic.h
116
return !!READ_ONCE(fbd->uc_addr0);
drivers/net/ethernet/meta/fbnic/fbnic.h
119
static inline void fbnic_wr32(struct fbnic_dev *fbd, u32 reg, u32 val)
drivers/net/ethernet/meta/fbnic/fbnic.h
121
u32 __iomem *csr = READ_ONCE(fbd->uc_addr0);
drivers/net/ethernet/meta/fbnic/fbnic.h
127
u32 fbnic_rd32(struct fbnic_dev *fbd, u32 reg);
drivers/net/ethernet/meta/fbnic/fbnic.h
129
static inline void fbnic_wrfl(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic.h
131
fbnic_rd32(fbd, FBNIC_MASTER_SPARE_0);
drivers/net/ethernet/meta/fbnic/fbnic.h
135
fbnic_rmw32(struct fbnic_dev *fbd, u32 reg, u32 mask, u32 val)
drivers/net/ethernet/meta/fbnic/fbnic.h
139
v = fbnic_rd32(fbd, reg);
drivers/net/ethernet/meta/fbnic/fbnic.h
142
fbnic_wr32(fbd, reg, v);
drivers/net/ethernet/meta/fbnic/fbnic.h
149
bool fbnic_fw_present(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
150
u32 fbnic_fw_rd32(struct fbnic_dev *fbd, u32 reg);
drivers/net/ethernet/meta/fbnic/fbnic.h
151
void fbnic_fw_wr32(struct fbnic_dev *fbd, u32 reg, u32 val);
drivers/net/ethernet/meta/fbnic/fbnic.h
157
static inline bool fbnic_bmc_present(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic.h
159
return fbd->fw_cap.bmc_present;
drivers/net/ethernet/meta/fbnic/fbnic.h
162
static inline bool fbnic_init_failure(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic.h
164
return !fbd->netdev;
drivers/net/ethernet/meta/fbnic/fbnic.h
169
void fbnic_devlink_free(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
171
int fbnic_devlink_health_create(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
172
void fbnic_devlink_health_destroy(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
173
void fbnic_devlink_register(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
174
void fbnic_devlink_unregister(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
176
fbnic_devlink_fw_report(struct fbnic_dev *fbd, const char *format, ...);
drivers/net/ethernet/meta/fbnic/fbnic.h
177
void fbnic_devlink_otp_check(struct fbnic_dev *fbd, const char *msg);
drivers/net/ethernet/meta/fbnic/fbnic.h
179
int fbnic_fw_request_mbx(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
180
void fbnic_fw_free_mbx(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
182
void fbnic_hwmon_register(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
183
void fbnic_hwmon_unregister(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
185
int fbnic_mac_request_irq(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
186
void fbnic_mac_free_irq(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
188
void fbnic_napi_name_irqs(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
189
int fbnic_napi_request_irq(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic.h
191
void fbnic_napi_free_irq(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic.h
193
void fbnic_synchronize_irq(struct fbnic_dev *fbd, int nr);
drivers/net/ethernet/meta/fbnic/fbnic.h
197
void fbnic_free_irqs(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
198
int fbnic_alloc_irqs(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
200
void fbnic_get_fw_ver_commit_str(struct fbnic_dev *fbd, char *fw_version,
drivers/net/ethernet/meta/fbnic/fbnic.h
203
void fbnic_dbg_fbd_init(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
204
void fbnic_dbg_fbd_exit(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
208
void fbnic_rpc_reset_valid_entries(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
210
int fbnic_mdiobus_create(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic.h
212
void fbnic_csr_get_regs(struct fbnic_dev *fbd, u32 *data, u32 *regs_version);
drivers/net/ethernet/meta/fbnic/fbnic.h
213
int fbnic_csr_regs_len(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_csr.c
103
*(data++) = rd32(fbd, FBNIC_RPC_TCAM_IPDST(i, j));
drivers/net/ethernet/meta/fbnic/fbnic_csr.c
109
*(data++) = rd32(fbd, FBNIC_RPC_RSS_TBL(i, j));
drivers/net/ethernet/meta/fbnic/fbnic_csr.c
115
void fbnic_csr_get_regs(struct fbnic_dev *fbd, u32 *data, u32 *regs_version)
drivers/net/ethernet/meta/fbnic/fbnic_csr.c
129
*(data++) = rd32(fbd, j);
drivers/net/ethernet/meta/fbnic/fbnic_csr.c
133
fbnic_csr_get_regs_rpc_ram(fbd, &data);
drivers/net/ethernet/meta/fbnic/fbnic_csr.c
135
WARN_ON(data - start != fbnic_csr_regs_len(fbd));
drivers/net/ethernet/meta/fbnic/fbnic_csr.c
138
int fbnic_csr_regs_len(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_csr.c
60
static void fbnic_csr_get_regs_rpc_ram(struct fbnic_dev *fbd, u32 **data_p)
drivers/net/ethernet/meta/fbnic/fbnic_csr.c
73
*(data++) = rd32(fbd, FBNIC_RPC_TCAM_ACT(i, j));
drivers/net/ethernet/meta/fbnic/fbnic_csr.c
79
*(data++) = rd32(fbd, FBNIC_RPC_TCAM_MACDA(i, j));
drivers/net/ethernet/meta/fbnic/fbnic_csr.c
85
*(data++) = rd32(fbd, FBNIC_RPC_TCAM_OUTER_IPSRC(i, j));
drivers/net/ethernet/meta/fbnic/fbnic_csr.c
91
*(data++) = rd32(fbd, FBNIC_RPC_TCAM_OUTER_IPDST(i, j));
drivers/net/ethernet/meta/fbnic/fbnic_csr.c
97
*(data++) = rd32(fbd, FBNIC_RPC_TCAM_IPSRC(i, j));
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
320
struct fbnic_dev *fbd = nv->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
327
nv->dbg_nv = debugfs_create_dir(name, fbd->dbg_fbd);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
335
&fbd->uc_addr0[FBNIC_QUEUE(0)];
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
357
&fbd->uc_addr0[FBNIC_QUEUE(0)];
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
382
struct fbnic_dev *fbd = s->private;
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
393
struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[i];
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
408
struct fbnic_dev *fbd = s->private;
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
418
for (i = 0; i < ARRAY_SIZE(fbd->mac_addr); i++) {
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
419
struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[i];
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
442
struct fbnic_dev *fbd = s->private;
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
453
struct fbnic_act_tcam *act_tcam = &fbd->act_tcam[i];
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
502
struct fbnic_dev *fbd = s->private;
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
504
return fbnic_dbg_ip_addr_show(s, fbd->ip_src);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
510
struct fbnic_dev *fbd = s->private;
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
512
return fbnic_dbg_ip_addr_show(s, fbd->ip_dst);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
518
struct fbnic_dev *fbd = s->private;
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
520
return fbnic_dbg_ip_addr_show(s, fbd->ipo_src);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
526
struct fbnic_dev *fbd = s->private;
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
528
return fbnic_dbg_ip_addr_show(s, fbd->ipo_dst);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
533
struct fbnic_dev *fbd, int mbx_idx)
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
535
struct fbnic_fw_mbx *mbx = &fbd->mbx[mbx_idx];
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
551
u64 desc = __fbnic_mbx_rd_desc(fbd, mbx_idx, i);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
565
struct fbnic_dev *fbd = s->private;
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
567
fbnic_dbg_fw_mbx_display(s, fbd, FBNIC_IPC_MBX_RX_IDX);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
572
fbnic_dbg_fw_mbx_display(s, fbd, FBNIC_IPC_MBX_TX_IDX);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
580
struct fbnic_dev *fbd = s->private;
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
584
if (!fbnic_fw_log_ready(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
587
spin_lock_irqsave(&fbd->fw_log.lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
589
list_for_each_entry_reverse(entry, &fbd->fw_log.entries, list) {
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
599
spin_unlock_irqrestore(&fbd->fw_log.lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
607
struct fbnic_dev *fbd = s->private;
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
610
fbnic_get_hw_stats(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
612
seq_printf(s, "ob_rd_tlp: %llu\n", fbd->hw_stats.pcie.ob_rd_tlp.value);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
614
fbd->hw_stats.pcie.ob_rd_dword.value);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
615
seq_printf(s, "ob_wr_tlp: %llu\n", fbd->hw_stats.pcie.ob_wr_tlp.value);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
617
fbd->hw_stats.pcie.ob_wr_dword.value);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
619
fbd->hw_stats.pcie.ob_cpl_tlp.value);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
621
fbd->hw_stats.pcie.ob_cpl_dword.value);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
623
fbd->hw_stats.pcie.ob_rd_no_tag.value);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
625
fbd->hw_stats.pcie.ob_rd_no_cpl_cred.value);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
627
fbd->hw_stats.pcie.ob_rd_no_np_cred.value);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
635
void fbnic_dbg_fbd_init(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
637
struct pci_dev *pdev = to_pci_dev(fbd->dev);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
640
fbd->dbg_fbd = debugfs_create_dir(name, fbnic_dbg_root);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
641
debugfs_create_file("pcie_stats", 0400, fbd->dbg_fbd, fbd,
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
643
debugfs_create_file("mac_addr", 0400, fbd->dbg_fbd, fbd,
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
645
debugfs_create_file("tce_tcam", 0400, fbd->dbg_fbd, fbd,
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
647
debugfs_create_file("act_tcam", 0400, fbd->dbg_fbd, fbd,
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
649
debugfs_create_file("ip_src", 0400, fbd->dbg_fbd, fbd,
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
651
debugfs_create_file("ip_dst", 0400, fbd->dbg_fbd, fbd,
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
653
debugfs_create_file("ipo_src", 0400, fbd->dbg_fbd, fbd,
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
655
debugfs_create_file("ipo_dst", 0400, fbd->dbg_fbd, fbd,
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
657
debugfs_create_file("fw_mbx", 0400, fbd->dbg_fbd, fbd,
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
659
debugfs_create_file("fw_log", 0400, fbd->dbg_fbd, fbd,
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
663
void fbnic_dbg_fbd_exit(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
665
debugfs_remove_recursive(fbd->dbg_fbd);
drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c
666
fbd->dbg_fbd = NULL;
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
102
put_unaligned_be64(fbd->dsn, dsn);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
121
struct fbnic_dev *fbd;
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
129
fbd = pci_get_drvdata(pdev);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
130
devlink = priv_to_devlink(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
149
if (anti_rollback_ver < fbd->fw_cap.anti_rollback_version) {
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
154
anti_rollback_ver, fbd->fw_cap.anti_rollback_version);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
165
fbnic_flash_start(struct fbnic_dev *fbd, struct pldmfw_component *component)
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
174
err = fbnic_fw_xmit_fw_start_upgrade(fbd, cmpl,
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
186
fbnic_mbx_clear_cmpl(fbd, cmpl);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
202
struct fbnic_dev *fbd;
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
210
fbd = pci_get_drvdata(pdev);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
211
devlink = priv_to_devlink(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
244
err = fbnic_mbx_set_cmpl(fbd, cmpl);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
250
err = fbnic_flash_start(fbd, component);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
289
err = fbnic_fw_xmit_fw_write_chunk(fbd, data, offset, length,
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
296
fbnic_fw_xmit_fw_write_chunk(fbd, NULL, 0, 0, err);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
304
fbnic_mbx_clear_cmpl(fbd, cmpl);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
321
struct fbnic_dev *fbd = devlink_priv(devlink);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
323
struct device *dev = fbd->dev;
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
377
struct fbnic_dev *fbd = devlink_health_reporter_priv(reporter);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
387
err = fbnic_fw_xmit_coredump_info_msg(fbd, fw_cmpl, true);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
403
fbnic_mbx_clear_cmpl(fbd, fw_cmpl);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
439
err = fbnic_fw_xmit_coredump_read_msg(fbd, cmpl_arg,
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
481
fbnic_mbx_clear_cmpl(fbd, fw_cmpl);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
493
struct fbnic_dev *fbd = devlink_health_reporter_priv(reporter);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
497
if (!fbd->prev_firmware_time)
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
500
sec = div_u64_rem(fbd->firmware_time, MSEC_PER_SEC, &msec);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
517
fbnic_devlink_fw_report(struct fbnic_dev *fbd, const char *format, ...)
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
526
devlink_health_report(fbd->fw_reporter, msg, fbd);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
527
if (fbnic_fw_log_ready(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
528
fbnic_fw_log_write(fbd, 0, fbd->firmware_time, msg);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
537
static u32 fbnic_read_otp_status(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
539
return fbnic_fw_rd32(fbd, FBNIC_NS_OTP_STATUS);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
547
struct fbnic_dev *fbd = devlink_health_reporter_priv(reporter);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
550
otp_status = fbnic_read_otp_status(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
551
otp_write_status = fbnic_fw_rd32(fbd, FBNIC_NS_OTP_WRITE_STATUS);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
575
void fbnic_devlink_otp_check(struct fbnic_dev *fbd, const char *msg)
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
578
if (!fbnic_read_otp_status(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
581
devlink_health_report(fbd->otp_reporter, msg, fbd);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
582
if (fbnic_fw_log_ready(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
583
fbnic_fw_log_write(fbd, 0, fbd->firmware_time, msg);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
591
int fbnic_devlink_health_create(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
593
fbd->fw_reporter = devlink_health_reporter_create(priv_to_devlink(fbd),
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
594
&fbnic_fw_ops, fbd);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
595
if (IS_ERR(fbd->fw_reporter)) {
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
596
dev_warn(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
598
fbd->fw_reporter);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
599
return PTR_ERR(fbd->fw_reporter);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
602
fbd->otp_reporter = devlink_health_reporter_create(priv_to_devlink(fbd),
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
603
&fbnic_otp_ops, fbd);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
604
if (IS_ERR(fbd->otp_reporter)) {
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
605
devlink_health_reporter_destroy(fbd->fw_reporter);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
606
dev_warn(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
608
fbd->otp_reporter);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
609
return PTR_ERR(fbd->otp_reporter);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
615
void fbnic_devlink_health_destroy(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
617
devlink_health_reporter_destroy(fbd->otp_reporter);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
618
devlink_health_reporter_destroy(fbd->fw_reporter);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
621
void fbnic_devlink_free(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
623
struct devlink *devlink = priv_to_devlink(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
632
struct fbnic_dev *fbd;
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
639
fbd = devlink_priv(devlink);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
640
pci_set_drvdata(pdev, fbd);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
641
fbd->dev = &pdev->dev;
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
644
fbd->uc_addr0 = iomap_table[0];
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
645
fbd->uc_addr4 = iomap_table[4];
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
647
fbd->dsn = pci_get_dsn(pdev);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
648
fbd->mps = pcie_get_mps(pdev);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
649
fbd->readrq = pcie_get_readrq(pdev);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
651
fbd->mac_addr_boundary = FBNIC_RPC_TCAM_MACDA_DEFAULT_BOUNDARY;
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
653
return fbd;
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
656
void fbnic_devlink_register(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
658
struct devlink *devlink = priv_to_devlink(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
663
void fbnic_devlink_unregister(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
665
struct devlink *devlink = priv_to_devlink(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
70
struct fbnic_dev *fbd = devlink_priv(devlink);
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
73
err = fbnic_version_running_put(req, &fbd->fw_cap.running.mgmt,
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
78
err = fbnic_version_running_put(req, &fbd->fw_cap.running.bootloader,
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
83
err = fbnic_version_stored_put(req, &fbd->fw_cap.stored.mgmt,
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
88
err = fbnic_version_stored_put(req, &fbd->fw_cap.stored.bootloader,
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
93
err = fbnic_version_stored_put(req, &fbd->fw_cap.stored.undi,
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
98
if (fbd->dsn) {
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1031
ip_src = __fbnic_ip6_sync(fbd, fbd->ipo_src,
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1040
ip_src - fbd->ipo_src);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1049
ip_dst = __fbnic_ip6_sync(fbd, fbd->ipo_dst,
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1061
ip_dst - fbd->ipo_dst);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1072
ip_src = __fbnic_ip6_sync(fbd, fbd->ip_src,
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1080
ip_src - fbd->ip_src);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1088
ip_dst = __fbnic_ip6_sync(fbd, fbd->ip_dst,
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1099
ip_dst - fbd->ip_dst);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1127
mac_addr = __fbnic_mc_sync(fbd, addr);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1129
mac_addr = __fbnic_uc_sync(fbd, addr);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1137
mac_addr - fbd->mac_addr);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1180
fbnic_write_rules(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1182
fbnic_write_ip_addr(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1184
fbnic_write_macda(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1193
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1196
for (idx = ARRAY_SIZE(fbd->mac_addr); idx--;)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1197
__fbnic_xc_unsync(&fbd->mac_addr[idx], tcam_idx);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1201
fbnic_write_macda(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1207
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1210
for (idx = ARRAY_SIZE(fbd->ip_src); idx--;)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1211
__fbnic_ip_unsync(&fbd->ip_src[idx], tcam_idx);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1212
for (idx = ARRAY_SIZE(fbd->ip_dst); idx--;)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1213
__fbnic_ip_unsync(&fbd->ip_dst[idx], tcam_idx);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1214
for (idx = ARRAY_SIZE(fbd->ipo_src); idx--;)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1215
__fbnic_ip_unsync(&fbd->ipo_src[idx], tcam_idx);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1216
for (idx = ARRAY_SIZE(fbd->ipo_dst); idx--;)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1217
__fbnic_ip_unsync(&fbd->ipo_dst[idx], tcam_idx);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1221
fbnic_write_ip_addr(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1228
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1238
act_tcam = &fbd->act_tcam[idx];
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1262
fbnic_write_rules(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
133
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
135
fbnic_get_fw_ver_commit_str(fbd, drvinfo->fw_version,
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1367
fbnic_rss_reinit_hw(fbn->fbd, fbn);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1419
fbnic_rss_reinit(fbn->fbd, fbn);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1420
fbnic_write_rules(fbn->fbd);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
143
return fbnic_csr_regs_len(fbn->fbd) * sizeof(u32);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1441
fbnic_rss_reinit_hw(fbn->fbd, fbn);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1485
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1487
ch->max_rx = fbd->max_num_queues;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1488
ch->max_tx = fbd->max_num_queues;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
151
fbnic_csr_get_regs(fbn->fbd, data, &regs->version);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1518
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1522
max_napis = fbd->num_irqs - FBNIC_NON_NAPI_VECTORS;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1531
ch->rx_count + ch->combined_count > fbd->max_num_queues ||
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1532
ch->tx_count + ch->combined_count > fbd->max_num_queues ||
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1557
err = fbnic_wait_all_queues_idle(fbn->fbd, true);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1598
tsinfo->phc_index = ptp_clock_index(fbn->fbd->ptp);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1651
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1671
err = fbnic_fw_xmit_qsfp_read_msg(fbd, fw_cmpl, page_data->page,
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1696
fbnic_mbx_clear_cmpl(fbd, fw_cmpl);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1715
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1717
mac_stats = &fbd->hw_stats.mac;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1719
fbd->mac->get_pause_stats(fbd, false, &mac_stats->pause);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1732
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1734
fbnic_get_hw_stats32(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1735
phy_stats = &fbd->hw_stats.phy;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1737
spin_lock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1742
spin_unlock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1751
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1755
fbnic_get_hw_stats32(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1756
phy_stats = &fbd->hw_stats.phy;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1758
spin_lock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1763
spin_unlock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1772
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1775
mac_stats = &fbd->hw_stats.mac;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1776
mac = fbd->mac;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1778
mac->get_eth_mac_stats(fbd, false, &mac_stats->eth_mac);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1814
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1816
mac_stats = &fbd->hw_stats.mac;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1818
fbd->mac->get_eth_ctrl_stats(fbd, false, &mac_stats->eth_ctrl);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1848
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1851
mac_stats = &fbd->hw_stats.mac;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
1853
fbd->mac->get_rmon_stats(fbd, false, &mac_stats->rmon);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
202
struct fbnic_dev *fbd = orig->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
206
fbnic_synchronize_irq(fbd, FBNIC_NON_NAPI_VECTORS + i);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
377
err = fbnic_wait_all_queues_idle(fbn->fbd, true);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
516
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
519
fbnic_get_hw_stats(fbn->fbd);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
521
spin_lock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
522
fbnic_report_hw_stats(fbnic_gstrings_hw_stats, &fbd->hw_stats,
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
528
enq = &fbd->hw_stats.rxb.enq[i];
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
537
fifo = &fbd->hw_stats.rxb.fifo[i];
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
546
deq = &fbd->hw_stats.rxb.deq[i];
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
553
const struct fbnic_hw_q_stats *hw_q = &fbd->hw_stats.hw_q[i];
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
558
spin_unlock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
610
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
620
act_tcam = &fbd->act_tcam[idx];
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
640
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
650
act_tcam = &fbd->act_tcam[idx];
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
667
mac_addr = &fbd->mac_addr[idx];
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
686
ip_addr = &fbd->ipo_src[idx];
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
703
ip_addr = &fbd->ipo_dst[idx];
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
738
ip_addr = &fbd->ip_src[idx];
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
755
ip_addr = &fbd->ip_dst[idx];
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
790
ip_addr = &fbd->ip_src[idx];
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
804
ip_addr = &fbd->ip_dst[idx];
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
864
static int fbnic_cls_rule_any_loc(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
871
if (fbd->act_tcam[idx].state != FBNIC_TCAM_S_VALID)
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
889
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
901
location = fbnic_cls_rule_any_loc(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
921
act_tcam = &fbd->act_tcam[idx];
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
963
ip_src = __fbnic_ip4_sync(fbd, fbd->ip_src,
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
971
ip_src - fbd->ip_src);
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
979
ip_dst = __fbnic_ip4_sync(fbd, fbd->ip_dst,
drivers/net/ethernet/meta/fbnic/fbnic_ethtool.c
990
ip_dst - fbd->ip_dst);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1005
int fbnic_fw_xmit_fw_start_upgrade(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1012
if (!fbnic_fw_present(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
103
memset(&fbd->mbx[i], 0, sizeof(struct fbnic_fw_mbx));
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1031
err = fbnic_mbx_map_req_w_cmpl(fbd, msg, cmpl_data);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1051
struct fbnic_dev *fbd = opaque;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1057
cmpl_data = fbnic_fw_get_cmpl_by_type(fbd, msg_type);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
106
wr32(fbd, FBNIC_INTR_SW_AC_MODE(0), ~(1u << FBNIC_FW_MSIX_ENTRY));
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1071
int fbnic_fw_xmit_fw_write_chunk(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
109
wr32(fbd, FBNIC_INTR_CLEAR(0), 1u << FBNIC_FW_MSIX_ENTRY);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1107
err = fbnic_mbx_map_tlv_msg(fbd, msg);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
112
fbnic_mbx_reset_desc_ring(fbd, i);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1128
struct fbnic_dev *fbd = opaque;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1135
cmpl_data = fbnic_fw_get_cmpl_by_type(fbd, msg_type);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
115
static int fbnic_mbx_map_msg(struct fbnic_dev *fbd, int mbx_idx,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1160
struct fbnic_dev *fbd = opaque;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1166
cmpl_data = fbnic_fw_get_cmpl_by_type(fbd, msg_type);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
118
struct fbnic_fw_mbx *mbx = &fbd->mbx[mbx_idx];
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1202
int fbnic_fw_xmit_qsfp_read_msg(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
123
if (!mbx->ready || !fbnic_fw_present(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1232
err = fbnic_mbx_map_req_w_cmpl(fbd, msg, cmpl_data);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1257
struct fbnic_dev *fbd = opaque;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1264
cmpl_data = fbnic_fw_get_cmpl_by_type(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1271
dev_warn(fbd->dev, "bank not equal to bank requested: %d vs %d\n",
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1279
dev_warn(fbd->dev, "page not equal to page requested: %d vs %d\n",
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1290
dev_warn(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
132
addr = dma_map_single(fbd->dev, msg, PAGE_SIZE, direction);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1329
int fbnic_fw_xmit_tsene_read_msg(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
133
if (dma_mapping_error(fbd->dev, addr))
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1335
if (!fbnic_fw_present(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1342
err = fbnic_mbx_map_req_w_cmpl(fbd, msg, cmpl_data);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1364
struct fbnic_dev *fbd = opaque;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1369
cmpl_data = fbnic_fw_get_cmpl_by_type(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
141
fw_wr32(fbd, FBNIC_IPC_MBX(mbx_idx, mbx->tail), 0);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
143
__fbnic_mbx_wr_desc(fbd, mbx_idx, tail,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1439
static int fbnic_fw_parse_logs(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1455
dev_warn(fbd->dev, "Received log message with missing attributes!\n");
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1466
err = fbnic_fw_log_write(fbd, index, msec, log);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1480
struct fbnic_dev *fbd = opaque;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
15
static void __fbnic_mbx_wr_desc(struct fbnic_dev *fbd, int mbx_idx,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1506
err = fbnic_fw_parse_logs(fbd, msec_tlv, index_tlv, log_tlv,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1514
int fbnic_fw_xmit_send_logs(struct fbnic_dev *fbd, bool enable,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
152
static void fbnic_mbx_unmap_and_free_msg(struct fbnic_dev *fbd, int mbx_idx,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1520
if (fbd->fw_cap.running.mgmt.version < MIN_FW_VER_CODE_LOG) {
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1521
dev_warn(fbd->dev, "Firmware version is too old to support firmware logs!\n");
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1548
err = fbnic_mbx_map_tlv_msg(fbd, msg);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
155
struct fbnic_fw_mbx *mbx = &fbd->mbx[mbx_idx];
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1592
static void fbnic_mbx_process_rx_msgs(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1594
struct fbnic_fw_mbx *rx_mbx = &fbd->mbx[FBNIC_IPC_MBX_RX_IDX];
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1602
desc = __fbnic_mbx_rd_desc(fbd, FBNIC_IPC_MBX_RX_IDX, head);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1606
dma_sync_single_for_cpu(fbd->dev, rx_mbx->buf_info[head].addr,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1619
dev_warn(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1626
dev_warn(fbd->dev, "Mailbox message length mismatch\n");
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1629
err = fbnic_tlv_msg_parse(fbd, msg, fbnic_fw_tlv_parser);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
163
dma_unmap_single(fbd->dev, mbx->buf_info[desc_idx].addr,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1631
dev_warn(fbd->dev, "Unable to process message: %d\n",
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1638
dev_dbg(fbd->dev, "Parsed msg type %d\n", msg->hdr.type);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1640
fw_wr32(fbd, FBNIC_IPC_MBX(FBNIC_IPC_MBX_RX_IDX, head), 0);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1646
__fbnic_mbx_wr_desc(fbd, FBNIC_IPC_MBX_RX_IDX, tail,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1662
void fbnic_mbx_poll(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1664
fbnic_mbx_event(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1666
fbnic_mbx_process_tx_msgs(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1667
fbnic_mbx_process_rx_msgs(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1670
int fbnic_mbx_poll_tx_ready(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1672
struct fbnic_fw_mbx *tx_mbx = &fbd->mbx[FBNIC_IPC_MBX_TX_IDX];
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1684
fbnic_mbx_reset_desc_ring(fbd, FBNIC_IPC_MBX_TX_IDX);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1687
if (!fbnic_fw_present(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1691
} while (!fbnic_mbx_event(fbd));
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1695
err = fbnic_mbx_init_desc_ring(fbd, i);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
170
static void fbnic_mbx_clean_desc_ring(struct fbnic_dev *fbd, int mbx_idx)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1704
err = fbnic_fw_xmit_simple_msg(fbd, FBNIC_TLV_MSG_ID_HOST_CAP_REQ);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1711
for (fbd->fw_cap.running.mgmt.version = 1;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1712
fbd->fw_cap.running.mgmt.version < MIN_FW_VER_CODE;) {
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1719
fbnic_mbx_poll(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1729
fbnic_mbx_clean(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1739
static void fbnic_mbx_evict_all_cmpl(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
174
fbnic_mbx_reset_desc_ring(fbd, mbx_idx);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1744
struct fbnic_fw_completion *cmpl_data = fbd->cmpl_data[i];
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1750
memset(fbd->cmpl_data, 0, sizeof(fbd->cmpl_data));
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1753
void fbnic_mbx_flush_tx(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1760
tx_mbx = &fbd->mbx[FBNIC_IPC_MBX_TX_IDX];
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1762
spin_lock_irq(&fbd->fw_tx_lock);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
177
fbnic_mbx_unmap_and_free_msg(fbd, mbx_idx, i);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1771
fbnic_mbx_evict_all_cmpl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1773
spin_unlock_irq(&fbd->fw_tx_lock);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1786
fbnic_mbx_process_tx_msgs(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1790
int fbnic_fw_xmit_rpc_macda_sync(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1798
if (!fbd->mbx[FBNIC_IPC_MBX_TX_IDX].ready)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
180
void fbnic_mbx_clean(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1812
i >= fbd->mac_addr_boundary; i--) {
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1813
struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[i];
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1847
i < fbd->mac_addr_boundary; i++) {
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1848
struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[i];
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
185
fbnic_mbx_clean_desc_ring(fbd, i);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1882
err = fbnic_mbx_map_tlv_msg(fbd, msg);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1893
void fbnic_get_fw_ver_commit_str(struct fbnic_dev *fbd, char *fw_version,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
1896
struct fbnic_fw_ver *mgmt = &fbd->fw_cap.running.mgmt;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
191
static int fbnic_mbx_alloc_rx_msgs(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
193
struct fbnic_fw_mbx *rx_mbx = &fbd->mbx[FBNIC_IPC_MBX_RX_IDX];
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
214
err = fbnic_mbx_map_msg(fbd, FBNIC_IPC_MBX_RX_IDX, msg,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
223
static int fbnic_mbx_map_tlv_msg(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
229
spin_lock_irqsave(&fbd->fw_tx_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
231
err = fbnic_mbx_map_msg(fbd, FBNIC_IPC_MBX_TX_IDX, msg,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
234
spin_unlock_irqrestore(&fbd->fw_tx_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
239
static int fbnic_mbx_set_cmpl_slot(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
24
fw_wr32(fbd, desc_offset + 1, upper_32_bits(desc));
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
242
struct fbnic_fw_mbx *tx_mbx = &fbd->mbx[FBNIC_IPC_MBX_TX_IDX];
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
25
fw_wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
250
if (!fbd->cmpl_data[i])
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
252
else if (fbd->cmpl_data[i]->msg_type == cmpl_data->msg_type)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
259
fbd->cmpl_data[free] = cmpl_data;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
26
fw_wr32(fbd, desc_offset, lower_32_bits(desc));
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
264
static void fbnic_mbx_clear_cmpl_slot(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
270
if (fbd->cmpl_data[i] == cmpl_data) {
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
271
fbd->cmpl_data[i] = NULL;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
277
static void fbnic_mbx_process_tx_msgs(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
279
struct fbnic_fw_mbx *tx_mbx = &fbd->mbx[FBNIC_IPC_MBX_TX_IDX];
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
284
desc = __fbnic_mbx_rd_desc(fbd, FBNIC_IPC_MBX_TX_IDX, head);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
288
fbnic_mbx_unmap_and_free_msg(fbd, FBNIC_IPC_MBX_TX_IDX, head);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
29
static void __fbnic_mbx_invalidate_desc(struct fbnic_dev *fbd, int mbx_idx,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
298
int fbnic_mbx_set_cmpl(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
304
spin_lock_irqsave(&fbd->fw_tx_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
305
err = fbnic_mbx_set_cmpl_slot(fbd, cmpl_data);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
306
spin_unlock_irqrestore(&fbd->fw_tx_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
311
static int fbnic_mbx_map_req_w_cmpl(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
318
spin_lock_irqsave(&fbd->fw_tx_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
320
err = fbnic_mbx_set_cmpl_slot(fbd, cmpl_data);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
325
err = fbnic_mbx_map_msg(fbd, FBNIC_IPC_MBX_TX_IDX, msg,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
332
fbnic_mbx_clear_cmpl_slot(fbd, cmpl_data);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
335
spin_unlock_irqrestore(&fbd->fw_tx_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
340
void fbnic_mbx_clear_cmpl(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
345
spin_lock_irqsave(&fbd->fw_tx_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
346
fbnic_mbx_clear_cmpl_slot(fbd, fw_cmpl);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
347
spin_unlock_irqrestore(&fbd->fw_tx_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
360
fbnic_fw_get_cmpl_by_type(struct fbnic_dev *fbd, u32 msg_type)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
366
spin_lock_irqsave(&fbd->fw_tx_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
368
if (fbd->cmpl_data[i] &&
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
369
fbd->cmpl_data[i]->msg_type == msg_type) {
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
370
cmpl_data = fbd->cmpl_data[i];
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
376
spin_unlock_irqrestore(&fbd->fw_tx_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
38
fw_wr32(fbd, desc_offset, desc);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
39
fw_wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
399
static int fbnic_fw_xmit_simple_msg(struct fbnic_dev *fbd, u32 msg_type)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
40
fw_wr32(fbd, desc_offset + 1, 0);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
404
if (!fbnic_fw_present(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
411
err = fbnic_mbx_map_tlv_msg(fbd, msg);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
418
static int fbnic_mbx_init_desc_ring(struct fbnic_dev *fbd, int mbx_idx)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
420
struct fbnic_fw_mbx *mbx = &fbd->mbx[mbx_idx];
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
427
wr32(fbd, FBNIC_PUL_OB_TLP_HDR_AW_CFG,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
43
u64 __fbnic_mbx_rd_desc(struct fbnic_dev *fbd, int mbx_idx, int desc_idx)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
431
return fbnic_mbx_alloc_rx_msgs(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
434
wr32(fbd, FBNIC_PUL_OB_TLP_HDR_AR_CFG,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
442
static bool fbnic_mbx_event(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
448
if (!(rd32(fbd, FBNIC_INTR_STATUS(0)) & (1u << FBNIC_FW_MSIX_ENTRY)))
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
451
wr32(fbd, FBNIC_INTR_CLEAR(0), 1u << FBNIC_FW_MSIX_ENTRY);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
468
int fbnic_fw_xmit_ownership_msg(struct fbnic_dev *fbd, bool take_ownership)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
474
if (!fbnic_fw_present(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
48
desc = fw_rd32(fbd, desc_offset);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
487
err = fbnic_mbx_map_tlv_msg(fbd, msg);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
49
desc |= (u64)fw_rd32(fbd, desc_offset + 1) << 32;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
494
fbd->last_heartbeat_response = req_time - HZ;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
496
fbd->last_heartbeat_request = req_time;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
501
fbd->prev_firmware_time = 0;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
504
fbd->fw_heartbeat_enabled = take_ownership;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
54
static void fbnic_mbx_reset_desc_ring(struct fbnic_dev *fbd, int mbx_idx)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
572
struct fbnic_dev *fbd = opaque;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
577
fbd->fw_cap.running.mgmt.version = version;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
578
if (!fbd->fw_cap.running.mgmt.version)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
581
if (fbd->fw_cap.running.mgmt.version < MIN_FW_VER_CODE) {
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
585
fbnic_mk_fw_ver_str(fbd->fw_cap.running.mgmt.version,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
588
dev_err(fbd->dev, "Device firmware version(%s) is older than minimum required version(%s)\n",
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
593
fbd->mbx[FBNIC_IPC_MBX_TX_IDX].ready = false;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
598
fbd->fw_cap.running.mgmt.commit,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
600
dev_warn(fbd->dev, "Firmware did not send mgmt commit!\n");
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
603
fbd->fw_cap.stored.mgmt.version = version;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
605
fbd->fw_cap.stored.mgmt.commit,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
609
fbd->fw_cap.running.bootloader.version = version;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
611
fbd->fw_cap.running.bootloader.commit,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
615
fbd->fw_cap.stored.bootloader.version = version;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
617
fbd->fw_cap.stored.bootloader.commit,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
621
fbd->fw_cap.stored.undi.version = version;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
623
fbd->fw_cap.stored.undi.commit,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
626
fbd->fw_cap.active_slot =
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
628
fbd->fw_cap.link_speed =
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
63
wr32(fbd, FBNIC_PUL_OB_TLP_HDR_AW_CFG,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
630
fbd->fw_cap.link_fec =
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
641
err = fbnic_fw_parse_bmc_addrs(fbd->fw_cap.bmc_mac_addr,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
649
memset(fbd->fw_cap.bmc_mac_addr, 0,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
650
sizeof(fbd->fw_cap.bmc_mac_addr));
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
653
fbd->fw_cap.bmc_present = bmc_present;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
656
fbd->fw_cap.all_multi = all_multi;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
658
fbd->fw_cap.anti_rollback_version =
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
662
fbd->fw_cap.need_bmc_tcam_reinit = true;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
67
wr32(fbd, FBNIC_PUL_OB_TLP_HDR_AR_CFG,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
675
struct fbnic_dev *fbd = (struct fbnic_dev *)opaque;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
678
fbd->last_heartbeat_response = jiffies;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
681
fbd->firmware_time = fta_get_uint(results, FBNIC_FW_OWNERSHIP_TIME);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
694
struct fbnic_dev *fbd = (struct fbnic_dev *)opaque;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
696
fbd->last_heartbeat_response = jiffies;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
699
fbd->firmware_time = fta_get_uint(results, FBNIC_FW_HEARTBEAT_UPTIME);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
704
static int fbnic_fw_xmit_heartbeat_message(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
710
if (!fbnic_fw_present(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
717
err = fbnic_mbx_map_tlv_msg(fbd, msg);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
72
wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
721
fbd->last_heartbeat_request = req_time;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
722
fbd->prev_firmware_time = fbd->firmware_time;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
731
static bool fbnic_fw_heartbeat_current(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
733
unsigned long last_response = fbd->last_heartbeat_response;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
734
unsigned long last_request = fbd->last_heartbeat_request;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
739
int fbnic_fw_init_heartbeat(struct fbnic_dev *fbd, bool poll)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
744
if (!fbnic_fw_present(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
750
fbnic_mbx_poll(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
752
if (!fbnic_fw_heartbeat_current(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
756
err = fbnic_fw_xmit_heartbeat_message(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
758
dev_warn(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
767
void fbnic_fw_check_heartbeat(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
769
unsigned long last_request = fbd->last_heartbeat_request;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
779
if (!fbd->fw_heartbeat_enabled)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
78
__fbnic_mbx_invalidate_desc(fbd, mbx_idx, 0, 0);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
783
if (!fbnic_fw_heartbeat_current(fbd) ||
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
784
fbd->firmware_time < fbd->prev_firmware_time) {
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
785
dev_warn(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
787
fbd->fw_heartbeat_enabled = false;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
791
err = fbnic_fw_xmit_heartbeat_message(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
793
dev_warn(fbd->dev, "Failed to send heartbeat message\n");
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
807
int fbnic_fw_xmit_coredump_info_msg(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
824
err = fbnic_mbx_map_req_w_cmpl(fbd, msg, cmpl_data);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
846
struct fbnic_dev *fbd = opaque;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
852
cmpl_data = fbnic_fw_get_cmpl_by_type(fbd, msg_type);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
86
__fbnic_mbx_invalidate_desc(fbd, mbx_idx, desc_idx,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
888
int fbnic_fw_xmit_coredump_read_msg(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
91
void fbnic_mbx_init(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
913
err = fbnic_mbx_map_req_w_cmpl(fbd, msg, cmpl_data);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
937
struct fbnic_dev *fbd = opaque;
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
945
cmpl_data = fbnic_fw_get_cmpl_by_type(fbd, msg_type);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
96
spin_lock_init(&fbd->fw_tx_lock);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
963
dev_err(fbd->dev, "length greater than size of message\n");
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
976
dev_err(fbd->dev, "offset %d out of range\n", offset);
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
980
dev_err(fbd->dev, "length %d out of range for offset %d\n",
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
99
memset(&fbd->fw_cap, 0, sizeof(fbd->fw_cap));
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
100
int fbnic_mbx_set_cmpl(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
102
void fbnic_mbx_clear_cmpl(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
104
void fbnic_mbx_poll(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
105
int fbnic_mbx_poll_tx_ready(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
106
void fbnic_mbx_flush_tx(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
107
int fbnic_fw_xmit_ownership_msg(struct fbnic_dev *fbd, bool take_ownership);
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
108
int fbnic_fw_init_heartbeat(struct fbnic_dev *fbd, bool poll);
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
109
void fbnic_fw_check_heartbeat(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
110
int fbnic_fw_xmit_coredump_info_msg(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
113
int fbnic_fw_xmit_coredump_read_msg(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
116
int fbnic_fw_xmit_fw_start_upgrade(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
119
int fbnic_fw_xmit_fw_write_chunk(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
122
int fbnic_fw_xmit_qsfp_read_msg(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
125
int fbnic_fw_xmit_tsene_read_msg(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
127
int fbnic_fw_xmit_send_logs(struct fbnic_dev *fbd, bool enable,
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
129
int fbnic_fw_xmit_rpc_macda_sync(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
97
u64 __fbnic_mbx_rd_desc(struct fbnic_dev *fbd, int mbx_idx, int desc_idx);
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
98
void fbnic_mbx_init(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
99
void fbnic_mbx_clean(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
11
void fbnic_fw_log_enable(struct fbnic_dev *fbd, bool send_hist)
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
15
if (!fbnic_fw_log_ready(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
18
if (fbd->fw_cap.running.mgmt.version < MIN_FW_VER_CODE_HIST)
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
21
err = fbnic_fw_xmit_send_logs(fbd, true, send_hist);
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
23
dev_warn(fbd->dev, "Unable to enable firmware logs: %d\n", err);
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
26
void fbnic_fw_log_disable(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
30
err = fbnic_fw_xmit_send_logs(fbd, false, false);
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
32
dev_warn(fbd->dev, "Unable to disable firmware logs: %d\n",
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
36
int fbnic_fw_log_init(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
38
struct fbnic_fw_log *log = &fbd->fw_log;
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
41
if (WARN_ON_ONCE(fbnic_fw_log_ready(fbd)))
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
48
spin_lock_init(&fbd->fw_log.lock);
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
57
void fbnic_fw_log_free(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
59
struct fbnic_fw_log *log = &fbd->fw_log;
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
61
if (!fbnic_fw_log_ready(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
71
int fbnic_fw_log_write(struct fbnic_dev *fbd, u64 index, u32 timestamp,
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
75
struct fbnic_fw_log *log = &fbd->fw_log;
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
80
if (!fbnic_fw_log_ready(fbd)) {
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.c
81
dev_err(fbd->dev, "Firmware sent log entry without being requested!\n");
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.h
39
void fbnic_fw_log_enable(struct fbnic_dev *fbd, bool send_hist);
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.h
40
void fbnic_fw_log_disable(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.h
41
int fbnic_fw_log_init(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.h
42
void fbnic_fw_log_free(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_fw_log.h
43
int fbnic_fw_log_write(struct fbnic_dev *fbd, u64 index, u32 timestamp,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
100
static void fbnic_get_tmi_stats(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
103
fbnic_hw_stat_rd64(fbd, FBNIC_TMI_DROP_BYTE_L, 1, &tmi->drop.bytes);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
106
static void fbnic_reset_tti_stats(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
109
fbnic_hw_stat_rst32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
112
fbnic_hw_stat_rst64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
117
fbnic_hw_stat_rst32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
120
fbnic_hw_stat_rst64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
125
fbnic_hw_stat_rst32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
128
fbnic_hw_stat_rst64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
134
static void fbnic_get_tti_stats32(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
137
fbnic_hw_stat_rd32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
141
fbnic_hw_stat_rd32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
145
fbnic_hw_stat_rd32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
150
static void fbnic_get_tti_stats(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
153
fbnic_hw_stat_rd64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
158
fbnic_hw_stat_rd64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
16
stat->u.old_reg_value_32 = rd32(fbd, reg);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
163
fbnic_hw_stat_rd64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
169
static void fbnic_reset_rpc_stats(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
172
fbnic_hw_stat_rst32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
175
fbnic_hw_stat_rst32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
178
fbnic_hw_stat_rst32(fbd, FBNIC_RPC_CNTR_IPV4_FRAG, &rpc->ipv4_frag);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
179
fbnic_hw_stat_rst32(fbd, FBNIC_RPC_CNTR_IPV6_FRAG, &rpc->ipv6_frag);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
180
fbnic_hw_stat_rst32(fbd, FBNIC_RPC_CNTR_IPV4_ESP, &rpc->ipv4_esp);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
181
fbnic_hw_stat_rst32(fbd, FBNIC_RPC_CNTR_IPV6_ESP, &rpc->ipv6_esp);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
182
fbnic_hw_stat_rst32(fbd, FBNIC_RPC_CNTR_TCP_OPT_ERR, &rpc->tcp_opt_err);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
183
fbnic_hw_stat_rst32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
186
fbnic_hw_stat_rst32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
19
static void fbnic_hw_stat_rd32(struct fbnic_dev *fbd, u32 reg,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
191
static void fbnic_get_rpc_stats32(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
194
fbnic_hw_stat_rd32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
197
fbnic_hw_stat_rd32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
201
fbnic_hw_stat_rd32(fbd, FBNIC_RPC_CNTR_IPV4_FRAG, &rpc->ipv4_frag);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
202
fbnic_hw_stat_rd32(fbd, FBNIC_RPC_CNTR_IPV6_FRAG, &rpc->ipv6_frag);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
204
fbnic_hw_stat_rd32(fbd, FBNIC_RPC_CNTR_IPV4_ESP, &rpc->ipv4_esp);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
205
fbnic_hw_stat_rd32(fbd, FBNIC_RPC_CNTR_IPV6_ESP, &rpc->ipv6_esp);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
207
fbnic_hw_stat_rd32(fbd, FBNIC_RPC_CNTR_TCP_OPT_ERR, &rpc->tcp_opt_err);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
208
fbnic_hw_stat_rd32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
211
fbnic_hw_stat_rd32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
216
static void fbnic_reset_rxb_fifo_stats(struct fbnic_dev *fbd, int i,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
219
fbnic_hw_stat_rst32(fbd, FBNIC_RXB_DROP_FRMS_STS(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
221
fbnic_hw_stat_rst64(fbd, FBNIC_RXB_DROP_BYTES_STS_L(i), 1,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
224
fbnic_hw_stat_rst32(fbd, FBNIC_RXB_TRUN_FRMS_STS(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
226
fbnic_hw_stat_rst64(fbd, FBNIC_RXB_TRUN_BYTES_STS_L(i), 1,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
229
fbnic_hw_stat_rst32(fbd, FBNIC_RXB_TRANS_DROP_STS(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
231
fbnic_hw_stat_rst32(fbd, FBNIC_RXB_TRANS_ECN_STS(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
237
static void fbnic_reset_rxb_enq_stats(struct fbnic_dev *fbd, int i,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
24
new_reg_value = rd32(fbd, reg);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
240
fbnic_hw_stat_rst32(fbd, FBNIC_RXB_DRBO_FRM_CNT_SRC(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
242
fbnic_hw_stat_rst64(fbd, FBNIC_RXB_DRBO_BYTE_CNT_SRC_L(i), 4,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
245
fbnic_hw_stat_rst32(fbd, FBNIC_RXB_INTEGRITY_ERR(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
247
fbnic_hw_stat_rst32(fbd, FBNIC_RXB_MAC_ERR(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
249
fbnic_hw_stat_rst32(fbd, FBNIC_RXB_PARSER_ERR(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
251
fbnic_hw_stat_rst32(fbd, FBNIC_RXB_FRM_ERR(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
255
static void fbnic_reset_rxb_deq_stats(struct fbnic_dev *fbd, int i,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
258
fbnic_hw_stat_rst32(fbd, FBNIC_RXB_INTF_FRM_CNT_DST(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
260
fbnic_hw_stat_rst64(fbd, FBNIC_RXB_INTF_BYTE_CNT_DST_L(i), 4,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
263
fbnic_hw_stat_rst32(fbd, FBNIC_RXB_PBUF_FRM_CNT_DST(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
265
fbnic_hw_stat_rst64(fbd, FBNIC_RXB_PBUF_BYTE_CNT_DST_L(i), 4,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
269
static void fbnic_reset_rxb_stats(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
275
fbnic_reset_rxb_fifo_stats(fbd, i, &rxb->fifo[i]);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
278
fbnic_reset_rxb_enq_stats(fbd, i, &rxb->enq[i]);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
279
fbnic_reset_rxb_deq_stats(fbd, i, &rxb->deq[i]);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
283
static void fbnic_get_rxb_fifo_stats32(struct fbnic_dev *fbd, int i,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
286
fbnic_hw_stat_rd32(fbd, FBNIC_RXB_DROP_FRMS_STS(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
288
fbnic_hw_stat_rd32(fbd, FBNIC_RXB_TRUN_FRMS_STS(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
29
u64 fbnic_stat_rd64(struct fbnic_dev *fbd, u32 reg, u32 offset)
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
291
fbnic_hw_stat_rd32(fbd, FBNIC_RXB_TRANS_DROP_STS(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
293
fbnic_hw_stat_rd32(fbd, FBNIC_RXB_TRANS_ECN_STS(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
296
fifo->level.value = rd32(fbd, FBNIC_RXB_PBUF_FIFO_LEVEL(i));
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
299
static void fbnic_get_rxb_fifo_stats(struct fbnic_dev *fbd, int i,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
302
fbnic_hw_stat_rd64(fbd, FBNIC_RXB_DROP_BYTES_STS_L(i), 1,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
304
fbnic_hw_stat_rd64(fbd, FBNIC_RXB_TRUN_BYTES_STS_L(i), 1,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
307
fbnic_get_rxb_fifo_stats32(fbd, i, fifo);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
310
static void fbnic_get_rxb_enq_stats32(struct fbnic_dev *fbd, int i,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
313
fbnic_hw_stat_rd32(fbd, FBNIC_RXB_DRBO_FRM_CNT_SRC(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
316
fbnic_hw_stat_rd32(fbd, FBNIC_RXB_INTEGRITY_ERR(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
318
fbnic_hw_stat_rd32(fbd, FBNIC_RXB_MAC_ERR(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
320
fbnic_hw_stat_rd32(fbd, FBNIC_RXB_PARSER_ERR(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
322
fbnic_hw_stat_rd32(fbd, FBNIC_RXB_FRM_ERR(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
326
static void fbnic_get_rxb_enq_stats(struct fbnic_dev *fbd, int i,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
329
fbnic_hw_stat_rd64(fbd, FBNIC_RXB_DRBO_BYTE_CNT_SRC_L(i), 4,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
33
prev_upper = rd32(fbd, reg + offset);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
332
fbnic_get_rxb_enq_stats32(fbd, i, enq);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
335
static void fbnic_get_rxb_deq_stats32(struct fbnic_dev *fbd, int i,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
338
fbnic_hw_stat_rd32(fbd, FBNIC_RXB_INTF_FRM_CNT_DST(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
34
lower = rd32(fbd, reg);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
340
fbnic_hw_stat_rd32(fbd, FBNIC_RXB_PBUF_FRM_CNT_DST(i),
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
344
static void fbnic_get_rxb_deq_stats(struct fbnic_dev *fbd, int i,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
347
fbnic_hw_stat_rd64(fbd, FBNIC_RXB_INTF_BYTE_CNT_DST_L(i), 4,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
349
fbnic_hw_stat_rd64(fbd, FBNIC_RXB_PBUF_BYTE_CNT_DST_L(i), 4,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
35
upper = rd32(fbd, reg + offset);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
352
fbnic_get_rxb_deq_stats32(fbd, i, deq);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
355
static void fbnic_get_rxb_stats32(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
361
fbnic_get_rxb_fifo_stats32(fbd, i, &rxb->fifo[i]);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
364
fbnic_get_rxb_enq_stats32(fbd, i, &rxb->enq[i]);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
365
fbnic_get_rxb_deq_stats32(fbd, i, &rxb->deq[i]);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
369
static void fbnic_get_rxb_stats(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
375
fbnic_get_rxb_fifo_stats(fbd, i, &rxb->fifo[i]);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
378
fbnic_get_rxb_enq_stats(fbd, i, &rxb->enq[i]);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
379
fbnic_get_rxb_deq_stats(fbd, i, &rxb->deq[i]);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
383
static void fbnic_reset_hw_rxq_stats(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
388
for (i = 0; i < fbd->max_num_queues; i++, hw_q++) {
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
391
fbnic_hw_stat_rst32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
394
fbnic_hw_stat_rst32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
397
fbnic_hw_stat_rst32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
403
static void fbnic_get_hw_rxq_stats32(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
408
for (i = 0; i < fbd->max_num_queues; i++, hw_q++) {
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
411
fbnic_hw_stat_rd32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
414
fbnic_hw_stat_rd32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
417
fbnic_hw_stat_rd32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
42
dev_warn_once(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
423
void fbnic_get_hw_q_stats(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
426
spin_lock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
427
fbnic_get_hw_rxq_stats32(fbd, hw_q);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
428
spin_unlock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
431
static void fbnic_reset_pcie_stats_asic(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
434
fbnic_hw_stat_rst64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
438
fbnic_hw_stat_rst64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
442
fbnic_hw_stat_rst64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
446
fbnic_hw_stat_rst64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
450
fbnic_hw_stat_rst64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
454
fbnic_hw_stat_rst64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
459
fbnic_hw_stat_rst64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
463
fbnic_hw_stat_rst64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
467
fbnic_hw_stat_rst64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
473
static void fbnic_get_pcie_stats_asic64(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
476
fbnic_hw_stat_rd64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
480
fbnic_hw_stat_rd64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
484
fbnic_hw_stat_rd64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
488
fbnic_hw_stat_rd64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
492
fbnic_hw_stat_rd64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
496
fbnic_hw_stat_rd64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
501
fbnic_hw_stat_rd64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
505
fbnic_hw_stat_rd64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
509
fbnic_hw_stat_rd64(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
515
static void fbnic_reset_phy_stats(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
518
const struct fbnic_mac *mac = fbd->mac;
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
520
mac->get_fec_stats(fbd, true, &phy_stats->fec);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
521
mac->get_pcs_stats(fbd, true, &phy_stats->pcs);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
524
static void fbnic_get_phy_stats32(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
527
const struct fbnic_mac *mac = fbd->mac;
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
529
mac->get_fec_stats(fbd, false, &phy_stats->fec);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
530
mac->get_pcs_stats(fbd, false, &phy_stats->pcs);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
533
static void fbnic_reset_hw_mac_stats(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
536
const struct fbnic_mac *mac = fbd->mac;
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
538
mac->get_eth_mac_stats(fbd, true, &mac_stats->eth_mac);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
539
mac->get_pause_stats(fbd, true, &mac_stats->pause);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
540
mac->get_eth_ctrl_stats(fbd, true, &mac_stats->eth_ctrl);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
541
mac->get_rmon_stats(fbd, true, &mac_stats->rmon);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
544
void fbnic_reset_hw_stats(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
546
spin_lock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
547
fbnic_reset_phy_stats(fbd, &fbd->hw_stats.phy);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
548
fbnic_reset_tmi_stats(fbd, &fbd->hw_stats.tmi);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
549
fbnic_reset_tti_stats(fbd, &fbd->hw_stats.tti);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
55
static void fbnic_hw_stat_rst64(struct fbnic_dev *fbd, u32 reg, s32 offset,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
550
fbnic_reset_rpc_stats(fbd, &fbd->hw_stats.rpc);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
551
fbnic_reset_rxb_stats(fbd, &fbd->hw_stats.rxb);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
552
fbnic_reset_hw_rxq_stats(fbd, fbd->hw_stats.hw_q);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
553
fbnic_reset_pcie_stats_asic(fbd, &fbd->hw_stats.pcie);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
554
spin_unlock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
562
if (fbd->netdev)
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
564
fbnic_reset_hw_mac_stats(fbd, &fbd->hw_stats.mac);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
567
void fbnic_init_hw_stats(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
569
spin_lock_init(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
571
fbnic_reset_hw_stats(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
574
static void __fbnic_get_hw_stats32(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
576
fbnic_get_phy_stats32(fbd, &fbd->hw_stats.phy);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
577
fbnic_get_tmi_stats32(fbd, &fbd->hw_stats.tmi);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
578
fbnic_get_tti_stats32(fbd, &fbd->hw_stats.tti);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
579
fbnic_get_rpc_stats32(fbd, &fbd->hw_stats.rpc);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
580
fbnic_get_rxb_stats32(fbd, &fbd->hw_stats.rxb);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
581
fbnic_get_hw_rxq_stats32(fbd, fbd->hw_stats.hw_q);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
584
void fbnic_get_hw_stats32(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
586
spin_lock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
587
__fbnic_get_hw_stats32(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
588
spin_unlock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
591
void fbnic_get_hw_stats(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
593
spin_lock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
594
__fbnic_get_hw_stats32(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
596
fbnic_get_tmi_stats(fbd, &fbd->hw_stats.tmi);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
597
fbnic_get_tti_stats(fbd, &fbd->hw_stats.tti);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
598
fbnic_get_rxb_stats(fbd, &fbd->hw_stats.rxb);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
599
fbnic_get_pcie_stats_asic64(fbd, &fbd->hw_stats.pcie);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
600
spin_unlock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
62
stat->u.old_reg_value_64 = fbnic_stat_rd64(fbd, reg, offset);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
65
static void fbnic_hw_stat_rd64(struct fbnic_dev *fbd, u32 reg, s32 offset,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
70
new_reg_value = fbnic_stat_rd64(fbd, reg, offset);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
75
static void fbnic_reset_tmi_stats(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
78
fbnic_hw_stat_rst32(fbd, FBNIC_TMI_DROP_PKTS, &tmi->drop.frames);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
79
fbnic_hw_stat_rst64(fbd, FBNIC_TMI_DROP_BYTE_L, 1, &tmi->drop.bytes);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
8
static void fbnic_hw_stat_rst32(struct fbnic_dev *fbd, u32 reg,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
81
fbnic_hw_stat_rst32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
84
fbnic_hw_stat_rst32(fbd, FBNIC_TMI_GOOD_PTP_TS, &tmi->ptp_good_ts);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
85
fbnic_hw_stat_rst32(fbd, FBNIC_TMI_BAD_PTP_TS, &tmi->ptp_bad_ts);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
88
static void fbnic_get_tmi_stats32(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
91
fbnic_hw_stat_rd32(fbd, FBNIC_TMI_DROP_PKTS, &tmi->drop.frames);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
93
fbnic_hw_stat_rd32(fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
96
fbnic_hw_stat_rd32(fbd, FBNIC_TMI_GOOD_PTP_TS, &tmi->ptp_good_ts);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.c
97
fbnic_hw_stat_rd32(fbd, FBNIC_TMI_BAD_PTP_TS, &tmi->ptp_bad_ts);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.h
154
u64 fbnic_stat_rd64(struct fbnic_dev *fbd, u32 reg, u32 offset);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.h
156
void fbnic_reset_hw_stats(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.h
157
void fbnic_init_hw_stats(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.h
158
void fbnic_get_hw_q_stats(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.h
160
void fbnic_get_hw_stats32(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_hw_stats.h
161
void fbnic_get_hw_stats(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
34
struct fbnic_dev *fbd = dev_get_drvdata(dev);
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
35
const struct fbnic_mac *mac = fbd->mac;
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
39
return id < 0 ? id : mac->get_sensor(fbd, id, val);
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
58
void fbnic_hwmon_register(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
63
fbd->hwmon = hwmon_device_register_with_info(fbd->dev, "fbnic",
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
64
fbd, &fbnic_chip_info,
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
66
if (IS_ERR(fbd->hwmon)) {
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
67
dev_notice(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
69
fbd->hwmon);
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
70
fbd->hwmon = NULL;
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
74
void fbnic_hwmon_unregister(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
76
if (!IS_REACHABLE(CONFIG_HWMON) || !fbd->hwmon)
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
79
hwmon_device_unregister(fbd->hwmon);
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
80
fbd->hwmon = NULL;
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
108
void fbnic_fw_free_mbx(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
111
if (!fbd->fw_msix_vector)
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
114
fbnic_fw_disable_mbx(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
117
free_irq(fbd->fw_msix_vector, fbd);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
118
fbd->fw_msix_vector = 0;
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
123
struct fbnic_dev *fbd = data;
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
126
if (fbd->mac->get_link_event(fbd) == FBNIC_LINK_EVENT_NONE) {
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
127
fbnic_wr32(fbd, FBNIC_INTR_MASK_CLEAR(0),
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
13
struct fbnic_dev *fbd = (struct fbnic_dev *)data;
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
132
fbn = netdev_priv(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
135
if (!fbd->mac->get_link(fbd, fbn->aui, fbn->fec))
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
15
fbnic_mbx_poll(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
150
int fbnic_mac_request_irq(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
152
struct pci_dev *pdev = to_pci_dev(fbd->dev);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
155
WARN_ON(fbd->mac_msix_vector);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
165
fbd->netdev->name, fbd);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
17
fbnic_wr32(fbd, FBNIC_INTR_MASK_CLEAR(0), 1u << FBNIC_FW_MSIX_ENTRY);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
170
fbnic_wr32(fbd, FBNIC_INTR_MSIX_CTRL(FBNIC_INTR_MSIX_CTRL_PCS_IDX),
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
173
fbd->mac_msix_vector = vector;
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
185
void fbnic_mac_free_irq(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
188
if (!fbd->mac_msix_vector)
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
192
fbnic_wr32(fbd, FBNIC_INTR_MSIX_CTRL(FBNIC_INTR_MSIX_CTRL_PCS_IDX),
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
194
fbnic_wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
197
synchronize_irq(fbd->mac_msix_vector);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
200
fbnic_wr32(fbd, FBNIC_INTR_MASK_SET(0), 1u << FBNIC_PCS_MSIX_ENTRY);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
203
free_irq(fbd->mac_msix_vector, fbd);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
204
fbd->mac_msix_vector = 0;
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
207
void fbnic_synchronize_irq(struct fbnic_dev *fbd, int nr)
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
209
struct pci_dev *pdev = to_pci_dev(fbd->dev);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
218
int fbnic_request_irq(struct fbnic_dev *fbd, int nr, irq_handler_t handler,
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
22
static int __fbnic_fw_enable_mbx(struct fbnic_dev *fbd, int vector)
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
221
struct pci_dev *pdev = to_pci_dev(fbd->dev);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
230
void fbnic_free_irq(struct fbnic_dev *fbd, int nr, void *data)
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
232
struct pci_dev *pdev = to_pci_dev(fbd->dev);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
241
void fbnic_napi_name_irqs(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
245
for (i = 0; i < ARRAY_SIZE(fbd->napi_irq); i++)
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
246
snprintf(fbd->napi_irq[i].name,
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
247
sizeof(fbd->napi_irq[i].name),
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
248
"%s-TxRx-%u", fbd->netdev->name, i);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
251
int fbnic_napi_request_irq(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
254
struct fbnic_net *fbn = netdev_priv(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
258
if (!fbd->napi_irq[i].users) {
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
259
err = fbnic_request_irq(fbd, nv->v_idx,
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
261
fbd->napi_irq[i].name,
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
267
fbd->napi_irq[i].users++;
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
27
fbnic_mbx_init(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
271
void fbnic_napi_free_irq(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
274
struct fbnic_net *fbn = netdev_priv(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
277
if (--fbd->napi_irq[i].users)
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
28
err = fbnic_mbx_poll_tx_ready(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
280
fbnic_free_irq(fbd, nv->v_idx, &fbn->napi[i]);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
283
void fbnic_free_irqs(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
285
struct pci_dev *pdev = to_pci_dev(fbd->dev);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
287
fbd->num_irqs = 0;
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
292
int fbnic_alloc_irqs(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
295
struct pci_dev *pdev = to_pci_dev(fbd->dev);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
30
dev_warn(fbd->dev, "FW mailbox did not enter ready state\n");
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
302
dev_err(fbd->dev, "Failed to allocate MSI-X entries\n");
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
307
dev_warn(fbd->dev, "Allocated %d IRQs, expected %d\n",
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
310
fbd->num_irqs = num_irqs;
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
36
fbnic_wr32(fbd, FBNIC_INTR_MASK_CLEAR(0), 1u << FBNIC_FW_MSIX_ENTRY);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
50
int fbnic_fw_request_mbx(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
52
struct pci_dev *pdev = to_pci_dev(fbd->dev);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
55
WARN_ON(fbd->fw_msix_vector);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
64
dev_name(fbd->dev), fbd);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
69
err = __fbnic_fw_enable_mbx(fbd, vector);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
71
free_irq(vector, fbd);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
73
fbd->fw_msix_vector = vector;
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
85
static void fbnic_fw_disable_mbx(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
88
disable_irq(fbd->fw_msix_vector);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
91
fbnic_wr32(fbd, FBNIC_INTR_MASK_SET(0), 1u << FBNIC_FW_MSIX_ENTRY);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
96
fbnic_mbx_flush_tx(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_irq.c
97
fbnic_mbx_clean(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
104
wr32(fbd, FBNIC_QM_TQS_EDT_TS_RANGE, INT_MAX);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
11
static void fbnic_init_readrq(struct fbnic_dev *fbd, unsigned int offset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
111
wr32(fbd, FBNIC_QM_TQS_MTU_CTL0, FBNIC_MAX_JUMBO_FRAME_SIZE + 1);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
112
wr32(fbd, FBNIC_QM_TQS_MTU_CTL1,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
122
wr32(fbd, FBNIC_QM_TCQ_CTL0,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
131
wr32(fbd, FBNIC_QM_RCQ_CTL0,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
138
wr32(fbd, FBNIC_FAB_AXI4_AR_SPACER_2_CFG,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
14
u32 val = rd32(fbd, offset);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
178
static void fbnic_mac_init_rxb(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
183
rx_enable = !!(rd32(fbd, FBNIC_RPC_RMI_CONFIG) &
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
197
rd32(fbd, FBNIC_RXB_PBUF_CFG(i)));
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
199
dev_warn(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
205
wr32(fbd, FBNIC_RXB_CT_SIZE(i),
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
213
wr32(fbd, FBNIC_RXB_PBUF_CFG(i),
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
221
wr32(fbd, FBNIC_RXB_PBUF_CREDIT(i),
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
230
wr32(fbd, FBNIC_RXB_PAUSE_THLD(i),
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
237
wr32(fbd, FBNIC_RXB_DROP_THLD(i),
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
24
wr32(fbd, offset, val);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
249
wr32(fbd, FBNIC_RXB_ECN_THLD(i),
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
264
wr32(fbd, FBNIC_RXB_PAUSE_DROP_CTRL,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
27
static void fbnic_init_mps(struct fbnic_dev *fbd, unsigned int offset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
271
wr32(fbd, FBNIC_RXB_INTF_CREDIT,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
284
wr32(fbd, FBNIC_RXB_CLDR_PRIO_CFG(i), calendar_val);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
294
wr32(fbd, FBNIC_RXB_DWRR_RDE_WEIGHT0,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
297
wr32(fbd, FBNIC_RXB_DWRR_RDE_WEIGHT0_EXT,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
299
wr32(fbd, FBNIC_RXB_DWRR_RDE_WEIGHT1,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
30
u32 val = rd32(fbd, offset);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
301
wr32(fbd, FBNIC_RXB_DWRR_RDE_WEIGHT1_EXT,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
305
wr32(fbd, FBNIC_RXB_ENDIAN_FCS, 0x0aaaaaa0);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
308
static void fbnic_mac_init_txb(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
312
wr32(fbd, FBNIC_TCE_TXB_CTRL, 0);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
315
wr32(fbd, FBNIC_QM_TQS_CTL1,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
320
wr32(fbd, FBNIC_TCE_TXB_TEI_Q0_CTRL, 0);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
321
wr32(fbd, FBNIC_TCE_TXB_TEI_Q1_CTRL, 0);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
322
wr32(fbd, FBNIC_TCE_TXB_MC_Q_CTRL,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
325
wr32(fbd, FBNIC_TCE_TXB_RX_TEI_Q_CTRL, 0);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
326
wr32(fbd, FBNIC_TCE_TXB_TX_BMC_Q_CTRL,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
329
wr32(fbd, FBNIC_TCE_TXB_RX_BMC_Q_CTRL,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
333
wr32(fbd, FBNIC_TCE_LSO_CTRL,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
341
wr32(fbd, FBNIC_TCE_CSO_CTRL, 0);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
343
wr32(fbd, FBNIC_TCE_BMC_MAX_PKTSZ,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
348
wr32(fbd, FBNIC_TCE_MC_MAX_PKTSZ,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
359
wr32(fbd, FBNIC_TCE_TXB_CLDR_SLOT_CFG(i), calendar_val);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
363
wr32(fbd, FBNIC_TCE_TXB_ENQ_WRR_CTRL,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
366
wr32(fbd, FBNIC_TCE_TXB_TEI_DWRR_CTRL, 0);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
367
wr32(fbd, FBNIC_TCE_TXB_TEI_DWRR_CTRL_EXT, 0);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
368
wr32(fbd, FBNIC_TCE_TXB_BMC_DWRR_CTRL,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
371
wr32(fbd, FBNIC_TCE_TXB_BMC_DWRR_CTRL_EXT, 0);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
372
wr32(fbd, FBNIC_TCE_TXB_NTWRK_DWRR_CTRL,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
375
wr32(fbd, FBNIC_TCE_TXB_NTWRK_DWRR_CTRL_EXT,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
379
wr32(fbd, FBNIC_TCE_SOP_PROT_CTRL,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
38
wr32(fbd, offset, val);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
393
wr32(fbd, FBNIC_TMI_SOP_PROT_CTRL, 8);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
395
wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
396
wr32(fbd, FBNIC_TCE_TXB_CTRL, FBNIC_TCE_TXB_CTRL_TCAM_ENABLE |
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
400
static void fbnic_mac_init_regs(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
402
fbnic_mac_init_axi(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
403
fbnic_mac_init_qm(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
404
fbnic_mac_init_rxb(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
405
fbnic_mac_init_txb(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
408
static void __fbnic_mac_stat_rd64(struct fbnic_dev *fbd, bool reset, u32 reg,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
41
static void fbnic_mac_init_axi(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
413
new_reg_value = fbnic_stat_rd64(fbd, reg, 1);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
420
#define fbnic_mac_stat_rd64(fbd, reset, __stat, __CSR) \
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
421
__fbnic_mac_stat_rd64(fbd, reset, FBNIC_##__CSR##_L, &(__stat))
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
423
static void fbnic_mac_tx_pause_config(struct fbnic_dev *fbd, bool tx_pause)
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
428
rxb_pause_ctrl = rd32(fbd, FBNIC_RXB_PAUSE_DROP_CTRL);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
434
wr32(fbd, FBNIC_RXB_PAUSE_DROP_CTRL, rxb_pause_ctrl);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
437
static int fbnic_mac_get_link_event(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
439
u32 intr_mask = rd32(fbd, FBNIC_SIG_PCS_INTR_STS);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
448
static u32 __fbnic_mac_cmd_config_asic(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
454
struct fbnic_net *fbn = netdev_priv(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
469
static bool fbnic_mac_get_link_status(struct fbnic_dev *fbd, u8 aui, u8 fec)
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
473
pcs_status = rd32(fbd, FBNIC_SIG_PCS_OUT0);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
515
rd32(fbd, FBNIC_SIG_PCS_OUT1));
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
52
readrq = ilog2(fbd->readrq) - 6;
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
523
static bool fbnic_pmd_update_state(struct fbnic_dev *fbd, bool signal_detect)
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
540
fbd->pmd_state = FBNIC_PMD_INITIALIZE;
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
544
switch (fbd->pmd_state) {
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
546
return time_before(fbd->end_of_pmd_training, jiffies);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
552
fbd->end_of_pmd_training = jiffies + 4 * HZ;
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
557
fbd->pmd_state = FBNIC_PMD_TRAINING;
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
562
static bool fbnic_mac_get_link(struct fbnic_dev *fbd, u8 aui, u8 fec)
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
569
wr32(fbd, FBNIC_SIG_PCS_OUT0, FBNIC_SIG_PCS_OUT0_LINK |
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
57
mps = ilog2(fbd->mps) - 6;
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
572
wr32(fbd, FBNIC_SIG_PCS_OUT1, FBNIC_SIG_PCS_OUT1_FCFEC_LOCK);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
573
wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
576
wr32(fbd, FBNIC_SIG_PCS_INTR_STS,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
579
link = fbnic_mac_get_link_status(fbd, aui, fec);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
580
link = fbnic_pmd_update_state(fbd, link);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
583
wr32(fbd, FBNIC_SIG_PCS_INTR_MASK,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
585
wr32(fbd, FBNIC_INTR_MASK_CLEAR(0), 1u << FBNIC_PCS_MSIX_ENTRY);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
590
void fbnic_mac_get_fw_settings(struct fbnic_dev *fbd, u8 *aui, u8 *fec)
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
593
switch (fbd->fw_cap.link_speed) {
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
614
switch (fbd->fw_cap.link_fec) {
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
628
static void fbnic_mac_prepare(struct fbnic_dev *fbd, u8 aui, u8 fec)
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
631
wr32(fbd, FBNIC_SIG_PCS_INTR_MASK, ~0);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
632
wr32(fbd, FBNIC_SIG_PCS_INTR_STS, ~0);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
635
if (!fbnic_mac_get_link_status(fbd, aui, fec))
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
636
fbd->pmd_state = FBNIC_PMD_INITIALIZE;
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
639
static void fbnic_mac_link_down_asic(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
64
fbnic_init_readrq(fbd, FBNIC_QM_TNI_TDF_CTL, cls, readrq);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
643
cmd_cfg = __fbnic_mac_cmd_config_asic(fbd, false, false);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
644
mac_ctrl = rd32(fbd, FBNIC_SIG_MAC_IN0);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
65
fbnic_init_mps(fbd, FBNIC_QM_TNI_TCM_CTL, cls, mps);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
651
wr32(fbd, FBNIC_SIG_MAC_IN0, mac_ctrl);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
652
wr32(fbd, FBNIC_MAC_COMMAND_CONFIG, cmd_cfg);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
655
static void fbnic_mac_link_up_asic(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
660
fbnic_mac_tx_pause_config(fbd, tx_pause);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
662
cmd_cfg = __fbnic_mac_cmd_config_asic(fbd, tx_pause, rx_pause);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
663
mac_ctrl = rd32(fbd, FBNIC_SIG_MAC_IN0);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
672
wr32(fbd, FBNIC_SIG_MAC_IN0, mac_ctrl);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
673
wr32(fbd, FBNIC_MAC_COMMAND_CONFIG, cmd_cfg);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
677
fbnic_pcs_rsfec_stat_rd32(struct fbnic_dev *fbd, u32 reg, bool reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
689
pcs_rsfec_stat = rd32(fbd, reg) & 0xffff;
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
690
pcs_rsfec_stat |= rd32(fbd, reg + 1) << 16;
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
700
fbnic_mac_get_fec_stats(struct fbnic_dev *fbd, bool reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
703
fbnic_pcs_rsfec_stat_rd32(fbd, FBNIC_RSFEC_CCW_LO(0), reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
705
fbnic_pcs_rsfec_stat_rd32(fbd, FBNIC_RSFEC_NCCW_LO(0), reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
710
fbnic_mac_get_pcs_stats(struct fbnic_dev *fbd, bool reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
716
fbnic_pcs_rsfec_stat_rd32(fbd, FBNIC_PCS_SYMBLERR_LO(i), reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
72
wr32(fbd, FBNIC_QM_TNI_TDE_CTL,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
721
fbnic_mac_get_eth_mac_stats(struct fbnic_dev *fbd, bool reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
724
fbnic_mac_stat_rd64(fbd, reset, mac_stats->OctetsReceivedOK,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
726
fbnic_mac_stat_rd64(fbd, reset, mac_stats->AlignmentErrors,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
728
fbnic_mac_stat_rd64(fbd, reset, mac_stats->FrameTooLongErrors,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
730
fbnic_mac_stat_rd64(fbd, reset, mac_stats->FramesReceivedOK,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
732
fbnic_mac_stat_rd64(fbd, reset, mac_stats->FrameCheckSequenceErrors,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
734
fbnic_mac_stat_rd64(fbd, reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
737
fbnic_mac_stat_rd64(fbd, reset, mac_stats->MulticastFramesReceivedOK,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
739
fbnic_mac_stat_rd64(fbd, reset, mac_stats->BroadcastFramesReceivedOK,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
741
fbnic_mac_stat_rd64(fbd, reset, mac_stats->OctetsTransmittedOK,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
743
fbnic_mac_stat_rd64(fbd, reset, mac_stats->FramesTransmittedOK,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
745
fbnic_mac_stat_rd64(fbd, reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
748
fbnic_mac_stat_rd64(fbd, reset, mac_stats->MulticastFramesXmittedOK,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
750
fbnic_mac_stat_rd64(fbd, reset, mac_stats->BroadcastFramesXmittedOK,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
755
fbnic_mac_get_pause_stats(struct fbnic_dev *fbd, bool reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
758
fbnic_mac_stat_rd64(fbd, reset, pause_stats->tx_pause_frames,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
760
fbnic_mac_stat_rd64(fbd, reset, pause_stats->rx_pause_frames,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
765
fbnic_mac_get_eth_ctrl_stats(struct fbnic_dev *fbd, bool reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
768
fbnic_mac_stat_rd64(fbd, reset, ctrl_stats->MACControlFramesReceived,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
770
fbnic_mac_stat_rd64(fbd, reset, ctrl_stats->MACControlFramesTransmitted,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
775
fbnic_mac_get_rmon_stats(struct fbnic_dev *fbd, bool reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
778
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->undersize_pkts,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
780
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->oversize_pkts,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
782
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->fragments,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
784
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->jabbers,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
787
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist[0],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
789
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist[1],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
79
fbnic_init_readrq(fbd, FBNIC_QM_RNI_RBP_CTL, cls, readrq);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
791
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist[2],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
793
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist[3],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
795
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist[4],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
797
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist[5],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
799
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist[6],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
80
fbnic_init_mps(fbd, FBNIC_QM_RNI_RDE_CTL, cls, mps);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
801
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist[7],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
803
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist[8],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
805
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist[9],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
807
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist[10],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
81
fbnic_init_mps(fbd, FBNIC_QM_RNI_RCM_CTL, cls, mps);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
810
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist_tx[0],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
812
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist_tx[1],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
814
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist_tx[2],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
816
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist_tx[3],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
818
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist_tx[4],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
820
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist_tx[5],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
822
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist_tx[6],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
824
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist_tx[7],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
826
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist_tx[8],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
828
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist_tx[9],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
830
fbnic_mac_stat_rd64(fbd, reset, rmon_stats->hist_tx[10],
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
834
static int fbnic_mac_get_sensor_asic(struct fbnic_dev *fbd, int id,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
84
static void fbnic_mac_init_qm(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
857
err = fbnic_fw_xmit_tsene_read_msg(fbd, fw_cmpl);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
859
dev_err(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
866
dev_err(fbd->dev, "Timed out waiting for TSENE read\n");
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
874
dev_err(fbd->dev, "%s: Firmware returned error %d\n",
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
881
fbnic_mbx_clear_cmpl(fbd, fw_cmpl);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
91
wr32(fbd, FBNIC_QM_TWQ_DEFAULT_META_L,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
913
int fbnic_mac_init(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
915
fbd->mac = &fbnic_mac_asic;
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
917
fbd->mac->init_regs(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
93
wr32(fbd, FBNIC_QM_TWQ_DEFAULT_META_H,
drivers/net/ethernet/meta/fbnic/fbnic_mac.c
97
wr32(fbd, FBNIC_QM_TQS_CTL0,
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
101
void (*get_fec_stats)(struct fbnic_dev *fbd, bool reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
103
void (*get_pcs_stats)(struct fbnic_dev *fbd, bool reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
105
void (*get_eth_mac_stats)(struct fbnic_dev *fbd, bool reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
107
void (*get_pause_stats)(struct fbnic_dev *fbd, bool reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
109
void (*get_eth_ctrl_stats)(struct fbnic_dev *fbd, bool reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
111
void (*get_rmon_stats)(struct fbnic_dev *fbd, bool reset,
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
114
void (*link_down)(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
115
void (*link_up)(struct fbnic_dev *fbd, bool tx_pause, bool rx_pause);
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
117
int (*get_sensor)(struct fbnic_dev *fbd, int id, long *val);
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
120
int fbnic_mac_init(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
121
void fbnic_mac_get_fw_settings(struct fbnic_dev *fbd, u8 *aui, u8 *fec);
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
94
void (*init_regs)(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
96
int (*get_link_event)(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
97
bool (*get_link)(struct fbnic_dev *fbd, u8 aui, u8 fec);
drivers/net/ethernet/meta/fbnic/fbnic_mac.h
99
void (*prepare)(struct fbnic_dev *fbd, u8 aui, u8 fec);
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
101
struct fbnic_dev *fbd = bus->priv;
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
104
return fbnic_mdio_read_pmd(fbd, addr, regnum);
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
107
return fbnic_mdio_read_pcs(fbd, addr, regnum);
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
113
fbnic_mdio_write_pmd(struct fbnic_dev *fbd, int addr, int regnum, u16 val)
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
115
dev_dbg(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
121
fbnic_mdio_write_pcs(struct fbnic_dev *fbd, int addr, int regnum, u16 val)
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
123
dev_dbg(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
139
fbnic_wr32(fbd, FBNIC_PCS_PAGE(addr) + regnum, val);
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
146
struct fbnic_dev *fbd = bus->priv;
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
149
fbnic_mdio_write_pmd(fbd, addr, regnum, val);
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
15
fbnic_mdio_read_pmd(struct fbnic_dev *fbd, int addr, int regnum)
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
152
fbnic_mdio_write_pcs(fbd, addr, regnum, val);
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
166
int fbnic_mdiobus_create(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
171
bus = devm_mdiobus_alloc(fbd->dev);
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
182
bus->parent = fbd->dev;
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
183
bus->priv = fbd;
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
184
snprintf(bus->id, MII_BUS_ID_SIZE, "%s-mii", dev_name(fbd->dev));
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
186
err = devm_mdiobus_register(fbd->dev, bus);
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
188
dev_err(fbd->dev, "Failed to create MDIO bus: %d\n", err);
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
192
fbd->mdio_bus = bus;
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
25
if (fbd->netdev) {
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
26
fbn = netdev_priv(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
46
if (fbd->pmd_state != FBNIC_PMD_SEND_DATA)
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
57
dev_dbg(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
65
fbnic_mdio_read_pcs(struct fbnic_dev *fbd, int addr, int regnum)
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
89
ret = fbnic_rd32(fbd, FBNIC_PCS_PAGE(addr) + (regnum ^ offset));
drivers/net/ethernet/meta/fbnic/fbnic_mdio.c
91
dev_dbg(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
112
avail_addr = __fbnic_uc_sync(fbn->fbd, addr);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
125
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
132
for (i = fbd->mac_addr_boundary, ret = -ENOENT;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
134
struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[i];
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
15
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
153
avail_addr = __fbnic_mc_sync(fbn->fbd, addr);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
166
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
173
for (i = fbd->mac_addr_boundary, ret = -ENOENT;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
175
struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[i];
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
186
void __fbnic_set_rx_mode(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
189
struct net_device *netdev = fbd->netdev;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
194
mac_addr = &fbd->mac_addr[FBNIC_RPC_TCAM_MACDA_HOST_ADDR_IDX];
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
203
mac_addr = &fbd->mac_addr[FBNIC_RPC_TCAM_MACDA_BROADCAST_IDX];
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
227
fbnic_promisc_sync(fbd, uc_promisc, mc_promisc);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
230
fbnic_bmc_rpc_all_multi_config(fbd, mc_promisc);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
233
fbnic_sift_macda(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
236
fbnic_write_rules(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
237
fbnic_write_macda(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
238
fbnic_write_tce_tcam(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
244
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
248
__fbnic_set_rx_mode(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
282
void fbnic_clear_rx_mode(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
284
struct net_device *netdev = fbd->netdev;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
287
for (idx = ARRAY_SIZE(fbd->mac_addr); idx--;) {
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
288
struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[idx];
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
303
fbnic_write_macda(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
31
err = fbnic_fw_xmit_ownership_msg(fbd, true);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
33
dev_warn(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
369
fbnic_rss_reinit(fbn->fbd, fbn);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
370
fbnic_write_rules(fbn->fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
394
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
399
fbnic_get_hw_stats(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
408
spin_lock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
409
tx_dropped += fbd->hw_stats.tmi.drop.frames.value +
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
410
fbd->hw_stats.tti.cm_drop.frames.value +
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
411
fbd->hw_stats.tti.frame_drop.frames.value +
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
412
fbd->hw_stats.tti.tbi_drop.frames.value;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
413
spin_unlock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
43
err = fbnic_fw_init_heartbeat(fbd, false);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
444
spin_lock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
452
rx_missed += fbd->hw_stats.rxb.fifo[i].drop.frames.value;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
454
rx_missed += fbd->hw_stats.rxb.fifo[i].drop.frames.value;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
456
for (i = 0; i < fbd->max_num_queues; i++) {
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
458
rx_over += fbd->hw_stats.hw_q[i].rde_pkt_cq_drop.value;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
459
rx_over += fbd->hw_stats.hw_q[i].rde_pkt_bdq_drop.value;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
462
rx_errors += fbd->hw_stats.hw_q[i].rde_pkt_err.value;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
464
spin_unlock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
47
err = fbnic_mac_request_irq(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
52
fbnic_bmc_rpc_init(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
53
fbnic_rss_reinit(fbd, fbn);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
567
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
609
fbnic_get_hw_q_stats(fbd, fbd->hw_stats.hw_q);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
61
fbnic_fw_xmit_ownership_msg(fbn->fbd, false);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
611
spin_lock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
612
rx->hw_drop_overruns = fbd->hw_stats.hw_q[idx].rde_pkt_cq_drop.value +
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
613
fbd->hw_stats.hw_q[idx].rde_pkt_bdq_drop.value;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
614
rx->hw_drops = fbd->hw_stats.hw_q[idx].rde_pkt_err.value +
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
616
spin_unlock(&fbd->hw_stats.lock);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
695
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
698
max_napis = fbd->num_irqs - FBNIC_NON_NAPI_VECTORS;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
716
void fbnic_netdev_free(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
718
fbnic_phylink_destroy(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
720
free_netdev(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
721
fbd->netdev = NULL;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
733
struct net_device *fbnic_netdev_alloc(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
743
SET_NETDEV_DEV(netdev, fbd->dev);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
744
fbd->netdev = netdev;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
756
fbn->fbd = fbd;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
76
fbnic_napi_name_irqs(fbn->fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
772
if (default_queues > fbd->max_num_queues)
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
773
default_queues = fbd->max_num_queues;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
823
fbnic_netdev_free(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
853
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
854
u64 dsn = fbd->dsn;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
867
dev_err(fbd->dev, "MAC addr %pM invalid\n", addr);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
89
fbnic_mac_free_irq(fbn->fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
90
phylink_suspend(fbn->phylink, fbnic_bmc_present(fbn->fbd));
drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
95
fbnic_fw_xmit_ownership_msg(fbn->fbd, false);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.h
100
void __fbnic_set_rx_mode(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.h
101
void fbnic_clear_rx_mode(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.h
29
struct fbnic_dev *fbd;
drivers/net/ethernet/meta/fbnic/fbnic_netdev.h
85
struct net_device *fbnic_netdev_alloc(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.h
86
void fbnic_netdev_free(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.h
94
int fbnic_ptp_setup(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_netdev.h
95
void fbnic_ptp_destroy(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
102
WRITE_ONCE(fbd->uc_addr0, NULL);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
103
WRITE_ONCE(fbd->uc_addr4, NULL);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
105
dev_err(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
110
if (!fbnic_init_failure(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
111
netif_device_detach(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
118
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
120
schedule_delayed_work(&fbd->service_task, HZ);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
125
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
127
cancel_delayed_work(&fbd->service_task);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
136
fbnic_rss_reinit_hw(fbn->fbd, fbn);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
138
__fbnic_set_rx_mode(fbn->fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
159
fbnic_clear_rx_mode(fbn->fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
160
fbnic_clear_rules(fbn->fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
161
fbnic_rss_disable_hw(fbn->fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
169
fbnic_wait_all_queues_idle(fbn->fbd, false);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
174
static int fbnic_fw_config_after_crash(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
176
if (fbnic_fw_xmit_ownership_msg(fbd, true)) {
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
177
dev_err(fbd->dev, "NIC failed to take ownership\n");
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
182
fbnic_rpc_reset_valid_entries(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
183
__fbnic_set_rx_mode(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
188
static void fbnic_health_check(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
190
struct fbnic_fw_mbx *tx_mbx = &fbd->mbx[FBNIC_IPC_MBX_TX_IDX];
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
193
if (fbd->fw_heartbeat_enabled)
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
203
fbnic_devlink_fw_report(fbd, "Firmware crash detected!");
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
204
fbnic_devlink_otp_check(fbd, "error detected after firmware recovery");
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
206
if (fbnic_fw_config_after_crash(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
207
dev_err(fbd->dev, "Firmware recovery failed after crash\n");
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
212
struct fbnic_dev *fbd = container_of(to_delayed_work(work),
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
214
struct net_device *netdev = fbd->netdev;
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
221
fbnic_get_hw_stats32(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
223
fbnic_fw_check_heartbeat(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
225
fbnic_health_check(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
227
fbnic_bmc_rpc_check(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
229
if (netif_carrier_ok(fbd->netdev)) {
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
230
netdev_lock(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
231
fbnic_napi_depletion_check(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
232
netdev_unlock(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
236
schedule_delayed_work(&fbd->service_task, HZ);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
256
struct fbnic_dev *fbd;
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
286
fbd = fbnic_devlink_alloc(pdev);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
287
if (!fbd) {
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
292
err = fbnic_devlink_health_create(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
297
fbd->max_num_queues = info->max_num_queues;
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
302
INIT_DELAYED_WORK(&fbd->service_task, fbnic_service_task);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
304
err = fbnic_alloc_irqs(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
308
err = fbnic_mac_init(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
314
err = fbnic_fw_log_init(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
316
dev_warn(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
320
err = fbnic_fw_request_mbx(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
332
fbnic_fw_log_enable(fbd, true);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
334
fbnic_devlink_register(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
335
fbnic_devlink_otp_check(fbd, "error detected during probe");
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
336
fbnic_dbg_fbd_init(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
339
fbnic_init_hw_stats(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
341
fbnic_hwmon_register(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
343
if (!fbd->dsn) {
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
348
if (fbnic_mdiobus_create(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
351
netdev = fbnic_netdev_alloc(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
357
err = fbnic_ptp_setup(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
37
u32 fbnic_rd32(struct fbnic_dev *fbd, u32 reg)
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
370
fbnic_ptp_destroy(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
372
fbnic_netdev_free(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
380
fbnic_fw_log_free(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
382
fbnic_free_irqs(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
384
fbnic_devlink_health_destroy(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
386
fbnic_devlink_free(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
39
u32 __iomem *csr = READ_ONCE(fbd->uc_addr0);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
401
struct fbnic_dev *fbd = pci_get_drvdata(pdev);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
403
if (!fbnic_init_failure(fbd)) {
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
404
struct net_device *netdev = fbd->netdev;
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
407
cancel_delayed_work_sync(&fbd->service_task);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
408
fbnic_ptp_destroy(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
409
fbnic_netdev_free(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
412
fbnic_hwmon_unregister(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
413
fbnic_dbg_fbd_exit(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
414
fbnic_devlink_unregister(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
415
fbnic_fw_log_disable(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
416
fbnic_fw_free_mbx(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
417
fbnic_fw_log_free(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
418
fbnic_free_irqs(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
420
fbnic_devlink_health_destroy(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
421
fbnic_devlink_free(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
426
struct fbnic_dev *fbd = dev_get_drvdata(dev);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
427
struct net_device *netdev = fbd->netdev;
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
429
if (fbnic_init_failure(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
444
fbnic_fw_log_disable(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
446
devl_lock(priv_to_devlink(fbd));
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
448
fbnic_fw_free_mbx(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
450
devl_unlock(priv_to_devlink(fbd));
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
453
fbnic_free_irqs(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
456
WRITE_ONCE(fbd->uc_addr0, NULL);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
457
WRITE_ONCE(fbd->uc_addr4, NULL);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
464
struct fbnic_dev *fbd = dev_get_drvdata(dev);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
465
struct net_device *netdev = fbd->netdev;
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
472
fbd->uc_addr0 = iomap_table[0];
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
473
fbd->uc_addr4 = iomap_table[4];
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
476
err = fbnic_alloc_irqs(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
480
fbd->mac->init_regs(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
482
devl_lock(priv_to_devlink(fbd));
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
485
err = fbnic_fw_request_mbx(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
486
devl_unlock(priv_to_devlink(fbd));
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
493
fbnic_fw_log_enable(fbd, list_empty(&fbd->fw_log.entries));
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
496
fbnic_devlink_otp_check(fbd, "error detected after PM resume");
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
499
if (fbnic_init_failure(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
520
fbnic_fw_log_disable(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
522
devl_lock(priv_to_devlink(fbd));
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
523
fbnic_fw_free_mbx(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
524
devl_unlock(priv_to_devlink(fbd));
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
526
fbnic_free_irqs(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
528
WRITE_ONCE(fbd->uc_addr0, NULL);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
529
WRITE_ONCE(fbd->uc_addr4, NULL);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
535
struct fbnic_dev *fbd = dev_get_drvdata(dev);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
536
struct net_device *netdev = fbd->netdev;
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
540
fbnic_reset_hw_stats(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
543
if (fbnic_init_failure(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
56
WRITE_ONCE(fbd->uc_addr0, NULL);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
57
WRITE_ONCE(fbd->uc_addr4, NULL);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
59
dev_err(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
64
if (!fbnic_init_failure(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
65
netif_device_detach(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
70
bool fbnic_fw_present(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
72
return !!READ_ONCE(fbd->uc_addr4);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
75
void fbnic_fw_wr32(struct fbnic_dev *fbd, u32 reg, u32 val)
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
77
u32 __iomem *csr = READ_ONCE(fbd->uc_addr4);
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
83
u32 fbnic_fw_rd32(struct fbnic_dev *fbd, u32 reg)
drivers/net/ethernet/meta/fbnic/fbnic_pci.c
85
u32 __iomem *csr = READ_ONCE(fbd->uc_addr4);
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
121
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
123
fbd->mac->prepare(fbd, fbn->aui, fbn->fec);
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
140
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
143
fbd->mac->get_link(fbd, fbn->aui, fbn->fec);
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
154
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
156
fbd->mac->link_down(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
169
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
174
fbd->mac->link_up(fbd, tx_pause, rx_pause);
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
200
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
205
pcs = xpcs_create_pcs_mdiodev(fbd->mdio_bus, 0);
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
208
dev_err(fbd->dev, "Failed to create PCS device: %d\n", err);
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
230
fbnic_mac_get_fw_settings(fbd, &fbn->aui, &fbn->fec);
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
277
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
279
if (fbd->pmd_state != FBNIC_PMD_TRAINING)
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
285
if (!time_before(READ_ONCE(fbd->end_of_pmd_training), jiffies))
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
292
if (cmpxchg(&fbd->pmd_state, FBNIC_PMD_TRAINING,
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
299
if (!time_before(READ_ONCE(fbd->end_of_pmd_training), jiffies))
drivers/net/ethernet/meta/fbnic/fbnic_phylink.c
306
if (cmpxchg(&fbd->pmd_state, FBNIC_PMD_LINK_READY,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
100
wr32(fbd, FBNIC_RPC_RMI_CONFIG,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1002
static void fbnic_write_ip_dst_entry(struct fbnic_dev *fbd, unsigned int idx,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1012
wr32(fbd, FBNIC_RPC_TCAM_IPDST(idx, i),
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1015
wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1018
wr32(fbd, FBNIC_RPC_TCAM_IPDST(idx, i),
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1022
static void fbnic_write_ip_outer_src_entry(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1033
wr32(fbd, FBNIC_RPC_TCAM_OUTER_IPSRC(idx, i),
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1036
wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1038
wr32(fbd, FBNIC_RPC_TCAM_OUTER_IPSRC(idx, i), FBNIC_RPC_TCAM_VALIDATE);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1041
static void fbnic_write_ip_outer_dst_entry(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1052
wr32(fbd, FBNIC_RPC_TCAM_OUTER_IPDST(idx, i),
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1055
wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1057
wr32(fbd, FBNIC_RPC_TCAM_OUTER_IPDST(idx, i), FBNIC_RPC_TCAM_VALIDATE);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
106
void fbnic_bmc_rpc_all_multi_config(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1060
void fbnic_write_ip_addr(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1064
for (idx = ARRAY_SIZE(fbd->ip_src); idx--;) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1065
struct fbnic_ip_addr *ip_addr = &fbd->ip_src[idx];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1074
fbnic_clear_ip_src_entry(fbd, idx);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1080
fbnic_write_ip_src_entry(fbd, idx, ip_addr);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1086
for (idx = ARRAY_SIZE(fbd->ip_dst); idx--;) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1087
struct fbnic_ip_addr *ip_addr = &fbd->ip_dst[idx];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1093
fbnic_clear_ip_dst_entry(fbd, idx);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1099
fbnic_write_ip_dst_entry(fbd, idx, ip_addr);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1104
for (idx = ARRAY_SIZE(fbd->ipo_src); idx--;) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1105
struct fbnic_ip_addr *ip_addr = &fbd->ipo_src[idx];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1111
fbnic_clear_ip_outer_src_entry(fbd, idx);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1117
fbnic_write_ip_outer_src_entry(fbd, idx, ip_addr);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1122
for (idx = ARRAY_SIZE(fbd->ipo_dst); idx--;) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1123
struct fbnic_ip_addr *ip_addr = &fbd->ipo_dst[idx];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1129
fbnic_clear_ip_outer_dst_entry(fbd, idx);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1135
fbnic_write_ip_outer_dst_entry(fbd, idx, ip_addr);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1141
static void fbnic_clear_valid_act_tcam(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1148
act_tcam = &fbd->act_tcam[i];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1153
fbnic_clear_act_tcam(fbd, i);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1158
void fbnic_clear_rules(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1161
fbnic_clear_macda(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1173
if (fbnic_bmc_present(fbd)) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1179
act_tcam = &fbd->act_tcam[i];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1183
wr32(fbd, FBNIC_RPC_ACT_TBL0(i), dest);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1184
wr32(fbd, FBNIC_RPC_ACT_TBL1(i), 0);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
119
mac_addr = &fbd->mac_addr[fbd->mac_addr_boundary - 1];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1190
fbnic_clear_valid_act_tcam(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1193
static void fbnic_delete_act_tcam(struct fbnic_dev *fbd, unsigned int idx)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1195
fbnic_clear_act_tcam(fbd, idx);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1196
memset(&fbd->act_tcam[idx], 0, sizeof(struct fbnic_act_tcam));
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1199
static void fbnic_update_act_tcam(struct fbnic_dev *fbd, unsigned int idx)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
120
if (fbnic_bmc_present(fbd) && fbd->fw_cap.all_multi) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1201
struct fbnic_act_tcam *act_tcam = &fbd->act_tcam[idx];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1205
wr32(fbd, FBNIC_RPC_ACT_TBL0(idx), act_tcam->dest);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1206
wr32(fbd, FBNIC_RPC_ACT_TBL1(idx), act_tcam->rss_en_mask);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1210
wr32(fbd, FBNIC_RPC_TCAM_ACT(idx, i),
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1216
wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1218
wr32(fbd, FBNIC_RPC_TCAM_ACT(idx, i), FBNIC_RPC_TCAM_VALIDATE);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1222
void fbnic_write_rules(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1228
struct fbnic_act_tcam *act_tcam = &fbd->act_tcam[i];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1235
fbnic_delete_act_tcam(fbd, i);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1237
fbnic_update_act_tcam(fbd, i);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1241
void fbnic_rpc_reset_valid_entries(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1243
fbnic_clear_valid_act_tcam(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
1244
fbnic_clear_valid_macda(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
146
act_tcam = &fbd->act_tcam[FBNIC_RPC_ACT_TBL_BMC_ALL_MULTI_OFFSET];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
151
if (!fbnic_bmc_present(fbd) || !fbd->fw_cap.all_multi || enable_host) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
165
fbd->mac_addr_boundary - 1) |
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
177
void fbnic_bmc_rpc_init(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
185
if (!fbnic_bmc_present(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
190
u8 *bmc_mac = fbd->fw_cap.bmc_mac_addr[j];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
197
mac_addr = __fbnic_mc_sync(fbd, bmc_mac);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
199
mac_addr = &fbd->mac_addr[i++];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
202
netdev_err(fbd->netdev,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
215
mac_addr = &fbd->mac_addr[FBNIC_RPC_TCAM_MACDA_BROADCAST_IDX];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
221
act_tcam = &fbd->act_tcam[FBNIC_RPC_ACT_TBL_BMC_OFFSET];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
241
void fbnic_bmc_rpc_check(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
245
if (fbd->fw_cap.need_bmc_tcam_reinit) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
246
fbnic_bmc_rpc_init(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
247
__fbnic_set_rx_mode(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
248
fbd->fw_cap.need_bmc_tcam_reinit = false;
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
251
if (fbd->fw_cap.need_bmc_macda_sync) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
252
err = fbnic_fw_xmit_rpc_macda_sync(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
254
dev_warn(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
256
fbd->fw_cap.need_bmc_macda_sync = false;
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
272
void fbnic_rss_reinit(struct fbnic_dev *fbd, struct fbnic_net *fbn)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
316
for (i = fbnic_bmc_present(fbd) ? 0 : FBNIC_RSS_EN_NUM_UNICAST;
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
319
struct fbnic_act_tcam *act_tcam = &fbd->act_tcam[idx];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
332
if (i >= FBNIC_RSS_EN_NUM_UNICAST && fbnic_bmc_present(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
359
fbd->mac_addr_boundary);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
375
struct fbnic_mac_addr *__fbnic_uc_sync(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
385
for (i = fbd->mac_addr_boundary - 1;
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
387
struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[i];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
406
struct fbnic_mac_addr *__fbnic_mc_sync(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
416
for (i = fbd->mac_addr_boundary;
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
418
struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[i];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
432
struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[i];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
471
void fbnic_promisc_sync(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
477
mac_addr = &fbd->mac_addr[FBNIC_RPC_TCAM_MACDA_PROMISC_IDX];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
490
(!fbnic_bmc_present(fbd) || !fbd->fw_cap.all_multi)) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
515
void fbnic_sift_macda(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
523
src < fbd->mac_addr_boundary;) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
524
struct fbnic_mac_addr *dest_addr = &fbd->mac_addr[dest];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
529
while (src < fbd->mac_addr_boundary) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
530
struct fbnic_mac_addr *src_addr = &fbd->mac_addr[src++];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
54
void fbnic_rss_disable_hw(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
557
static void fbnic_clear_macda_entry(struct fbnic_dev *fbd, unsigned int idx)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
563
wr32(fbd, FBNIC_RPC_TCAM_MACDA(idx, i), 0);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
566
static void fbnic_clear_macda(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
57
if (!fbnic_bmc_present(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
570
for (idx = ARRAY_SIZE(fbd->mac_addr); idx--;) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
571
struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[idx];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
577
if (fbnic_bmc_present(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
579
dev_warn_once(fbd->dev,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
58
wr32(fbd, FBNIC_RPC_RMI_CONFIG,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
583
fbnic_clear_macda_entry(fbd, idx);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
598
static void fbnic_clear_valid_macda(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
602
for (idx = ARRAY_SIZE(fbd->mac_addr); idx--;) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
603
struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[idx];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
606
fbnic_clear_macda_entry(fbd, idx);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
613
static void fbnic_write_macda_entry(struct fbnic_dev *fbd, unsigned int idx,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
623
wr32(fbd, FBNIC_RPC_TCAM_MACDA(idx, i),
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
627
wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
629
wr32(fbd, FBNIC_RPC_TCAM_MACDA(idx, i), FBNIC_RPC_TCAM_VALIDATE);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
632
void fbnic_write_macda(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
636
for (idx = ARRAY_SIZE(fbd->mac_addr); idx--;) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
637
struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[idx];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
649
fbnic_clear_macda_entry(fbd, idx);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
655
fbnic_write_macda_entry(fbd, idx, mac_addr);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
661
if (fbd->fw_cap.need_bmc_tcam_reinit)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
665
if (updates != 0 && fbnic_bmc_present(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
666
fbd->fw_cap.need_bmc_macda_sync = true;
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
669
static void fbnic_clear_act_tcam(struct fbnic_dev *fbd, unsigned int idx)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
675
wr32(fbd, FBNIC_RPC_TCAM_ACT(idx, i), 0);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
678
static void fbnic_clear_tce_tcam_entry(struct fbnic_dev *fbd, unsigned int idx)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
684
wr32(fbd, FBNIC_TCE_RAM_TCAM(idx, i), 0);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
687
static void fbnic_write_tce_tcam_dest(struct fbnic_dev *fbd, unsigned int idx,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
696
idx2dest_map = rd32(fbd, FBNIC_TCE_TCAM_IDX2DEST_MAP);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
700
wr32(fbd, FBNIC_TCE_TCAM_IDX2DEST_MAP, idx2dest_map);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
703
static void fbnic_write_tce_tcam_entry(struct fbnic_dev *fbd, unsigned int idx,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
713
wr32(fbd, FBNIC_TCE_RAM_TCAM(idx, i),
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
717
wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
719
wr32(fbd, FBNIC_TCE_RAM_TCAM3(idx), FBNIC_TCE_RAM_TCAM3_MCQ_MASK |
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
724
static void __fbnic_write_tce_tcam_rev(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
729
for (mac_idx = ARRAY_SIZE(fbd->mac_addr); mac_idx--;) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
730
struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[mac_idx];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
737
dev_err(fbd->dev, "TCE TCAM overflow\n");
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
742
fbnic_write_tce_tcam_dest(fbd, tcam_idx, mac_addr);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
743
fbnic_write_tce_tcam_entry(fbd, tcam_idx, mac_addr);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
747
fbnic_clear_tce_tcam_entry(fbd, --tcam_idx);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
749
fbd->tce_tcam_last = tcam_idx;
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
752
static void __fbnic_write_tce_tcam(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
757
for (mac_idx = 0; mac_idx < ARRAY_SIZE(fbd->mac_addr); mac_idx++) {
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
758
struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[mac_idx];
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
765
dev_err(fbd->dev, "TCE TCAM overflow\n");
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
769
fbnic_write_tce_tcam_dest(fbd, tcam_idx, mac_addr);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
770
fbnic_write_tce_tcam_entry(fbd, tcam_idx, mac_addr);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
775
fbnic_clear_tce_tcam_entry(fbd, tcam_idx++);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
777
fbd->tce_tcam_last = tcam_idx;
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
780
void fbnic_write_tce_tcam(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
782
if (fbd->tce_tcam_last)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
783
__fbnic_write_tce_tcam_rev(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
785
__fbnic_write_tce_tcam(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
788
struct fbnic_ip_addr *__fbnic_ip4_sync(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
81
void fbnic_rss_reinit_hw(struct fbnic_dev *fbd, struct fbnic_net *fbn)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
855
struct fbnic_ip_addr *__fbnic_ip6_sync(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
86
wr32(fbd, FBNIC_RPC_RSS_TBL(0, i), fbn->indir_tbl[0][i]);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
87
wr32(fbd, FBNIC_RPC_RSS_TBL(1, i), fbn->indir_tbl[1][i]);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
91
wr32(fbd, FBNIC_RPC_RSS_KEY(i), fbn->rss_key[i]);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
94
wr32(fbd, FBNIC_RPC_ACT_TBL0_DEFAULT, FBNIC_RPC_ACT_TBL0_DROP);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
944
static void fbnic_clear_ip_src_entry(struct fbnic_dev *fbd, unsigned int idx)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
95
wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
950
wr32(fbd, FBNIC_RPC_TCAM_IPSRC(idx, i), 0);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
953
static void fbnic_clear_ip_dst_entry(struct fbnic_dev *fbd, unsigned int idx)
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
959
wr32(fbd, FBNIC_RPC_TCAM_IPDST(idx, i), 0);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
962
static void fbnic_clear_ip_outer_src_entry(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
969
wr32(fbd, FBNIC_RPC_TCAM_OUTER_IPSRC(idx, i), 0);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
97
wr32(fbd, FBNIC_RPC_ACT_TBL1_DEFAULT, 0);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
972
static void fbnic_clear_ip_outer_dst_entry(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
979
wr32(fbd, FBNIC_RPC_TCAM_OUTER_IPDST(idx, i), 0);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
982
static void fbnic_write_ip_src_entry(struct fbnic_dev *fbd, unsigned int idx,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
992
wr32(fbd, FBNIC_RPC_TCAM_IPSRC(idx, i),
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
995
wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.c
998
wr32(fbd, FBNIC_RPC_TCAM_IPSRC(idx, i),
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
185
void fbnic_bmc_rpc_init(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
186
void fbnic_bmc_rpc_all_multi_config(struct fbnic_dev *fbd, bool enable_host);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
187
void fbnic_bmc_rpc_check(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
192
void fbnic_rss_disable_hw(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
193
void fbnic_rss_reinit_hw(struct fbnic_dev *fbd, struct fbnic_net *fbn);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
194
void fbnic_rss_reinit(struct fbnic_dev *fbd, struct fbnic_net *fbn);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
198
struct fbnic_mac_addr *__fbnic_uc_sync(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
200
struct fbnic_mac_addr *__fbnic_mc_sync(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
202
void fbnic_sift_macda(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
203
void fbnic_write_macda(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
205
void fbnic_promisc_sync(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
208
struct fbnic_ip_addr *__fbnic_ip4_sync(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
212
struct fbnic_ip_addr *__fbnic_ip6_sync(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
217
void fbnic_write_ip_addr(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
229
void fbnic_clear_rules(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
230
void fbnic_write_rules(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_rpc.h
231
void fbnic_write_tce_tcam(struct fbnic_dev *fbd);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
101
fbnic_ptp_fresh_check(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
102
fbnic_ptp_refresh_time(fbd, fbn);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
109
struct fbnic_dev *fbd = fbnic_from_ptp_info(ptp);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
117
spin_lock_irqsave(&fbd->time_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
118
__fbnic_time_set_addend(fbd, addend);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
119
fbnic_wr32(fbd, FBNIC_PTP_ADJUST, FBNIC_PTP_ADJUST_ADDEND_SET);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
122
fbnic_rd32(fbd, FBNIC_PTP_SPARE);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
123
spin_unlock_irqrestore(&fbd->time_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
125
return fbnic_present(fbd) ? 0 : -EIO;
drivers/net/ethernet/meta/fbnic/fbnic_time.c
130
struct fbnic_dev *fbd = fbnic_from_ptp_info(ptp);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
134
fbn = netdev_priv(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
136
spin_lock_irqsave(&fbd->time_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
140
spin_unlock_irqrestore(&fbd->time_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
149
struct fbnic_dev *fbd = fbnic_from_ptp_info(ptp);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
155
fbn = netdev_priv(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
157
spin_lock_irqsave(&fbd->time_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
160
hi = fbnic_rd32(fbd, FBNIC_PTP_CTR_VAL_HI);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
162
lo = fbnic_rd32(fbd, FBNIC_PTP_CTR_VAL_LO);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
167
} while (hi != fbnic_rd32(fbd, FBNIC_PTP_CTR_VAL_HI));
drivers/net/ethernet/meta/fbnic/fbnic_time.c
170
spin_unlock_irqrestore(&fbd->time_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
172
if (!fbnic_present(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_time.c
183
struct fbnic_dev *fbd = fbnic_from_ptp_info(ptp);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
189
fbn = netdev_priv(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
193
spin_lock_irqsave(&fbd->time_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
195
dev_ns = __fbnic_time_get_slow(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
197
if (fbnic_present(fbd)) {
drivers/net/ethernet/meta/fbnic/fbnic_time.c
205
spin_unlock_irqrestore(&fbd->time_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
223
static void fbnic_ptp_reset(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_time.c
225
struct fbnic_net *fbn = netdev_priv(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
228
fbnic_wr32(fbd, FBNIC_PTP_CTRL,
drivers/net/ethernet/meta/fbnic/fbnic_time.c
235
__fbnic_time_set_addend(fbd, dclk_period);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
237
fbnic_wr32(fbd, FBNIC_PTP_INIT_HI, 0);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
238
fbnic_wr32(fbd, FBNIC_PTP_INIT_LO, 0);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
240
fbnic_wr32(fbd, FBNIC_PTP_ADJUST, FBNIC_PTP_ADJUST_INIT);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
242
fbnic_wr32(fbd, FBNIC_PTP_CTRL,
drivers/net/ethernet/meta/fbnic/fbnic_time.c
248
fbnic_rd32(fbd, FBNIC_PTP_SPARE);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
265
fbnic_ptp_refresh_time(fbn->fbd, fbn);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
269
return ptp_schedule_worker(fbn->fbd->ptp, FBNIC_TS_HIGH_REFRESH_JIF);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
274
ptp_cancel_worker_sync(fbn->fbd->ptp);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
275
fbnic_ptp_fresh_check(fbn->fbd);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
278
int fbnic_ptp_setup(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_time.c
280
struct device *dev = fbd->dev;
drivers/net/ethernet/meta/fbnic/fbnic_time.c
283
spin_lock_init(&fbd->time_lock);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
285
spin_lock_irqsave(&fbd->time_lock, flags); /* Appease lockdep */
drivers/net/ethernet/meta/fbnic/fbnic_time.c
286
fbnic_ptp_reset(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
287
spin_unlock_irqrestore(&fbd->time_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
289
memcpy(&fbd->ptp_info, &fbnic_ptp_info, sizeof(fbnic_ptp_info));
drivers/net/ethernet/meta/fbnic/fbnic_time.c
291
fbd->ptp = ptp_clock_register(&fbd->ptp_info, dev);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
292
if (IS_ERR(fbd->ptp))
drivers/net/ethernet/meta/fbnic/fbnic_time.c
293
dev_err(dev, "Failed to register PTP: %pe\n", fbd->ptp);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
295
return PTR_ERR_OR_ZERO(fbd->ptp);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
298
void fbnic_ptp_destroy(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_time.c
300
if (!fbd->ptp)
drivers/net/ethernet/meta/fbnic/fbnic_time.c
302
ptp_clock_unregister(fbd->ptp);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
40
static u64 __fbnic_time_get_slow(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_time.c
44
lockdep_assert_held(&fbd->time_lock);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
47
hi = fbnic_rd32(fbd, FBNIC_PTP_CTR_VAL_HI);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
48
lo = fbnic_rd32(fbd, FBNIC_PTP_CTR_VAL_LO);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
49
} while (hi != fbnic_rd32(fbd, FBNIC_PTP_CTR_VAL_HI));
drivers/net/ethernet/meta/fbnic/fbnic_time.c
54
static void __fbnic_time_set_addend(struct fbnic_dev *fbd, u64 addend)
drivers/net/ethernet/meta/fbnic/fbnic_time.c
56
lockdep_assert_held(&fbd->time_lock);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
58
fbnic_wr32(fbd, FBNIC_PTP_ADD_VAL_NS,
drivers/net/ethernet/meta/fbnic/fbnic_time.c
60
fbnic_wr32(fbd, FBNIC_PTP_ADD_VAL_SUBNS, (u32)addend);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
63
static void fbnic_ptp_fresh_check(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_time.c
65
if (time_is_after_jiffies(fbd->last_read +
drivers/net/ethernet/meta/fbnic/fbnic_time.c
69
dev_warn(fbd->dev, "NIC timestamp refresh stall, delayed by %lu sec\n",
drivers/net/ethernet/meta/fbnic/fbnic_time.c
70
(jiffies - fbd->last_read - FBNIC_TS_HIGH_REFRESH_JIF) / HZ);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
73
static void fbnic_ptp_refresh_time(struct fbnic_dev *fbd, struct fbnic_net *fbn)
drivers/net/ethernet/meta/fbnic/fbnic_time.c
78
spin_lock_irqsave(&fbd->time_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
79
hi = fbnic_rd32(fbn->fbd, FBNIC_PTP_CTR_VAL_HI);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
80
if (!fbnic_present(fbd))
drivers/net/ethernet/meta/fbnic/fbnic_time.c
89
fbd->last_read = jiffies;
drivers/net/ethernet/meta/fbnic/fbnic_time.c
91
spin_unlock_irqrestore(&fbd->time_lock, flags);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
96
struct fbnic_dev *fbd = fbnic_from_ptp_info(ptp);
drivers/net/ethernet/meta/fbnic/fbnic_time.c
99
fbn = netdev_priv(fbd->netdev);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
1356
struct fbnic_dev *fbd = nv->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
1359
fbnic_wr32(fbd, FBNIC_INTR_MASK_SET(v_idx / 32), 1 << (v_idx % 32));
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
1364
struct fbnic_dev *fbd = nv->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
1367
fbnic_wr32(fbd, FBNIC_INTR_CQ_REARM(v_idx),
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
1520
struct fbnic_dev *fbd = nv->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
1535
fbnic_napi_free_irq(fbd, nv);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
1615
static int fbnic_alloc_napi_vector(struct fbnic_dev *fbd, struct fbnic_net *fbn,
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
1621
u32 __iomem *uc_addr = fbd->uc_addr0;
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
1652
nv->fbd = fbd;
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
1662
pci_irq_vector(to_pci_dev(fbd->dev),
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
1666
nv->dev = fbd->dev;
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
1669
err = fbnic_napi_request_irq(fbd, nv);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
1766
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
1772
err = fbnic_alloc_napi_vector(fbd, fbn,
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
1791
err = fbnic_alloc_napi_vector(fbd, fbn, num_napi, v_idx,
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2255
fbnic_wrfl(fbn->fbd);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2276
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2282
fbnic_wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2285
static void fbnic_tx_flush(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2287
netdev_warn(fbd->netdev, "triggering Tx flush\n");
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2289
fbnic_rmw32(fbd, FBNIC_TMI_DROP_CTRL, FBNIC_TMI_DROP_CTRL_EN,
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2293
static void fbnic_tx_flush_off(struct fbnic_dev *fbd)
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2295
fbnic_rmw32(fbd, FBNIC_TMI_DROP_CTRL, FBNIC_TMI_DROP_CTRL_EN, 0);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2303
static bool fbnic_all_idle(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2311
if (fbnic_rd32(fbd, regs[i].reg_base + j) != ~0U)
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2318
static void fbnic_idle_dump(struct fbnic_dev *fbd,
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2324
netdev_err(fbd->netdev, "error waiting for %s idle %d\n", dir, err);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2327
netdev_err(fbd->netdev, "0x%04x: %08x\n",
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2329
fbnic_rd32(fbd, regs[i].reg_base + j));
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2332
int fbnic_wait_all_queues_idle(struct fbnic_dev *fbd, bool may_fail)
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2348
false, fbd, tx, ARRAY_SIZE(tx));
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2350
fbnic_tx_flush(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2353
fbd, tx, ARRAY_SIZE(tx));
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2354
fbnic_tx_flush_off(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2357
fbnic_idle_dump(fbd, tx, ARRAY_SIZE(tx), "Tx", err);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2363
false, fbd, rx, ARRAY_SIZE(rx));
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2365
fbnic_idle_dump(fbd, rx, ARRAY_SIZE(rx), "Rx", err);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2379
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2394
fbd, regs[i] + off);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2396
netdev_err(fbd->netdev,
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2648
struct fbnic_dev *fbd = nv->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2656
fbnic_wr32(fbd, FBNIC_INTR_CQ_REARM(nv->v_idx), val);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2749
fbnic_wrfl(fbn->fbd);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2754
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2760
fbnic_wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2771
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2794
fbnic_wr32(fbd, FBNIC_INTR_SET(i), irqs[i]);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2797
fbnic_wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2804
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2824
fbnic_wr32(fbd, FBNIC_INTR_MASK_CLEAR(i), irqs[i]);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2825
fbnic_wr32(fbd, FBNIC_INTR_SET(i), irqs[i]);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2828
fbnic_wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2870
struct fbnic_dev *fbd = fbn->fbd;
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2878
fbnic_wr32(fbd, FBNIC_INTR_SET(nv->v_idx / 32), BIT(nv->v_idx % 32));
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2879
fbnic_wrfl(fbd);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.c
2934
fbnic_synchronize_irq(fbn->fbd, nv->v_idx);
drivers/net/ethernet/meta/fbnic/fbnic_txrx.h
153
struct fbnic_dev *fbd;
drivers/net/ethernet/meta/fbnic/fbnic_txrx.h
198
int fbnic_wait_all_queues_idle(struct fbnic_dev *fbd, bool may_fail);