Home
last modified time | relevance | path

Searched refs:enic (Results 1 – 23 of 23) sorted by relevance

/linux/drivers/net/ethernet/cisco/enic/
H A Denic_main.c117 static void enic_init_affinity_hint(struct enic *enic) in enic_init_affinity_hint() argument
119 int numa_node = dev_to_node(&enic->pdev->dev); in enic_init_affinity_hint()
122 for (i = 0; i < enic->intr_count; i++) { in enic_init_affinity_hint()
123 if (enic_is_err_intr(enic, i) || enic_is_notify_intr(enic, i) || in enic_init_affinity_hint()
124 (cpumask_available(enic->msix[i].affinity_mask) && in enic_init_affinity_hint()
125 !cpumask_empty(enic->msix[i].affinity_mask))) in enic_init_affinity_hint()
127 if (zalloc_cpumask_var(&enic->msix[i].affinity_mask, in enic_init_affinity_hint()
130 enic->msix[i].affinity_mask); in enic_init_affinity_hint()
134 static void enic_free_affinity_hint(struct enic *enic) in enic_free_affinity_hint() argument
138 for (i = 0; i < enic->intr_count; i++) { in enic_free_affinity_hint()
[all …]
H A Denic_admin.c36 struct enic *enic = vnic_dev_priv(wq->vdev); in enic_admin_wq_buf_clean() local
39 dma_unmap_single(&enic->pdev->dev, buf->dma_addr, in enic_admin_wq_buf_clean()
49 struct enic *enic = vnic_dev_priv(rq->vdev); in enic_admin_rq_buf_clean() local
54 dma_unmap_single(&enic->pdev->dev, buf->dma_addr, buf->len, in enic_admin_rq_buf_clean()
60 static int enic_admin_rq_post_one(struct enic *enic, gfp_t gfp) in enic_admin_rq_post_one() argument
62 struct vnic_rq *rq = &enic->admin_rq; in enic_admin_rq_post_one()
71 dma_addr = dma_map_single(&enic->pdev->dev, buf, ENIC_ADMIN_BUF_SIZE, in enic_admin_rq_post_one()
73 if (dma_mapping_error(&enic->pdev->dev, dma_addr)) { in enic_admin_rq_post_one()
86 static int enic_admin_rq_fill(struct enic *enic, gfp_t gfp) in enic_admin_rq_fill() argument
88 struct vnic_rq *rq = &enic->admin_rq; in enic_admin_rq_fill()
[all …]
H A Denic_mbox.c31 static int enic_mbox_send_msg_id(struct enic *enic, u8 msg_type, in enic_mbox_send_msg_id() argument
37 struct vnic_wq *wq = &enic->admin_wq; in enic_mbox_send_msg_id()
56 mutex_lock(&enic->mbox_lock); in enic_mbox_send_msg_id()
58 if (!enic->has_admin_channel || READ_ONCE(enic->mbox_send_disabled)) { in enic_mbox_send_msg_id()
78 msg_num = ++enic->mbox_msg_num; in enic_mbox_send_msg_id()
80 reinit_completion(&enic->mbox_comp); in enic_mbox_send_msg_id()
81 spin_lock_bh(&enic->mbox_state_lock); in enic_mbox_send_msg_id()
82 enic->mbox_expected_reply = expected_reply; in enic_mbox_send_msg_id()
83 enic->mbox_expected_msg_num = msg_num; in enic_mbox_send_msg_id()
84 spin_unlock_bh(&enic->mbox_state_lock); in enic_mbox_send_msg_id()
[all …]
H A Denic_res.c29 int enic_get_vnic_config(struct enic *enic) in enic_get_vnic_config() argument
31 struct vnic_enet_config *c = &enic->config; in enic_get_vnic_config()
34 err = vnic_dev_get_mac_addr(enic->vdev, enic->mac_addr); in enic_get_vnic_config()
36 dev_err(enic_get_dev(enic), in enic_get_vnic_config()
43 err = vnic_dev_spec(enic->vdev, \ in enic_get_vnic_config()
47 dev_err(enic_get_dev(enic), \ in enic_get_vnic_config()
89 vnic_dev_get_intr_coal_timer_max(enic->vdev)); in enic_get_vnic_config()
91 dev_info(enic_get_dev(enic), in enic_get_vnic_config()
93 enic->mac_addr, c->wq_desc_count, c->rq_desc_count, in enic_get_vnic_config()
96 dev_info(enic_get_dev(enic), "vNIC csum tx/rx %s/%s " in enic_get_vnic_config()
[all …]
H A Denic_dev.h14 #define ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnicdevcmdfn, ...) \ argument
16 spin_lock_bh(&enic->devcmd_lock); \
17 if (enic_is_valid_vf(enic, vf)) { \
18 vnic_dev_cmd_proxy_by_index_start(enic->vdev, vf); \
19 err = vnicdevcmdfn(enic->vdev, ##__VA_ARGS__); \
20 vnic_dev_cmd_proxy_end(enic->vdev); \
22 err = vnicdevcmdfn(enic->vdev, ##__VA_ARGS__); \
24 spin_unlock_bh(&enic->devcmd_lock); \
27 int enic_dev_fw_info(struct enic *enic, struct vnic_devcmd_fw_info **fw_info);
28 int enic_dev_stats_dump(struct enic *enic, struct vnic_stats **vstats);
[all …]
H A Denic_clsf.c21 int enic_addfltr_5t(struct enic *enic, struct flow_keys *keys, u16 rq) in enic_addfltr_5t() argument
44 spin_lock_bh(&enic->devcmd_lock); in enic_addfltr_5t()
45 res = vnic_dev_classifier(enic->vdev, CLSF_ADD, &rq, &data); in enic_addfltr_5t()
46 spin_unlock_bh(&enic->devcmd_lock); in enic_addfltr_5t()
59 int enic_delfltr(struct enic *enic, u16 filter_id) in enic_delfltr() argument
63 spin_lock_bh(&enic->devcmd_lock); in enic_delfltr()
64 ret = vnic_dev_classifier(enic->vdev, CLSF_DEL, &filter_id, NULL); in enic_delfltr()
65 spin_unlock_bh(&enic->devcmd_lock); in enic_delfltr()
73 void enic_rfs_flw_tbl_init(struct enic *enic) in enic_rfs_flw_tbl_init() argument
77 spin_lock_init(&enic->rfs_h.lock); in enic_rfs_flw_tbl_init()
[all …]
H A Denic_pp.c23 int enic_is_valid_pp_vf(struct enic *enic, int vf, int *err) in enic_is_valid_pp_vf() argument
27 if (enic_sriov_enabled(enic)) { in enic_is_valid_pp_vf()
29 if (enic->vf_type == ENIC_VF_TYPE_V2) { in enic_is_valid_pp_vf()
33 if (vf < 0 || vf >= enic->num_vfs) { in enic_is_valid_pp_vf()
47 if (vf == PORT_SELF_VF && !enic_is_dynamic(enic)) { in enic_is_valid_pp_vf()
59 static int enic_set_port_profile(struct enic *enic, int vf) in enic_set_port_profile() argument
61 struct net_device *netdev = enic->netdev; in enic_set_port_profile()
71 ENIC_PP_BY_INDEX(enic, vf, pp, &err); in enic_set_port_profile()
125 ENIC_DEVCMD_PROXY_BY_INDEX(vf, err, enic, vnic_dev_init_prov2, (u8 *)vp, in enic_set_port_profile()
135 static int enic_unset_port_profile(struct enic *enic, int vf) in enic_unset_port_profile() argument
[all …]
H A Denic.h242 struct enic { struct
319 void (*admin_rq_handler)(struct enic *enic, void *buf, argument
351 struct enic *enic = vdev->priv; in vnic_get_netdev() argument
353 return enic->netdev; in vnic_get_netdev()
374 static inline struct device *enic_get_dev(struct enic *enic) in enic_get_dev() argument
376 return &(enic->pdev->dev); in enic_get_dev()
379 static inline unsigned int enic_cq_rq(struct enic *enic, unsigned int rq) in enic_cq_rq() argument
384 static inline unsigned int enic_cq_wq(struct enic *enic, unsigned int wq) in enic_cq_wq() argument
386 return enic->rq_count + wq; in enic_cq_wq()
389 static inline unsigned int enic_msix_rq_intr(struct enic *enic, in enic_msix_rq_intr() argument
[all …]
H A Denic_clsf.h10 int enic_addfltr_5t(struct enic *enic, struct flow_keys *keys, u16 rq);
11 int enic_delfltr(struct enic *enic, u16 filter_id);
12 void enic_rfs_flw_tbl_init(struct enic *enic);
13 void enic_rfs_flw_tbl_free(struct enic *enic);
14 struct enic_rfs_fltr_node *htbl_fltr_search(struct enic *enic, u16 fltr_id);
21 static inline void enic_rfs_timer_start(struct enic *enic) in enic_rfs_timer_start() argument
23 timer_setup(&enic->rfs_h.rfs_may_expire, enic_flow_may_expire, 0); in enic_rfs_timer_start()
24 mod_timer(&enic->rfs_h.rfs_may_expire, jiffies + HZ/4); in enic_rfs_timer_start()
27 static inline void enic_rfs_timer_stop(struct enic *enic) in enic_rfs_timer_stop() argument
29 timer_delete_sync(&enic->rfs_h.rfs_may_expire); in enic_rfs_timer_stop()
[all …]
H A Denic_mbox.h85 struct enic;
87 void enic_mbox_init(struct enic *enic);
88 int enic_mbox_send_msg(struct enic *enic, u8 msg_type, u16 dst_vnic_id,
90 int enic_mbox_send_link_state(struct enic *enic, u16 vf_id, u32 link_state);
91 void enic_mbox_vf_link_state_reset(struct enic *enic);
92 void enic_mbox_vf_link_state_set_running(struct enic *enic, bool running);
93 int enic_mbox_vf_capability_check(struct enic *enic);
94 int enic_mbox_vf_register(struct enic *enic);
95 int enic_mbox_vf_unregister(struct enic *enic);
H A Denic_wq.c43 struct enic *enic = vnic_dev_priv(wq->vdev); in enic_free_wq_buf() local
46 dma_unmap_single(&enic->pdev->dev, buf->dma_addr, buf->len, in enic_free_wq_buf()
49 dma_unmap_page(&enic->pdev->dev, buf->dma_addr, buf->len, in enic_free_wq_buf()
59 struct enic *enic = vnic_dev_priv(wq->vdev); in enic_wq_free_buf() local
61 enic->wq[wq->index].stats.cq_work++; in enic_wq_free_buf()
62 enic->wq[wq->index].stats.cq_bytes += buf->len; in enic_wq_free_buf()
69 struct enic *enic = vnic_dev_priv(vdev); in enic_wq_service() local
71 spin_lock(&enic->wq[q_number].lock); in enic_wq_service()
73 vnic_wq_service(&enic->wq[q_number].vwq, cq_desc, in enic_wq_service()
76 if (netif_tx_queue_stopped(netdev_get_tx_queue(enic->netdev, q_number)) in enic_wq_service()
[all …]
H A Denic_res.h31 #define ENIC_SETTING(enic, f) ((enic->config.flags & VENETF_##f) ? 1 : 0) argument
128 struct enic;
130 int enic_get_vnic_config(struct enic *);
131 int enic_add_vlan(struct enic *enic, u16 vlanid);
132 int enic_del_vlan(struct enic *enic, u16 vlanid);
133 int enic_set_nic_cfg(struct enic *enic, u8 rss_default_cpu, u8 rss_hash_type,
136 int enic_set_rss_key(struct enic *enic, dma_addr_t key_pa, u64 len);
137 int enic_set_rss_cpu(struct enic *enic, dma_addr_t cpu_pa, u64 len);
138 void enic_get_res_counts(struct enic *enic);
139 void enic_init_vnic_resources(struct enic *enic);
[all …]
H A Denic_pp.h7 #define ENIC_PP_BY_INDEX(enic, vf, pp, err) \ argument
9 if (enic_is_valid_pp_vf(enic, vf, err)) \
10 pp = (vf == PORT_SELF_VF) ? enic->pp : enic->pp + vf; \
15 int enic_process_set_pp_request(struct enic *enic, int vf,
17 int enic_process_get_pp_request(struct enic *enic, int vf,
19 int enic_is_valid_pp_vf(struct enic *enic, int vf, int *err);
H A Denic_rq.c104 struct enic *enic = vnic_dev_priv(vrq->vdev); in enic_rq_set_skb_flags() local
105 struct net_device *netdev = enic->netdev; in enic_rq_set_skb_flags()
106 struct enic_rq_stats *rqstats = &enic->rq[vrq->index].stats; in enic_rq_set_skb_flags()
125 if (enic->vxlan.vxlan_udp_port_number) { in enic_rq_set_skb_flags()
126 switch (enic->vxlan.patch_level) { in enic_rq_set_skb_flags()
255 struct enic *enic = vnic_dev_priv(vrq->vdev); in enic_rq_pkt_error() local
256 struct enic_rq_stats *rqstats = &enic->rq[vrq->index].stats; in enic_rq_pkt_error()
272 struct enic *enic = vnic_dev_priv(rq->vdev); in enic_rq_alloc_buf() local
273 struct net_device *netdev = enic->netdev; in enic_rq_alloc_buf()
274 struct enic_rq *erq = &enic->rq[rq->index]; in enic_rq_alloc_buf()
[all …]
H A Denic_admin.h10 struct enic;
22 int enic_admin_channel_open(struct enic *enic);
23 void enic_admin_channel_close(struct enic *enic);
24 unsigned int enic_admin_wq_cq_service(struct enic *enic);
25 unsigned int enic_admin_rq_cq_service(struct enic *enic);
H A Denic_api.c18 struct enic *enic = netdev_priv(netdev); in enic_api_devcmd_proxy_by_index() local
19 struct vnic_dev *vdev = enic->vdev; in enic_api_devcmd_proxy_by_index()
21 spin_lock(&enic->enic_api_lock); in enic_api_devcmd_proxy_by_index()
22 while (enic->enic_api_busy) { in enic_api_devcmd_proxy_by_index()
23 spin_unlock(&enic->enic_api_lock); in enic_api_devcmd_proxy_by_index()
25 spin_lock(&enic->enic_api_lock); in enic_api_devcmd_proxy_by_index()
28 spin_lock_bh(&enic->devcmd_lock); in enic_api_devcmd_proxy_by_index()
34 spin_unlock_bh(&enic->devcmd_lock); in enic_api_devcmd_proxy_by_index()
35 spin_unlock(&enic->enic_api_lock); in enic_api_devcmd_proxy_by_index()
H A Denic_wq.h6 unsigned int enic_wq_cq_service(struct enic *enic, unsigned int cq_index,
H A Denic_rq.h5 unsigned int enic_rq_cq_service(struct enic *enic, unsigned int cq_index,
H A DMakefile2 obj-$(CONFIG_ENIC) := enic.o
4 enic-y := enic_main.o vnic_cq.o vnic_intr.o vnic_wq.o \
/linux/drivers/net/ethernet/cisco/
H A DMakefile6 obj-$(CONFIG_ENIC) += enic/
H A DKconfig20 source "drivers/net/ethernet/cisco/enic/Kconfig"
/linux/drivers/infiniband/hw/usnic/
H A DMakefile2 ccflags-y := -I $(srctree)/drivers/net/ethernet/cisco/enic
/linux/
H A DMAINTAINERS6357 F: drivers/net/ethernet/cisco/enic/