| /drivers/net/ethernet/netronome/nfp/ |
| A D | nfp_net_common.c | 493 nn->port->link_cb(nn->port); in nfp_net_read_link_status() 2168 if (nn->dp.is_vf || nn->vnic_no_name) in nfp_net_get_phys_port_name() 2418 nn->fw_ver.major, nn->fw_ver.minor, in nfp_net_info() 2450 nfp_app_extra_cap(nn->app, nn)); in nfp_net_info() 2489 nn = vzalloc(sizeof(*nn)); in nfp_net_alloc() 2535 nn->dp.num_r_vecs = max(nn->dp.num_tx_rings, nn->dp.num_rx_rings); in nfp_net_alloc() 2538 nn->max_r_vecs = nn->dp.num_r_vecs; in nfp_net_alloc() 2540 nn->dp.xsk_pools = kcalloc(nn->max_r_vecs, sizeof(*nn->dp.xsk_pools), in nfp_net_alloc() 2830 nn->cap &= nn->dp.ops->cap_mask; in nfp_net_read_caps() 2857 nn->dp.mtu = min(nn->app->ctrl_mtu, nn->max_mtu); in nfp_net_init() [all …]
|
| A D | ccm_mbox.c | 140 queue_work(nn->mbox_cmsg.workq, &nn->mbox_cmsg.runq_work); in nfp_ccm_mbox_mark_next_runner() 146 nn_writel(nn, off, in nfp_ccm_mbox_write_tlv() 220 data = nn->dp.ctrl_bar + nn->tlv_caps.mbox_off + in nfp_ccm_mbox_copy_out() 271 nn_dp_warn(&nn->dp, in nfp_ccm_mbox_copy_out() 323 nn_dp_warn(&nn->dp, in nfp_ccm_mbox_copy_out() 405 nn_ctrl_bar_lock(nn); in nfp_ccm_mbox_run_queue_unlock() 475 nn_dp_warn(&nn->dp, in nfp_ccm_mbox_msg_prepare() 496 nn_dp_warn(&nn->dp, in nfp_ccm_mbox_msg_prepare() 505 nn_dp_warn(&nn->dp, in nfp_ccm_mbox_msg_prepare() 609 struct nfp_net *nn; in nfp_ccm_mbox_post_runq_work() local [all …]
|
| A D | nfp_net.h | 30 struct nfp_net *__nn = (nn); \ 38 #define nn_err(nn, fmt, args...) nn_pr(nn, KERN_ERR, fmt, ## args) argument 39 #define nn_warn(nn, fmt, args...) nn_pr(nn, KERN_WARNING, fmt, ## args) argument 40 #define nn_info(nn, fmt, args...) nn_pr(nn, KERN_INFO, fmt, ## args) argument 41 #define nn_dbg(nn, fmt, args...) nn_pr(nn, KERN_DEBUG, fmt, ## args) argument 916 WARN_ON_ONCE(!nn->dp.netdev && nn->port); in nfp_net_is_data_vnic() 917 return !!nn->dp.netdev; in nfp_net_is_data_vnic() 927 return nn->dp.netdev ? nn->dp.netdev->name : "ctrl"; in nfp_net_name() 931 __acquires(&nn->r_vecs[0].lock) in nfp_ctrl_lock() 944 down(&nn->bar_lock); in nn_ctrl_bar_lock() [all …]
|
| A D | nfp_netvf_main.c | 29 struct nfp_net *nn; member 89 struct nfp_net *nn; in nfp_netvf_pci_probe() local 193 if (IS_ERR(nn)) { in nfp_netvf_pci_probe() 194 err = PTR_ERR(nn); in nfp_netvf_pci_probe() 197 vf->nn = nn; in nfp_netvf_pci_probe() 199 nn->dp.is_vf = 1; in nfp_netvf_pci_probe() 269 nfp_net_info(nn); in nfp_netvf_pci_probe() 286 nfp_net_free(nn); in nfp_netvf_pci_probe() 308 nn = vf->nn; in nfp_netvf_pci_remove() 316 nfp_net_clean(nn); in nfp_netvf_pci_remove() [all …]
|
| A D | nfp_net_main.c | 86 nfp_net_free(nn); in nfp_net_pf_free_vnic() 115 if (IS_ERR(nn)) in nfp_net_pf_alloc_vnic() 116 return nn; in nfp_net_pf_alloc_vnic() 136 return nn; in nfp_net_pf_alloc_vnic() 144 nn->id = id; in nfp_net_pf_init_vnic() 146 if (nn->port) { in nfp_net_pf_init_vnic() 172 if (nn->port) in nfp_net_pf_init_vnic() 193 if (nn->port) in nfp_net_pf_alloc_vnics() 199 if (nn->port && nn->port->type == NFP_PORT_INVALID) in nfp_net_pf_alloc_vnics() 219 if (nn->port) in nfp_net_pf_clean_vnic() [all …]
|
| A D | nfp_net_ethtool.c | 223 nn->fw_ver.extend, nn->fw_ver.class, in nfp_net_get_drvinfo() 224 nn->fw_ver.major, nn->fw_ver.minor); in nfp_net_get_drvinfo() 228 nfp_get_drvinfo(nn->app, nn->pdev, vnic_version, drvinfo); in nfp_net_get_drvinfo() 684 nn->dp.rxd_cnt, rxd_cnt, nn->dp.txd_cnt, txd_cnt); in nfp_net_set_ringparam() 991 return nn->tlv_caps.vnic_stats_cnt + nn->max_r_vecs * 4; in nfp_vnic_get_tlv_stats_count() 1000 mem = nn->dp.ctrl_bar + nn->tlv_caps.vnic_stats_off; in nfp_vnic_get_tlv_stats_strings() 1032 mem = nn->dp.ctrl_bar + nn->tlv_caps.vnic_stats_off; in nfp_vnic_get_tlv_stats() 1510 nn_dbg(nn, "Changed RSS config to 0x%x\n", nn->rss_cfg); in nfp_net_set_rxfh_fields() 1809 memcpy(rxfh->key, nn->rss_key, nfp_net_rss_key_sz(nn)); in nfp_net_get_rxfh() 2255 if (total_rx > min(nn->max_rx_rings, nn->max_r_vecs) || in nfp_net_set_channels() [all …]
|
| A D | nfp_net_dp.c | 57 struct nfp_net *nn = r_vec->nfp_net; in nfp_net_tx_ring_init() local 64 tx_ring->qcidx = tx_ring->idx * nn->stride_tx; in nfp_net_tx_ring_init() 79 struct nfp_net *nn = r_vec->nfp_net; in nfp_net_rx_ring_init() local 207 &nn->r_vecs[r - bias], r, bias); in nfp_net_tx_rings_prepare() 400 nn->dp.txrwb_dma + idx * sizeof(u64)); in nfp_net_tx_ring_hw_cfg_write() 409 nn_writeb(nn, NFP_NET_CFG_RXR_SZ(idx), 0); in nfp_net_vec_clear_ring_data() 414 nn_writeb(nn, NFP_NET_CFG_TXR_SZ(idx), 0); in nfp_net_vec_clear_ring_data() 420 struct nfp_net *nn = netdev_priv(netdev); in nfp_net_tx() local 422 return nn->dp.ops->xmit(skb, netdev); in nfp_net_tx() 429 return nn->dp.ops->ctrl_tx_one(nn, r_vec, skb, false); in __nfp_ctrl_tx() [all …]
|
| A D | nfp_app_nic.c | 12 struct nfp_net *nn, unsigned int id) in nfp_app_nic_vnic_init_phy_port() argument 19 nn->port = nfp_port_alloc(app, NFP_PORT_PHYS_PORT, nn->dp.netdev); in nfp_app_nic_vnic_init_phy_port() 20 if (IS_ERR(nn->port)) in nfp_app_nic_vnic_init_phy_port() 21 return PTR_ERR(nn->port); in nfp_app_nic_vnic_init_phy_port() 23 err = nfp_port_init_phy_port(pf, app, nn->port, id); in nfp_app_nic_vnic_init_phy_port() 25 nfp_port_free(nn->port); in nfp_app_nic_vnic_init_phy_port() 29 return nn->port->type == NFP_PORT_INVALID; in nfp_app_nic_vnic_init_phy_port() 32 int nfp_app_nic_vnic_alloc(struct nfp_app *app, struct nfp_net *nn, in nfp_app_nic_vnic_alloc() argument 37 err = nfp_app_nic_vnic_init_phy_port(app->pf, app, nn, id); in nfp_app_nic_vnic_alloc() 41 nfp_net_get_mac_addr(app->pf, nn->dp.netdev, nn->port); in nfp_app_nic_vnic_alloc()
|
| A D | nfp_net_debugfs.c | 18 struct nfp_net *nn; in nfp_rx_q_show() local 26 nn = r_vec->nfp_net; in nfp_rx_q_show() 28 if (!nfp_net_running(nn)) in nfp_rx_q_show() 84 struct nfp_net *nn; in __nfp_tx_q_show() local 95 nn = r_vec->nfp_net; in __nfp_tx_q_show() 96 if (!nfp_net_running(nn)) in __nfp_tx_q_show() 138 if (nfp_net_is_data_vnic(nn)) in nfp_net_debugfs_vnic_add() 139 sprintf(name, "vnic%d", nn->id); in nfp_net_debugfs_vnic_add() 151 for (i = 0; i < min(nn->max_rx_rings, nn->max_r_vecs); i++) { in nfp_net_debugfs_vnic_add() 154 &nn->r_vecs[i], &nfp_rx_q_fops); in nfp_net_debugfs_vnic_add() [all …]
|
| A D | nfp_app.h | 98 int (*vnic_alloc)(struct nfp_app *app, struct nfp_net *nn, 134 int (*bpf)(struct nfp_app *app, struct nfp_net *nn, 210 return app->type->vnic_alloc(app, nn, id); in nfp_app_vnic_alloc() 216 app->type->vnic_free(app, nn); in nfp_app_vnic_free() 223 return app->type->vnic_init(app, nn); in nfp_app_vnic_init() 229 app->type->vnic_clean(app, nn); in nfp_app_vnic_clean() 308 struct nfp_net *nn) in nfp_app_extra_cap() argument 312 return app->type->extra_cap(app, nn); in nfp_app_extra_cap() 334 return app->type->bpf(app, nn, bpf); in nfp_app_bpf() 343 return app->type->xdp_offload(app, nn, prog, extack); in nfp_app_xdp_offload() [all …]
|
| A D | nfp_net_xsk.c | 113 struct nfp_net *nn = netdev_priv(netdev); in nfp_net_xsk_setup_pool() local 120 if (nn->dp.ops->version == NFP_NFD_VER_NFDK) in nfp_net_xsk_setup_pool() 124 if (nn->dp.rx_offset != NFP_NET_CFG_RX_OFFSET_DYNAMIC) in nfp_net_xsk_setup_pool() 126 if (!nn->dp.chained_metadata_format) in nfp_net_xsk_setup_pool() 131 err = nfp_net_xsk_pool_map(nn->dp.dev, pool); in nfp_net_xsk_setup_pool() 137 dp = nfp_net_clone_dp(nn); in nfp_net_xsk_setup_pool() 146 err = nfp_net_ring_reconfig(nn, dp, NULL); in nfp_net_xsk_setup_pool() 152 nfp_net_xsk_pool_unmap(nn->dp.dev, prev_pool); in nfp_net_xsk_setup_pool() 157 nfp_net_xsk_pool_unmap(nn->dp.dev, pool); in nfp_net_xsk_setup_pool() 164 struct nfp_net *nn = netdev_priv(netdev); in nfp_net_xsk_wakeup() local [all …]
|
| A D | ccm.h | 114 int nfp_ccm_mbox_alloc(struct nfp_net *nn); 115 void nfp_ccm_mbox_free(struct nfp_net *nn); 116 int nfp_ccm_mbox_init(struct nfp_net *nn); 117 void nfp_ccm_mbox_clean(struct nfp_net *nn); 118 bool nfp_ccm_mbox_fits(struct nfp_net *nn, unsigned int size); 120 nfp_ccm_mbox_msg_alloc(struct nfp_net *nn, unsigned int req_size, 122 int __nfp_ccm_mbox_communicate(struct nfp_net *nn, struct sk_buff *skb, 126 int nfp_ccm_mbox_communicate(struct nfp_net *nn, struct sk_buff *skb, 130 int nfp_ccm_mbox_post(struct nfp_net *nn, struct sk_buff *skb,
|
| A D | nfp_net_dp.h | 86 static inline void nfp_net_irq_unmask(struct nfp_net *nn, unsigned int entry_nr) in nfp_net_irq_unmask() argument 88 nn_writeb(nn, NFP_NET_CFG_ICR(entry_nr), NFP_NET_CFG_ICR_UNMASKED); in nfp_net_irq_unmask() 89 nn_pci_flush(nn); in nfp_net_irq_unmask() 96 nfp_net_rx_ring_hw_cfg_write(struct nfp_net *nn, 99 nfp_net_tx_ring_hw_cfg_write(struct nfp_net *nn, 101 void nfp_net_vec_clear_ring_data(struct nfp_net *nn, unsigned int idx); 104 int nfp_net_rx_rings_prepare(struct nfp_net *nn, struct nfp_net_dp *dp); 105 int nfp_net_tx_rings_prepare(struct nfp_net *nn, struct nfp_net_dp *dp); 146 bool (*ctrl_tx_one)(struct nfp_net *nn, struct nfp_net_r_vector *r_vec,
|
| /drivers/net/ethernet/netronome/nfp/crypto/ |
| A D | tls.c | 37 val = nn_readl(nn, off); in nfp_net_crypto_set_op() 42 nn_writel(nn, off, val); in nfp_net_crypto_set_op() 55 cnt = nn->ktls_tx_conn_cnt; in __nfp_net_tls_conn_cnt_changed() 56 nn->dp.ktls_tx = !!nn->ktls_tx_conn_cnt; in __nfp_net_tls_conn_cnt_changed() 60 cnt = nn->ktls_rx_conn_cnt; in __nfp_net_tls_conn_cnt_changed() 78 nn_ctrl_bar_lock(nn); in nfp_net_tls_conn_cnt_changed() 85 nn_ctrl_bar_unlock(nn); in nfp_net_tls_conn_cnt_changed() 374 nn_dp_warn(&nn->dp, in nfp_net_tls_add() 583 nn_ctrl_bar_lock(nn); in nfp_net_tls_init() 584 nn_writel(nn, nn->tlv_caps.crypto_enable_off, 0); in nfp_net_tls_init() [all …]
|
| A D | ipsec.c | 149 nn_ctrl_bar_unlock(nn); in nfp_net_ipsec_cfg() 157 nn_ctrl_bar_unlock(nn); in nfp_net_ipsec_cfg() 276 struct nfp_net *nn; in nfp_net_xfrm_add_state() local 279 nn = netdev_priv(dev); in nfp_net_xfrm_add_state() 555 struct nfp_net *nn; in nfp_net_xfrm_del_state() local 558 nn = netdev_priv(dev); in nfp_net_xfrm_del_state() 587 xa_destroy(&nn->xa_ipsec); in nfp_net_ipsec_clean() 613 struct nfp_net *nn; in nfp_net_ipsec_rx() local 616 nn = netdev_priv(netdev); in nfp_net_ipsec_rx() 626 xa_lock(&nn->xa_ipsec); in nfp_net_ipsec_rx() [all …]
|
| A D | crypto.h | 23 int nfp_net_tls_init(struct nfp_net *nn); 28 static inline int nfp_net_tls_init(struct nfp_net *nn) in nfp_net_tls_init() argument 50 static inline void nfp_net_ipsec_init(struct nfp_net *nn) in nfp_net_ipsec_init() argument 54 static inline void nfp_net_ipsec_clean(struct nfp_net *nn) in nfp_net_ipsec_clean() argument 58 void nfp_net_ipsec_init(struct nfp_net *nn); 59 void nfp_net_ipsec_clean(struct nfp_net *nn);
|
| /drivers/net/ethernet/netronome/nfp/nic/ |
| A D | dcb.c | 75 dcb = get_dcb_priv(nn); in nfp_nic_dcbnl_ieee_getets() 93 dcb = get_dcb_priv(nn); in nfp_refresh_tc2idx() 122 dcb = get_dcb_priv(nn); in nfp_fill_maxrate() 154 dcb = get_dcb_priv(nn); in update_dscp_maxrate() 180 dcb = get_dcb_priv(nn); in nfp_nic_set_trust() 258 nfp_nic_fill_ets(nn); in nfp_nic_ets_init() 287 nfp_nic_fill_ets(nn); in nfp_nic_dcbnl_ieee_setets() 306 nn_writel(nn, nn->tlv_caps.mbox_off + NFP_NET_CFG_MBOX_SIMPLE_VAL, in nfp_nic_dcbnl_ieee_setets() 356 nn_writel(nn, nn->tlv_caps.mbox_off + NFP_NET_CFG_MBOX_SIMPLE_VAL, in nfp_nic_dcbnl_ieee_setmaxrate() 387 nn_writel(nn, nn->tlv_caps.mbox_off + NFP_NET_CFG_MBOX_SIMPLE_VAL, in nfp_nic_set_trust_status() [all …]
|
| A D | main.c | 33 static int nfp_nic_vnic_init(struct nfp_app *app, struct nfp_net *nn) in nfp_nic_vnic_init() argument 35 return nfp_nic_dcb_init(nn); in nfp_nic_vnic_init() 38 static void nfp_nic_vnic_clean(struct nfp_app *app, struct nfp_net *nn) in nfp_nic_vnic_clean() argument 40 nfp_nic_dcb_clean(nn); in nfp_nic_vnic_clean() 43 static int nfp_nic_vnic_alloc(struct nfp_app *app, struct nfp_net *nn, in nfp_nic_vnic_alloc() argument 46 struct nfp_app_nic_private *app_pri = nn->app_priv; in nfp_nic_vnic_alloc() 49 err = nfp_app_nic_vnic_alloc(app, nn, id); in nfp_nic_vnic_alloc() 54 nn->app_priv = kzalloc(sizeof(*app_pri), GFP_KERNEL); in nfp_nic_vnic_alloc() 55 if (!nn->app_priv) in nfp_nic_vnic_alloc() 62 static void nfp_nic_vnic_free(struct nfp_app *app, struct nfp_net *nn) in nfp_nic_vnic_free() argument [all …]
|
| A D | main.h | 33 int nfp_nic_dcb_init(struct nfp_net *nn); 34 void nfp_nic_dcb_clean(struct nfp_net *nn); 36 static inline int nfp_nic_dcb_init(struct nfp_net *nn) { return 0; } in nfp_nic_dcb_init() argument 37 static inline void nfp_nic_dcb_clean(struct nfp_net *nn) {} in nfp_nic_dcb_clean() argument
|
| /drivers/fpga/ |
| A D | dfl-n3000-nios.c | 299 struct device *dev = nn->dev; in n3000_nios_init_done_check() 443 pdevinfo.parent = nn->dev; in create_altera_spi_controller() 529 struct n3000_nios *nn; in n3000_nios_probe() local 532 nn = devm_kzalloc(dev, sizeof(*nn), GFP_KERNEL); in n3000_nios_probe() 533 if (!nn) in n3000_nios_probe() 538 nn->dev = dev; in n3000_nios_probe() 541 if (IS_ERR(nn->base)) in n3000_nios_probe() 542 return PTR_ERR(nn->base); in n3000_nios_probe() 544 nn->regmap = devm_regmap_init(dev, NULL, nn, &n3000_nios_regbus_cfg); in n3000_nios_probe() 545 if (IS_ERR(nn->regmap)) in n3000_nios_probe() [all …]
|
| /drivers/net/ethernet/netronome/nfp/bpf/ |
| A D | main.c | 27 struct nfp_app_bpf *bpf = nn->app->priv; in nfp_net_ebpf_capable() 43 if (!nfp_net_ebpf_capable(nn)) in nfp_bpf_xdp_offload() 82 nn->app_priv = bv; in nfp_bpf_vnic_alloc() 93 kfree(nn->app_priv); in nfp_bpf_vnic_alloc() 109 struct nfp_net *nn = cb_priv; in nfp_bpf_setup_tc_block_cb() local 121 if (!nfp_net_ebpf_capable(nn)) { in nfp_bpf_setup_tc_block_cb() 143 bv = nn->app_priv; in nfp_bpf_setup_tc_block_cb() 175 nn, nn, true); in nfp_bpf_setup_tc() 191 if (nn->xdp_hw.prog) { in nfp_bpf_check_mtu() 192 prog = nn->xdp_hw.prog; in nfp_bpf_check_mtu() [all …]
|
| A D | offload.c | 506 if (nfp_bpf_offload_check_mtu(nn, prog, nn->dp.netdev->mtu)) { in nfp_net_bpf_load() 527 dma_addr = dma_map_single(nn->dp.dev, img, in nfp_net_bpf_load() 557 nn->dp.ctrl |= NFP_NET_CFG_CTRL_BPF; in nfp_net_bpf_start() 558 nn_writel(nn, NFP_NET_CFG_CTRL, nn->dp.ctrl); in nfp_net_bpf_start() 567 if (!(nn->dp.ctrl & NFP_NET_CFG_CTRL_BPF)) in nfp_net_bpf_stop() 570 nn->dp.ctrl &= ~NFP_NET_CFG_CTRL_BPF; in nfp_net_bpf_stop() 571 nn_writel(nn, NFP_NET_CFG_CTRL, nn->dp.ctrl); in nfp_net_bpf_stop() 587 cap = nn_readb(nn, NFP_NET_CFG_BPF_CAP); in nfp_net_bpf_offload() 600 return nfp_net_bpf_stop(nn); in nfp_net_bpf_offload() 602 err = nfp_net_bpf_load(nn, prog, extack); in nfp_net_bpf_offload() [all …]
|
| /drivers/net/ethernet/netronome/nfp/abm/ |
| A D | main.c | 176 struct nfp_net *nn; in nfp_abm_kill_reprs_all() local 208 struct nfp_net *nn; in nfp_abm_eswitch_set_switchdev() local 268 eth_hw_addr_random(nn->dp.netdev); in nfp_abm_vnic_set_mac() 279 eth_hw_addr_random(nn->dp.netdev); in nfp_abm_vnic_set_mac() 285 eth_hw_addr_random(nn->dp.netdev); in nfp_abm_vnic_set_mac() 295 eth_hw_addr_random(nn->dp.netdev); in nfp_abm_vnic_set_mac() 304 eth_hw_addr_random(nn->dp.netdev); in nfp_abm_vnic_set_mac() 308 eth_hw_addr_set(nn->dp.netdev, mac_addr); in nfp_abm_vnic_set_mac() 323 nn->app_priv = alink; in nfp_abm_vnic_alloc() 325 alink->vnic = nn; in nfp_abm_vnic_alloc() [all …]
|
| A D | ctrl.c | 265 struct nfp_net *nn = alink->vnic; in nfp_abm_ctrl_prio_map_update() local 269 err = nfp_net_mbox_lock(nn, alink->abm->prio_map_len); in nfp_abm_ctrl_prio_map_update() 274 nn_writeq(nn, nn->tlv_caps.mbox_off + NFP_NET_ABM_MBOX_DATALEN, in nfp_abm_ctrl_prio_map_update() 278 nn_writel(nn, nn->tlv_caps.mbox_off + NFP_NET_ABM_MBOX_DATA + i, in nfp_abm_ctrl_prio_map_update() 281 err = nfp_net_mbox_reconfig_and_unlock(nn, cmd); in nfp_abm_ctrl_prio_map_update() 291 struct nfp_net *nn = alink->vnic; in nfp_abm_ctrl_prio_check_params() local 298 if (nn->tlv_caps.mbox_len < min_mbox_sz) { in nfp_abm_ctrl_prio_check_params() 300 nn->tlv_caps.mbox_len, min_mbox_sz); in nfp_abm_ctrl_prio_check_params()
|
| /drivers/net/ethernet/netronome/nfp/flower/ |
| A D | main.c | 370 if (!priv->nn) in nfp_flower_sriov_disable() 432 port->vnic = priv->nn->dp.ctrl_bar; in nfp_flower_spawn_vnic_reprs() 485 if (!priv->nn) in nfp_flower_sriov_enable() 617 eth_hw_addr_random(nn->dp.netdev); in nfp_flower_vnic_alloc() 618 netif_keep_dst(nn->dp.netdev); in nfp_flower_vnic_alloc() 619 nn->vnic_no_name = true; in nfp_flower_vnic_alloc() 624 nn->port = nfp_port_alloc(app, NFP_PORT_INVALID, nn->dp.netdev); in nfp_flower_vnic_alloc() 625 return PTR_ERR_OR_ZERO(nn->port); in nfp_flower_vnic_alloc() 637 priv->nn = NULL; in nfp_flower_vnic_clean() 645 priv->nn = nn; in nfp_flower_vnic_init() [all …]
|