Lines Matching refs:eth_dev

13 static int qede_eth_dev_uninit(struct rte_eth_dev *eth_dev);
14 static int qede_eth_dev_init(struct rte_eth_dev *eth_dev);
292 struct rte_eth_dev *eth_dev = (struct rte_eth_dev *)param; in qede_interrupt_handler_intx() local
293 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_interrupt_handler_intx()
302 if (rte_intr_ack(eth_dev->intr_handle)) in qede_interrupt_handler_intx()
310 struct rte_eth_dev *eth_dev = (struct rte_eth_dev *)param; in qede_interrupt_handler() local
311 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_interrupt_handler()
315 if (rte_intr_ack(eth_dev->intr_handle)) in qede_interrupt_handler()
509 int qede_activate_vport(struct rte_eth_dev *eth_dev, bool flg) in qede_activate_vport() argument
511 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_activate_vport()
571 int qede_enable_tpa(struct rte_eth_dev *eth_dev, bool flg) in qede_enable_tpa() argument
573 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_enable_tpa()
597 eth_dev->data->lro = flg; in qede_enable_tpa()
605 qed_configure_filter_rx_mode(struct rte_eth_dev *eth_dev, in qed_configure_filter_rx_mode() argument
608 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qed_configure_filter_rx_mode()
642 qede_ucast_filter(struct rte_eth_dev *eth_dev, struct ecore_filter_ucast *ucast, in qede_ucast_filter() argument
645 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_ucast_filter()
695 qede_add_mcast_filters(struct rte_eth_dev *eth_dev, in qede_add_mcast_filters() argument
699 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_add_mcast_filters()
731 static int qede_del_mcast_filters(struct rte_eth_dev *eth_dev) in qede_del_mcast_filters() argument
733 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_del_mcast_filters()
765 qede_mac_int_ops(struct rte_eth_dev *eth_dev, struct ecore_filter_ucast *ucast, in qede_mac_int_ops() argument
768 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_mac_int_ops()
778 rc = qede_ucast_filter(eth_dev, ucast, add); in qede_mac_int_ops()
793 qede_mac_addr_add(struct rte_eth_dev *eth_dev, struct rte_ether_addr *mac_addr, in qede_mac_addr_add() argument
806 re = (int)qede_mac_int_ops(eth_dev, &ucast, 1); in qede_mac_addr_add()
811 qede_mac_addr_remove(struct rte_eth_dev *eth_dev, uint32_t index) in qede_mac_addr_remove() argument
813 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_mac_addr_remove()
825 if (!rte_is_valid_assigned_ether_addr(&eth_dev->data->mac_addrs[index])) in qede_mac_addr_remove()
833 rte_ether_addr_copy(&eth_dev->data->mac_addrs[index], in qede_mac_addr_remove()
836 qede_mac_int_ops(eth_dev, &ucast, false); in qede_mac_addr_remove()
840 qede_mac_addr_set(struct rte_eth_dev *eth_dev, struct rte_ether_addr *mac_addr) in qede_mac_addr_set() argument
842 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_mac_addr_set()
851 qede_mac_addr_remove(eth_dev, 0); in qede_mac_addr_set()
853 return qede_mac_addr_add(eth_dev, mac_addr, 0, 0); in qede_mac_addr_set()
882 static int qede_vlan_stripping(struct rte_eth_dev *eth_dev, bool flg) in qede_vlan_stripping() argument
884 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_vlan_stripping()
912 static int qede_vlan_filter_set(struct rte_eth_dev *eth_dev, in qede_vlan_filter_set() argument
915 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_vlan_filter_set()
1002 static int qede_vlan_offload_set(struct rte_eth_dev *eth_dev, int mask) in qede_vlan_offload_set() argument
1004 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_vlan_offload_set()
1006 uint64_t rx_offloads = eth_dev->data->dev_conf.rxmode.offloads; in qede_vlan_offload_set()
1010 (void)qede_vlan_stripping(eth_dev, 1); in qede_vlan_offload_set()
1012 (void)qede_vlan_stripping(eth_dev, 0); in qede_vlan_offload_set()
1018 qede_vlan_filter_set(eth_dev, 0, 1); in qede_vlan_offload_set()
1027 eth_dev->data->dev_conf.rxmode.offloads |= in qede_vlan_offload_set()
1030 qede_vlan_filter_set(eth_dev, 0, 0); in qede_vlan_offload_set()
1051 int qede_config_rss(struct rte_eth_dev *eth_dev) in qede_config_rss() argument
1053 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_config_rss()
1060 rss_conf = eth_dev->data->dev_conf.rx_adv_conf.rss_conf; in qede_config_rss()
1069 if (qede_rss_hash_update(eth_dev, &rss_conf)) in qede_config_rss()
1080 q = i % QEDE_RSS_COUNT(eth_dev); in qede_config_rss()
1083 if (qede_rss_reta_update(eth_dev, &reta_conf[0], in qede_config_rss()
1101 static int qede_dev_start(struct rte_eth_dev *eth_dev) in qede_dev_start() argument
1103 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_dev_start()
1105 struct rte_eth_rxmode *rxmode = &eth_dev->data->dev_conf.rxmode; in qede_dev_start()
1111 if (qede_update_mtu(eth_dev, qdev->new_mtu)) in qede_dev_start()
1119 if (qede_enable_tpa(eth_dev, true)) in qede_dev_start()
1122 if (!eth_dev->data->scattered_rx) in qede_dev_start()
1127 if (qede_start_queues(eth_dev)) in qede_dev_start()
1138 if (eth_dev->data->dev_conf.rxmode.mq_mode == ETH_MQ_RX_RSS) in qede_dev_start()
1139 if (qede_config_rss(eth_dev)) in qede_dev_start()
1143 if (qede_activate_vport(eth_dev, true)) in qede_dev_start()
1147 qede_dev_set_link_state(eth_dev, true); in qede_dev_start()
1150 qede_link_update(eth_dev, 0); in qede_dev_start()
1156 qede_assign_rxtx_handlers(eth_dev, false); in qede_dev_start()
1166 static int qede_dev_stop(struct rte_eth_dev *eth_dev) in qede_dev_stop() argument
1168 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_dev_stop()
1172 eth_dev->data->dev_started = 0; in qede_dev_stop()
1175 qede_dev_set_link_state(eth_dev, false); in qede_dev_stop()
1178 qede_link_update(eth_dev, 0); in qede_dev_stop()
1183 qede_assign_rxtx_handlers(eth_dev, true); in qede_dev_stop()
1186 if (qede_activate_vport(eth_dev, false)) in qede_dev_stop()
1190 qede_enable_tpa(eth_dev, false); in qede_dev_stop()
1193 qede_stop_queues(eth_dev); in qede_dev_stop()
1213 struct rte_eth_dev *eth_dev = opaque; in qede_args_check() local
1214 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_args_check()
1235 static int qede_args(struct rte_eth_dev *eth_dev) in qede_args() argument
1237 struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(eth_dev->device); in qede_args()
1255 qede_args_check, eth_dev); in qede_args()
1267 static int qede_dev_configure(struct rte_eth_dev *eth_dev) in qede_dev_configure() argument
1269 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_dev_configure()
1271 struct rte_eth_rxmode *rxmode = &eth_dev->data->dev_conf.rxmode; in qede_dev_configure()
1284 if (eth_dev->data->nb_rx_queues == 0) { in qede_dev_configure()
1293 if (qede_args(eth_dev)) in qede_dev_configure()
1303 if (qede_check_fdir_support(eth_dev)) in qede_dev_configure()
1307 num_txqs = eth_dev->data->nb_tx_queues * edev->num_hwfns; in qede_dev_configure()
1308 num_rxqs = eth_dev->data->nb_rx_queues * edev->num_hwfns; in qede_dev_configure()
1311 qede_dealloc_fp_resc(eth_dev); in qede_dev_configure()
1320 eth_dev->data->mtu = in qede_dev_configure()
1321 eth_dev->data->dev_conf.rxmode.max_rx_pkt_len - in qede_dev_configure()
1325 eth_dev->data->scattered_rx = 1; in qede_dev_configure()
1327 if (qede_start_vport(qdev, eth_dev->data->mtu)) in qede_dev_configure()
1330 qdev->mtu = eth_dev->data->mtu; in qede_dev_configure()
1333 ret = qede_vlan_offload_set(eth_dev, ETH_VLAN_STRIP_MASK | in qede_dev_configure()
1339 QEDE_RSS_COUNT(eth_dev), QEDE_TSS_COUNT(eth_dev)); in qede_dev_configure()
1365 qede_dev_info_get(struct rte_eth_dev *eth_dev, in qede_dev_info_get() argument
1368 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_dev_info_get()
1455 qede_link_update(struct rte_eth_dev *eth_dev, __rte_unused int wait_to_complete) in qede_link_update() argument
1457 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_link_update()
1496 return rte_eth_linkstatus_set(eth_dev, &link); in qede_link_update()
1499 static int qede_promiscuous_enable(struct rte_eth_dev *eth_dev) in qede_promiscuous_enable() argument
1502 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_promiscuous_enable()
1508 ecore_status = qed_configure_filter_rx_mode(eth_dev, type); in qede_promiscuous_enable()
1513 static int qede_promiscuous_disable(struct rte_eth_dev *eth_dev) in qede_promiscuous_disable() argument
1515 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_promiscuous_disable()
1521 if (rte_eth_allmulticast_get(eth_dev->data->port_id) == 1) in qede_promiscuous_disable()
1522 ecore_status = qed_configure_filter_rx_mode(eth_dev, in qede_promiscuous_disable()
1525 ecore_status = qed_configure_filter_rx_mode(eth_dev, in qede_promiscuous_disable()
1533 struct rte_eth_dev *eth_dev = (struct rte_eth_dev *)param; in qede_poll_sp_sb_cb() local
1534 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_poll_sp_sb_cb()
1543 (void *)eth_dev); in qede_poll_sp_sb_cb()
1550 static int qede_dev_close(struct rte_eth_dev *eth_dev) in qede_dev_close() argument
1552 struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev); in qede_dev_close()
1553 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_dev_close()
1568 if (eth_dev->data->dev_started) in qede_dev_close()
1569 ret = qede_dev_stop(eth_dev); in qede_dev_close()
1574 qede_fdir_dealloc_resc(eth_dev); in qede_dev_close()
1575 qede_dealloc_fp_resc(eth_dev); in qede_dev_close()
1577 eth_dev->data->nb_rx_queues = 0; in qede_dev_close()
1578 eth_dev->data->nb_tx_queues = 0; in qede_dev_close()
1589 (void *)eth_dev); in qede_dev_close()
1594 (void *)eth_dev); in qede_dev_close()
1598 rte_eal_alarm_cancel(qede_poll_sp_sb_cb, (void *)eth_dev); in qede_dev_close()
1604 qede_get_stats(struct rte_eth_dev *eth_dev, struct rte_eth_stats *eth_stats) in qede_get_stats() argument
1606 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_get_stats()
1645 rxq_stat_cntrs = RTE_MIN(QEDE_RSS_COUNT(eth_dev), in qede_get_stats()
1647 txq_stat_cntrs = RTE_MIN(QEDE_TSS_COUNT(eth_dev), in qede_get_stats()
1649 if (rxq_stat_cntrs != (unsigned int)QEDE_RSS_COUNT(eth_dev) || in qede_get_stats()
1650 txq_stat_cntrs != (unsigned int)QEDE_TSS_COUNT(eth_dev)) in qede_get_stats()
1656 for (qid = 0; qid < eth_dev->data->nb_rx_queues; qid++) { in qede_get_stats()
1684 for (qid = 0; qid < eth_dev->data->nb_tx_queues; qid++) { in qede_get_stats()
1844 int qede_dev_set_link_state(struct rte_eth_dev *eth_dev, bool link_up) in qede_dev_set_link_state() argument
1846 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_dev_set_link_state()
1861 static int qede_dev_set_link_up(struct rte_eth_dev *eth_dev) in qede_dev_set_link_up() argument
1863 return qede_dev_set_link_state(eth_dev, true); in qede_dev_set_link_up()
1866 static int qede_dev_set_link_down(struct rte_eth_dev *eth_dev) in qede_dev_set_link_down() argument
1868 return qede_dev_set_link_state(eth_dev, false); in qede_dev_set_link_down()
1871 static int qede_reset_stats(struct rte_eth_dev *eth_dev) in qede_reset_stats() argument
1873 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_reset_stats()
1882 static int qede_allmulticast_enable(struct rte_eth_dev *eth_dev) in qede_allmulticast_enable() argument
1888 ecore_status = qed_configure_filter_rx_mode(eth_dev, type); in qede_allmulticast_enable()
1893 static int qede_allmulticast_disable(struct rte_eth_dev *eth_dev) in qede_allmulticast_disable() argument
1897 if (rte_eth_promiscuous_get(eth_dev->data->port_id) == 1) in qede_allmulticast_disable()
1898 ecore_status = qed_configure_filter_rx_mode(eth_dev, in qede_allmulticast_disable()
1901 ecore_status = qed_configure_filter_rx_mode(eth_dev, in qede_allmulticast_disable()
1908 qede_set_mc_addr_list(struct rte_eth_dev *eth_dev, in qede_set_mc_addr_list() argument
1912 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_set_mc_addr_list()
1930 if (qede_del_mcast_filters(eth_dev)) in qede_set_mc_addr_list()
1934 return qede_add_mcast_filters(eth_dev, mc_addrs, mc_addrs_num); in qede_set_mc_addr_list()
1940 int qede_update_mtu(struct rte_eth_dev *eth_dev, uint16_t mtu) in qede_update_mtu() argument
1942 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_update_mtu()
1975 if (eth_dev->data->promiscuous) in qede_update_mtu()
1976 qede_promiscuous_enable(eth_dev); in qede_update_mtu()
1978 qede_promiscuous_disable(eth_dev); in qede_update_mtu()
1980 if (eth_dev->data->all_multicast) in qede_update_mtu()
1981 qede_allmulticast_enable(eth_dev); in qede_update_mtu()
1983 qede_allmulticast_disable(eth_dev); in qede_update_mtu()
1985 qede_vlan_offload_set(eth_dev, in qede_update_mtu()
2001 static int qede_flow_ctrl_set(struct rte_eth_dev *eth_dev, in qede_flow_ctrl_set() argument
2004 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_flow_ctrl_set()
2037 static int qede_flow_ctrl_get(struct rte_eth_dev *eth_dev, in qede_flow_ctrl_get() argument
2040 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_flow_ctrl_get()
2064 qede_dev_supported_ptypes_get(struct rte_eth_dev *eth_dev) in qede_dev_supported_ptypes_get() argument
2088 if (eth_dev->rx_pkt_burst == qede_recv_pkts || in qede_dev_supported_ptypes_get()
2089 eth_dev->rx_pkt_burst == qede_recv_pkts_regular || in qede_dev_supported_ptypes_get()
2090 eth_dev->rx_pkt_burst == qede_recv_pkts_cmt) in qede_dev_supported_ptypes_get()
2109 int qede_rss_hash_update(struct rte_eth_dev *eth_dev, in qede_rss_hash_update() argument
2112 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_rss_hash_update()
2158 idx = j % QEDE_RSS_COUNT(eth_dev); in qede_rss_hash_update()
2203 static int qede_rss_hash_conf_get(struct rte_eth_dev *eth_dev, in qede_rss_hash_conf_get() argument
2206 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_rss_hash_conf_get()
2217 int qede_rss_reta_update(struct rte_eth_dev *eth_dev, in qede_rss_reta_update() argument
2221 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_rss_reta_update()
2282 static int qede_rss_reta_query(struct rte_eth_dev *eth_dev, in qede_rss_reta_query() argument
2286 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_rss_reta_query()
2510 static int qede_common_dev_init(struct rte_eth_dev *eth_dev, bool is_vf) in qede_common_dev_init() argument
2530 adapter = eth_dev->data->dev_private; in qede_common_dev_init()
2531 adapter->ethdev = eth_dev; in qede_common_dev_init()
2533 pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev); in qede_common_dev_init()
2540 eth_dev->data->port_id); in qede_common_dev_init()
2547 rte_eth_copy_pci_info(eth_dev, pci_dev); in qede_common_dev_init()
2548 eth_dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS; in qede_common_dev_init()
2577 (void *)eth_dev); in qede_common_dev_init()
2583 (void *)eth_dev); in qede_common_dev_init()
2603 qede_assign_rxtx_handlers(eth_dev, true); in qede_common_dev_init()
2604 eth_dev->tx_pkt_prepare = qede_xmit_prep_pkts; in qede_common_dev_init()
2613 (void *)eth_dev); in qede_common_dev_init()
2626 (void *)eth_dev); in qede_common_dev_init()
2637 (void *)eth_dev); in qede_common_dev_init()
2645 qede_print_adapter_info(eth_dev); in qede_common_dev_init()
2660 eth_dev->data->mac_addrs = rte_zmalloc(edev->name, in qede_common_dev_init()
2665 if (eth_dev->data->mac_addrs == NULL) { in qede_common_dev_init()
2670 (void *)eth_dev); in qede_common_dev_init()
2677 &eth_dev->data->mac_addrs[0]); in qede_common_dev_init()
2678 rte_ether_addr_copy(&eth_dev->data->mac_addrs[0], in qede_common_dev_init()
2693 &eth_dev->data->mac_addrs[0]); in qede_common_dev_init()
2695 &eth_dev->data->mac_addrs[0], in qede_common_dev_init()
2710 &eth_dev->data->mac_addrs[0]); in qede_common_dev_init()
2712 rte_ether_addr_copy(&eth_dev->data->mac_addrs[0], in qede_common_dev_init()
2717 eth_dev->dev_ops = (is_vf) ? &qede_eth_vf_dev_ops : &qede_eth_dev_ops; in qede_common_dev_init()
2718 eth_dev->rx_descriptor_status = qede_rx_descriptor_status; in qede_common_dev_init()
2766 qede_print_adapter_info(eth_dev); in qede_common_dev_init()
2772 static int qedevf_eth_dev_init(struct rte_eth_dev *eth_dev) in qedevf_eth_dev_init() argument
2774 return qede_common_dev_init(eth_dev, 1); in qedevf_eth_dev_init()
2777 static int qede_eth_dev_init(struct rte_eth_dev *eth_dev) in qede_eth_dev_init() argument
2779 return qede_common_dev_init(eth_dev, 0); in qede_eth_dev_init()
2782 static int qede_dev_common_uninit(struct rte_eth_dev *eth_dev) in qede_dev_common_uninit() argument
2784 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_dev_common_uninit()
2787 qede_dev_close(eth_dev); in qede_dev_common_uninit()
2791 static int qede_eth_dev_uninit(struct rte_eth_dev *eth_dev) in qede_eth_dev_uninit() argument
2793 return qede_dev_common_uninit(eth_dev); in qede_eth_dev_uninit()
2796 static int qedevf_eth_dev_uninit(struct rte_eth_dev *eth_dev) in qedevf_eth_dev_uninit() argument
2798 return qede_dev_common_uninit(eth_dev); in qedevf_eth_dev_uninit()