Home
last modified time | relevance | path

Searched refs:nic_dev (Results 1 – 16 of 16) sorted by relevance

/linux/drivers/net/ethernet/huawei/hinic/
H A Dhinic_main.c79 static int set_features(struct hinic_dev *nic_dev,
110 static void gather_nic_stats(struct hinic_dev *nic_dev, in gather_nic_stats() argument
114 int i, num_qps = hinic_hwdev_num_qps(nic_dev->hwdev); in gather_nic_stats()
117 gather_rx_stats(nic_rx_stats, &nic_dev->rxqs[i]); in gather_nic_stats()
120 gather_tx_stats(nic_tx_stats, &nic_dev->txqs[i]); in gather_nic_stats()
129 static int create_txqs(struct hinic_dev *nic_dev) in create_txqs() argument
131 int err, i, j, num_txqs = hinic_hwdev_num_qps(nic_dev->hwdev); in create_txqs()
132 struct net_device *netdev = nic_dev->netdev; in create_txqs()
134 if (nic_dev->txqs) in create_txqs()
137 nic_dev->txqs = devm_kcalloc(&netdev->dev, num_txqs, in create_txqs()
[all …]
H A Dhinic_ethtool.c259 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_link_ksettings() local
274 err = hinic_port_get_cap(nic_dev, &port_cap); in hinic_get_link_ksettings()
281 err = hinic_port_link_state(nic_dev, &link_state); in hinic_get_link_ksettings()
299 err = hinic_get_link_mode(nic_dev->hwdev, &link_mode); in hinic_get_link_ksettings()
309 if (!HINIC_IS_VF(nic_dev->hwdev->hwif)) { in hinic_get_link_ksettings()
310 err = hinic_get_hw_pause_info(nic_dev->hwdev, &pause_info); in hinic_get_link_ksettings()
365 static bool hinic_is_speed_legal(struct hinic_dev *nic_dev, u32 speed) in hinic_is_speed_legal() argument
368 struct net_device *netdev = nic_dev->netdev; in hinic_is_speed_legal()
372 err = hinic_get_link_mode(nic_dev->hwdev, &link_mode); in hinic_is_speed_legal()
383 netif_err(nic_dev, drv, netdev, in hinic_is_speed_legal()
[all …]
H A Dhinic_debugfs.c23 static u64 hinic_dbg_get_sq_info(struct hinic_dev *nic_dev, struct hinic_sq *sq, int idx) in hinic_dbg_get_sq_info() argument
29 return nic_dev->hwdev->func_to_io.global_qpn + sq->qid; in hinic_dbg_get_sq_info()
53 static u64 hinic_dbg_get_rq_info(struct hinic_dev *nic_dev, struct hinic_rq *rq, int idx) in hinic_dbg_get_rq_info() argument
59 return nic_dev->hwdev->func_to_io.global_qpn + rq->qid; in hinic_dbg_get_rq_info()
83 static int hinic_dbg_get_func_table(struct hinic_dev *nic_dev, int idx) in hinic_dbg_get_func_table() argument
98 read_data->lt_index = HINIC_HWIF_FUNC_IDX(nic_dev->hwdev->hwif); in hinic_dbg_get_func_table()
101 err = hinic_port_msg_cmd(nic_dev->hwdev, HINIC_PORT_CMD_RD_LINE_TBL, read_data, in hinic_dbg_get_func_table()
104 netif_err(nic_dev, drv, nic_dev->netdev, in hinic_dbg_get_func_table()
271 void hinic_sq_dbgfs_init(struct hinic_dev *nic_dev) in hinic_sq_dbgfs_init() argument
273 nic_dev->sq_dbgfs = debugfs_create_dir("SQs", nic_dev->dbgfs_root); in hinic_sq_dbgfs_init()
[all …]
H A Dhinic_rx.c130 struct hinic_dev *nic_dev = netdev_priv(rxq->netdev); in rx_alloc_skb() local
131 struct hinic_hwdev *hwdev = nic_dev->hwdev; in rx_alloc_skb()
165 struct hinic_dev *nic_dev = netdev_priv(rxq->netdev); in rx_unmap_skb() local
166 struct hinic_hwdev *hwdev = nic_dev->hwdev; in rx_unmap_skb()
195 struct hinic_dev *nic_dev = netdev_priv(rxq->netdev); in rx_alloc_pkts() local
207 if (free_wqebbs > nic_dev->rx_weight) in rx_alloc_pkts()
208 free_wqebbs = nic_dev->rx_weight; in rx_alloc_pkts()
314 static void hinic_copy_lp_data(struct hinic_dev *nic_dev, in hinic_copy_lp_data() argument
317 struct net_device *netdev = nic_dev->netdev; in hinic_copy_lp_data()
318 u8 *lb_buf = nic_dev->lb_test_rx_buf; in hinic_copy_lp_data()
[all …]
H A Dhinic_port.c34 static int change_mac(struct hinic_dev *nic_dev, const u8 *addr, in change_mac() argument
37 struct hinic_hwdev *hwdev = nic_dev->hwdev; in change_mac()
87 int hinic_port_add_mac(struct hinic_dev *nic_dev, in hinic_port_add_mac() argument
90 return change_mac(nic_dev, addr, vlan_id, MAC_SET); in hinic_port_add_mac()
101 int hinic_port_del_mac(struct hinic_dev *nic_dev, const u8 *addr, in hinic_port_del_mac() argument
104 return change_mac(nic_dev, addr, vlan_id, MAC_DEL); in hinic_port_del_mac()
114 int hinic_port_get_mac(struct hinic_dev *nic_dev, u8 *addr) in hinic_port_get_mac() argument
116 struct hinic_hwdev *hwdev = nic_dev->hwdev; in hinic_port_get_mac()
145 int hinic_port_set_mtu(struct hinic_dev *nic_dev, int new_mtu) in hinic_port_set_mtu() argument
147 struct hinic_hwdev *hwdev = nic_dev->hwdev; in hinic_port_set_mtu()
[all …]
H A Dhinic_sriov.c518 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_get_sriov_info_by_pcidev() local
520 return &nic_dev->sriov_info; in hinic_get_sriov_info_by_pcidev()
600 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_ndo_get_vf_config() local
603 sriov_info = &nic_dev->sriov_info; in hinic_ndo_get_vf_config()
644 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_ndo_set_vf_mac() local
648 sriov_info = &nic_dev->sriov_info; in hinic_ndo_set_vf_mac()
656 netif_info(nic_dev, drv, netdev, "Setting MAC %pM on VF %d\n", mac, vf); in hinic_ndo_set_vf_mac()
657 netif_info(nic_dev, drv, netdev, "Reload the VF driver to make this change effective."); in hinic_ndo_set_vf_mac()
702 static int hinic_update_mac_vlan(struct hinic_dev *nic_dev, u16 old_vlan, in hinic_update_mac_vlan() argument
709 if (!nic_dev || old_vlan >= VLAN_N_VID || new_vlan >= VLAN_N_VID) in hinic_update_mac_vlan()
[all …]
H A Dhinic_port.h767 int hinic_port_add_mac(struct hinic_dev *nic_dev, const u8 *addr,
770 int hinic_port_del_mac(struct hinic_dev *nic_dev, const u8 *addr,
773 int hinic_port_get_mac(struct hinic_dev *nic_dev, u8 *addr);
775 int hinic_port_set_mtu(struct hinic_dev *nic_dev, int new_mtu);
777 int hinic_port_add_vlan(struct hinic_dev *nic_dev, u16 vlan_id);
779 int hinic_port_del_vlan(struct hinic_dev *nic_dev, u16 vlan_id);
781 int hinic_port_set_rx_mode(struct hinic_dev *nic_dev, u32 rx_mode);
783 int hinic_port_link_state(struct hinic_dev *nic_dev,
786 int hinic_port_set_state(struct hinic_dev *nic_dev,
789 int hinic_port_set_func_state(struct hinic_dev *nic_dev,
[all …]
H A Dhinic_tx.c132 static int tx_map_skb(struct hinic_dev *nic_dev, struct sk_buff *skb, in tx_map_skb() argument
135 struct hinic_hwdev *hwdev = nic_dev->hwdev; in tx_map_skb()
183 static void tx_unmap_skb(struct hinic_dev *nic_dev, struct sk_buff *skb, in tx_unmap_skb() argument
186 struct hinic_hwdev *hwdev = nic_dev->hwdev; in tx_unmap_skb()
493 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_lb_xmit_frame() local
502 txq = &nic_dev->txqs[q_id]; in hinic_lb_xmit_frame()
506 err = tx_map_skb(nic_dev, skb, txq->sges); in hinic_lb_xmit_frame()
518 netif_wake_subqueue(nic_dev->netdev, qp->q_id); in hinic_lb_xmit_frame()
522 tx_unmap_skb(nic_dev, skb, txq->sges); in hinic_lb_xmit_frame()
554 struct hinic_dev *nic_dev = netdev_priv(netdev); in hinic_xmit_frame() local
[all …]
H A Dhinic_debugfs.h93 void hinic_sq_dbgfs_init(struct hinic_dev *nic_dev);
95 void hinic_sq_dbgfs_uninit(struct hinic_dev *nic_dev);
97 void hinic_rq_dbgfs_init(struct hinic_dev *nic_dev);
99 void hinic_rq_dbgfs_uninit(struct hinic_dev *nic_dev);
101 void hinic_func_tbl_dbgfs_init(struct hinic_dev *nic_dev);
103 void hinic_func_tbl_dbgfs_uninit(struct hinic_dev *nic_dev);
105 void hinic_dbg_init(struct hinic_dev *nic_dev);
107 void hinic_dbg_uninit(struct hinic_dev *nic_dev);
/linux/drivers/net/ethernet/huawei/hinic3/
H A Dhinic3_main.c37 struct hinic3_nic_dev *nic_dev = netdev_priv(netdev); in init_intr_coal_param() local
41 for (i = 0; i < nic_dev->max_qps; i++) { in init_intr_coal_param()
42 info = &nic_dev->intr_coalesce[i]; in init_intr_coal_param()
53 nic_dev->adaptive_rx_coal = 1; in init_intr_coal_param()
58 struct hinic3_nic_dev *nic_dev = netdev_priv(netdev); in hinic3_init_intr_coalesce() local
60 nic_dev->intr_coalesce = kzalloc_objs(*nic_dev->intr_coalesce, in hinic3_init_intr_coalesce()
61 nic_dev->max_qps); in hinic3_init_intr_coalesce()
63 if (!nic_dev->intr_coalesce) in hinic3_init_intr_coalesce()
73 struct hinic3_nic_dev *nic_dev = netdev_priv(netdev); in hinic3_free_intr_coalesce() local
75 kfree(nic_dev->intr_coalesce); in hinic3_free_intr_coalesce()
[all …]
H A Dhinic3_netdev_ops.c20 #define VLAN_BITMAP_BITS_SIZE(nic_dev) (sizeof(*(nic_dev)->vlan_bitmap) * 8) argument
21 #define VID_LINE(nic_dev, vid) \ argument
22 ((vid) / VLAN_BITMAP_BITS_SIZE(nic_dev))
23 #define VID_COL(nic_dev, vid) \ argument
24 ((vid) & (VLAN_BITMAP_BITS_SIZE(nic_dev) - 1))
32 struct hinic3_nic_dev *nic_dev = netdev_priv(netdev); in hinic3_qp_irq_change() local
38 qps_msix_entries = nic_dev->qps_msix_entries; in hinic3_qp_irq_change()
39 if (dst_num_qp_irq > nic_dev->num_qp_irq) { in hinic3_qp_irq_change()
40 irq_num_gap = dst_num_qp_irq - nic_dev->num_qp_irq; in hinic3_qp_irq_change()
41 err = hinic3_alloc_irqs(nic_dev->hwdev, irq_num_gap, in hinic3_qp_irq_change()
[all …]
H A Dhinic3_irq.c16 static void hinic3_net_dim(struct hinic3_nic_dev *nic_dev, in hinic3_net_dim() argument
22 if (!test_bit(HINIC3_INTF_UP, &nic_dev->flags) || in hinic3_net_dim()
23 !nic_dev->adaptive_rx_coal) in hinic3_net_dim()
35 struct hinic3_nic_dev *nic_dev; in hinic3_poll() local
39 nic_dev = netdev_priv(irq_cfg->netdev); in hinic3_poll()
53 hinic3_net_dim(nic_dev, irq_cfg); in hinic3_poll()
54 hinic3_set_msix_state(nic_dev->hwdev, irq_cfg->msix_entry_idx, in hinic3_poll()
63 struct hinic3_nic_dev *nic_dev = netdev_priv(irq_cfg->netdev); in qp_add_napi() local
65 netif_napi_add(nic_dev->netdev, &irq_cfg->napi, hinic3_poll); in qp_add_napi()
78 struct hinic3_nic_dev *nic_dev; in qp_irq() local
[all …]
H A Dhinic3_filter.c20 struct hinic3_nic_dev *nic_dev = netdev_priv(netdev); in hinic3_filter_addr_sync() local
22 return hinic3_set_mac(nic_dev->hwdev, addr, 0, in hinic3_filter_addr_sync()
23 hinic3_global_func_id(nic_dev->hwdev)); in hinic3_filter_addr_sync()
28 struct hinic3_nic_dev *nic_dev = netdev_priv(netdev); in hinic3_filter_addr_unsync() local
34 return hinic3_del_mac(nic_dev->hwdev, addr, 0, in hinic3_filter_addr_unsync()
35 hinic3_global_func_id(nic_dev->hwdev)); in hinic3_filter_addr_unsync()
40 struct hinic3_nic_dev *nic_dev = netdev_priv(netdev); in hinic3_clean_mac_list_filter() local
44 list_for_each_entry_safe(f, ftmp, &nic_dev->uc_filter_list, list) { in hinic3_clean_mac_list_filter()
51 list_for_each_entry_safe(f, ftmp, &nic_dev->mc_filter_list, list) { in hinic3_clean_mac_list_filter()
75 struct hinic3_nic_dev *nic_dev = netdev_priv(netdev); in hinic3_add_filter() local
[all …]
H A Dhinic3_nic_io.c209 int hinic3_init_nic_io(struct hinic3_nic_dev *nic_dev) in hinic3_init_nic_io() argument
211 struct hinic3_hwdev *hwdev = nic_dev->hwdev; in hinic3_init_nic_io()
219 nic_dev->nic_io = nic_io; in hinic3_init_nic_io()
227 err = hinic3_init_function_table(nic_dev); in hinic3_init_nic_io()
233 nic_io->rx_buf_len = nic_dev->rx_buf_len; in hinic3_init_nic_io()
235 err = hinic3_get_nic_feature_from_hw(nic_dev); in hinic3_init_nic_io()
250 nic_dev->nic_io = NULL; in hinic3_init_nic_io()
256 void hinic3_free_nic_io(struct hinic3_nic_dev *nic_dev) in hinic3_free_nic_io() argument
258 struct hinic3_nic_io *nic_io = nic_dev->nic_io; in hinic3_free_nic_io()
260 hinic3_set_func_svc_used_state(nic_dev->hwdev, COMM_FUNC_SVC_T_NIC, 0); in hinic3_free_nic_io()
[all …]
H A Dhinic3_rx.c63 struct hinic3_nic_dev *nic_dev = netdev_priv(netdev); in hinic3_alloc_rxqs() local
64 struct pci_dev *pdev = nic_dev->pdev; in hinic3_alloc_rxqs()
65 u16 num_rxqs = nic_dev->max_qps; in hinic3_alloc_rxqs()
69 nic_dev->rxqs = kzalloc_objs(*nic_dev->rxqs, num_rxqs); in hinic3_alloc_rxqs()
70 if (!nic_dev->rxqs) in hinic3_alloc_rxqs()
74 rxq = &nic_dev->rxqs[q_id]; in hinic3_alloc_rxqs()
78 rxq->buf_len = nic_dev->rx_buf_len; in hinic3_alloc_rxqs()
79 rxq->buf_len_shift = ilog2(nic_dev->rx_buf_len); in hinic3_alloc_rxqs()
80 rxq->q_depth = nic_dev->q_params.rq_depth; in hinic3_alloc_rxqs()
81 rxq->q_mask = nic_dev->q_params.rq_depth - 1; in hinic3_alloc_rxqs()
[all …]
H A Dhinic3_tx.c46 struct hinic3_nic_dev *nic_dev = netdev_priv(netdev); in hinic3_alloc_txqs() local
47 u16 q_id, num_txqs = nic_dev->max_qps; in hinic3_alloc_txqs()
48 struct pci_dev *pdev = nic_dev->pdev; in hinic3_alloc_txqs()
51 nic_dev->txqs = kzalloc_objs(*nic_dev->txqs, num_txqs); in hinic3_alloc_txqs()
52 if (!nic_dev->txqs) in hinic3_alloc_txqs()
56 txq = &nic_dev->txqs[q_id]; in hinic3_alloc_txqs()
59 txq->q_depth = nic_dev->q_params.sq_depth; in hinic3_alloc_txqs()
60 txq->q_mask = nic_dev->q_params.sq_depth - 1; in hinic3_alloc_txqs()
71 struct hinic3_nic_dev *nic_dev = netdev_priv(netdev); in hinic3_free_txqs() local
73 kfree(nic_dev->txqs); in hinic3_free_txqs()
[all …]