| /linux/drivers/net/ethernet/meta/fbnic/ |
| H A D | fbnic_pci.c | 37 u32 fbnic_rd32(struct fbnic_dev *fbd, u32 reg) in fbnic_rd32() argument 39 u32 __iomem *csr = READ_ONCE(fbd->uc_addr0); in fbnic_rd32() 56 WRITE_ONCE(fbd->uc_addr0, NULL); in fbnic_rd32() 57 WRITE_ONCE(fbd->uc_addr4, NULL); in fbnic_rd32() 59 dev_err(fbd->dev, in fbnic_rd32() 64 if (!fbnic_init_failure(fbd)) in fbnic_rd32() 65 netif_device_detach(fbd->netdev); in fbnic_rd32() 70 bool fbnic_fw_present(struct fbnic_dev *fbd) in fbnic_fw_present() argument 72 return !!READ_ONCE(fbd->uc_addr4); in fbnic_fw_present() 75 void fbnic_fw_wr32(struct fbnic_dev *fbd, u32 reg, u32 val) in fbnic_fw_wr32() argument [all …]
|
| H A D | fbnic_rpc.c | 54 void fbnic_rss_disable_hw(struct fbnic_dev *fbd) in fbnic_rss_disable_hw() argument 57 if (!fbnic_bmc_present(fbd)) in fbnic_rss_disable_hw() 58 wr32(fbd, FBNIC_RPC_RMI_CONFIG, in fbnic_rss_disable_hw() 81 void fbnic_rss_reinit_hw(struct fbnic_dev *fbd, struct fbnic_net *fbn) in fbnic_rss_reinit_hw() argument 86 wr32(fbd, FBNIC_RPC_RSS_TBL(0, i), fbn->indir_tbl[0][i]); in fbnic_rss_reinit_hw() 87 wr32(fbd, FBNIC_RPC_RSS_TBL(1, i), fbn->indir_tbl[1][i]); in fbnic_rss_reinit_hw() 91 wr32(fbd, FBNIC_RPC_RSS_KEY(i), fbn->rss_key[i]); in fbnic_rss_reinit_hw() 94 wr32(fbd, FBNIC_RPC_ACT_TBL0_DEFAULT, FBNIC_RPC_ACT_TBL0_DROP); in fbnic_rss_reinit_hw() 95 wrfl(fbd); in fbnic_rss_reinit_hw() 97 wr32(fbd, FBNIC_RPC_ACT_TBL1_DEFAULT, 0); in fbnic_rss_reinit_hw() [all …]
|
| H A D | fbnic_netdev.c | 15 struct fbnic_dev *fbd = fbn->fbd; in __fbnic_open() local 31 err = fbnic_fw_xmit_ownership_msg(fbd, true); in __fbnic_open() 33 dev_warn(fbd->dev, in __fbnic_open() 43 err = fbnic_fw_init_heartbeat(fbd, false); in __fbnic_open() 47 err = fbnic_mac_request_irq(fbd); in __fbnic_open() 52 fbnic_bmc_rpc_init(fbd); in __fbnic_open() 53 fbnic_rss_reinit(fbd, fbn); in __fbnic_open() 61 fbnic_fw_xmit_ownership_msg(fbn->fbd, false); in __fbnic_open() 76 fbnic_napi_name_irqs(fbn->fbd); in fbnic_open() 89 fbnic_mac_free_irq(fbn->fbd); in fbnic_stop() [all …]
|
| H A D | fbnic_fw_log.c | 11 void fbnic_fw_log_enable(struct fbnic_dev *fbd, bool send_hist) in fbnic_fw_log_enable() argument 15 if (!fbnic_fw_log_ready(fbd)) in fbnic_fw_log_enable() 18 if (fbd->fw_cap.running.mgmt.version < MIN_FW_VER_CODE_HIST) in fbnic_fw_log_enable() 21 err = fbnic_fw_xmit_send_logs(fbd, true, send_hist); in fbnic_fw_log_enable() 23 dev_warn(fbd->dev, "Unable to enable firmware logs: %d\n", err); in fbnic_fw_log_enable() 26 void fbnic_fw_log_disable(struct fbnic_dev *fbd) in fbnic_fw_log_disable() argument 30 err = fbnic_fw_xmit_send_logs(fbd, false, false); in fbnic_fw_log_disable() 32 dev_warn(fbd->dev, "Unable to disable firmware logs: %d\n", in fbnic_fw_log_disable() 36 int fbnic_fw_log_init(struct fbnic_dev *fbd) in fbnic_fw_log_init() argument 38 struct fbnic_fw_log *log = &fbd->fw_log; in fbnic_fw_log_init() [all …]
|
| H A D | fbnic_hwmon.c | 34 struct fbnic_dev *fbd = dev_get_drvdata(dev); in fbnic_hwmon_read() local 35 const struct fbnic_mac *mac = fbd->mac; in fbnic_hwmon_read() 39 return id < 0 ? id : mac->get_sensor(fbd, id, val); in fbnic_hwmon_read() 58 void fbnic_hwmon_register(struct fbnic_dev *fbd) in fbnic_hwmon_register() argument 63 fbd->hwmon = hwmon_device_register_with_info(fbd->dev, "fbnic", in fbnic_hwmon_register() 64 fbd, &fbnic_chip_info, in fbnic_hwmon_register() 66 if (IS_ERR(fbd->hwmon)) { in fbnic_hwmon_register() 67 dev_notice(fbd->dev, in fbnic_hwmon_register() 69 fbd->hwmon); in fbnic_hwmon_register() 70 fbd->hwmon = NULL; in fbnic_hwmon_register() [all …]
|
| H A D | fbnic_ethtool.c | 133 struct fbnic_dev *fbd = fbn->fbd; in fbnic_get_drvinfo() local 135 fbnic_get_fw_ver_commit_str(fbd, drvinfo->fw_version, in fbnic_get_drvinfo() 143 return fbnic_csr_regs_len(fbn->fbd) * sizeof(u32); in fbnic_get_regs_len() 151 fbnic_csr_get_regs(fbn->fbd, data, ®s->version); in fbnic_get_regs() 202 struct fbnic_dev *fbd = orig->fbd; in fbnic_clone_swap() local 206 fbnic_synchronize_irq(fbd, FBNIC_NON_NAPI_VECTORS + i); in fbnic_clone_swap() 377 err = fbnic_wait_all_queues_idle(fbn->fbd, true); in fbnic_set_ringparam() 516 struct fbnic_dev *fbd = fbn->fbd; in fbnic_get_ethtool_stats() local 519 fbnic_get_hw_stats(fbn->fbd); in fbnic_get_ethtool_stats() 521 spin_lock(&fbd->hw_stats.lock); in fbnic_get_ethtool_stats() [all …]
|
| H A D | fbnic_csr.c | 60 static void fbnic_csr_get_regs_rpc_ram(struct fbnic_dev *fbd, u32 **data_p) in fbnic_csr_get_regs_rpc_ram() argument 73 *(data++) = rd32(fbd, FBNIC_RPC_TCAM_ACT(i, j)); in fbnic_csr_get_regs_rpc_ram() 79 *(data++) = rd32(fbd, FBNIC_RPC_TCAM_MACDA(i, j)); in fbnic_csr_get_regs_rpc_ram() 85 *(data++) = rd32(fbd, FBNIC_RPC_TCAM_OUTER_IPSRC(i, j)); in fbnic_csr_get_regs_rpc_ram() 91 *(data++) = rd32(fbd, FBNIC_RPC_TCAM_OUTER_IPDST(i, j)); in fbnic_csr_get_regs_rpc_ram() 97 *(data++) = rd32(fbd, FBNIC_RPC_TCAM_IPSRC(i, j)); in fbnic_csr_get_regs_rpc_ram() 103 *(data++) = rd32(fbd, FBNIC_RPC_TCAM_IPDST(i, j)); in fbnic_csr_get_regs_rpc_ram() 109 *(data++) = rd32(fbd, FBNIC_RPC_RSS_TBL(i, j)); in fbnic_csr_get_regs_rpc_ram() 115 void fbnic_csr_get_regs(struct fbnic_dev *fbd, u32 *data, u32 *regs_version) in fbnic_csr_get_regs() argument 129 *(data++) = rd32(fbd, j); in fbnic_csr_get_regs() [all …]
|
| H A D | fbnic_txrx.c | 1356 struct fbnic_dev *fbd = nv->fbd; in fbnic_nv_irq_disable() local 1359 fbnic_wr32(fbd, FBNIC_INTR_MASK_SET(v_idx / 32), 1 << (v_idx % 32)); in fbnic_nv_irq_disable() 1364 struct fbnic_dev *fbd = nv->fbd; in fbnic_nv_irq_rearm() local 1367 fbnic_wr32(fbd, FBNIC_INTR_CQ_REARM(v_idx), in fbnic_nv_irq_rearm() 1520 struct fbnic_dev *fbd = nv->fbd; in fbnic_free_napi_vector() local 1535 fbnic_napi_free_irq(fbd, nv); in fbnic_free_napi_vector() 1615 static int fbnic_alloc_napi_vector(struct fbnic_dev *fbd, struct fbnic_net *fbn, in fbnic_alloc_napi_vector() argument 1621 u32 __iomem *uc_addr = fbd->uc_addr0; in fbnic_alloc_napi_vector() 1652 nv->fbd = fbd; in fbnic_alloc_napi_vector() 1662 pci_irq_vector(to_pci_dev(fbd->dev), in fbnic_alloc_napi_vector() [all …]
|
| H A D | fbnic_txrx.h | 153 struct fbnic_dev *fbd; member 198 int fbnic_wait_all_queues_idle(struct fbnic_dev *fbd, bool may_fail);
|