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);
289 struct rte_eth_dev *eth_dev = (struct rte_eth_dev *)param; in qede_interrupt_handler_intx() local
290 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_interrupt_handler_intx()
299 if (rte_intr_ack(eth_dev->intr_handle)) in qede_interrupt_handler_intx()
307 struct rte_eth_dev *eth_dev = (struct rte_eth_dev *)param; in qede_interrupt_handler() local
308 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_interrupt_handler()
312 if (rte_intr_ack(eth_dev->intr_handle)) in qede_interrupt_handler()
506 int qede_activate_vport(struct rte_eth_dev *eth_dev, bool flg) in qede_activate_vport() argument
508 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_activate_vport()
568 int qede_enable_tpa(struct rte_eth_dev *eth_dev, bool flg) in qede_enable_tpa() argument
570 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_enable_tpa()
594 eth_dev->data->lro = flg; in qede_enable_tpa()
602 qed_configure_filter_rx_mode(struct rte_eth_dev *eth_dev, in qed_configure_filter_rx_mode() argument
605 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qed_configure_filter_rx_mode()
639 qede_ucast_filter(struct rte_eth_dev *eth_dev, struct ecore_filter_ucast *ucast, in qede_ucast_filter() argument
642 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_ucast_filter()
692 qede_add_mcast_filters(struct rte_eth_dev *eth_dev, in qede_add_mcast_filters() argument
696 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_add_mcast_filters()
728 static int qede_del_mcast_filters(struct rte_eth_dev *eth_dev) in qede_del_mcast_filters() argument
730 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_del_mcast_filters()
762 qede_mac_int_ops(struct rte_eth_dev *eth_dev, struct ecore_filter_ucast *ucast, in qede_mac_int_ops() argument
765 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_mac_int_ops()
775 rc = qede_ucast_filter(eth_dev, ucast, add); in qede_mac_int_ops()
790 qede_mac_addr_add(struct rte_eth_dev *eth_dev, struct rte_ether_addr *mac_addr, in qede_mac_addr_add() argument
803 re = (int)qede_mac_int_ops(eth_dev, &ucast, 1); in qede_mac_addr_add()
808 qede_mac_addr_remove(struct rte_eth_dev *eth_dev, uint32_t index) in qede_mac_addr_remove() argument
810 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_mac_addr_remove()
822 if (!rte_is_valid_assigned_ether_addr(ð_dev->data->mac_addrs[index])) in qede_mac_addr_remove()
830 rte_ether_addr_copy(ð_dev->data->mac_addrs[index], in qede_mac_addr_remove()
833 qede_mac_int_ops(eth_dev, &ucast, false); in qede_mac_addr_remove()
837 qede_mac_addr_set(struct rte_eth_dev *eth_dev, struct rte_ether_addr *mac_addr) in qede_mac_addr_set() argument
839 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_mac_addr_set()
848 qede_mac_addr_remove(eth_dev, 0); in qede_mac_addr_set()
850 return qede_mac_addr_add(eth_dev, mac_addr, 0, 0); in qede_mac_addr_set()
879 static int qede_vlan_stripping(struct rte_eth_dev *eth_dev, bool flg) in qede_vlan_stripping() argument
881 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_vlan_stripping()
909 static int qede_vlan_filter_set(struct rte_eth_dev *eth_dev, in qede_vlan_filter_set() argument
912 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_vlan_filter_set()
999 static int qede_vlan_offload_set(struct rte_eth_dev *eth_dev, int mask) in qede_vlan_offload_set() argument
1001 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_vlan_offload_set()
1003 uint64_t rx_offloads = eth_dev->data->dev_conf.rxmode.offloads; in qede_vlan_offload_set()
1007 (void)qede_vlan_stripping(eth_dev, 1); in qede_vlan_offload_set()
1009 (void)qede_vlan_stripping(eth_dev, 0); in qede_vlan_offload_set()
1015 qede_vlan_filter_set(eth_dev, 0, 1); in qede_vlan_offload_set()
1024 eth_dev->data->dev_conf.rxmode.offloads |= in qede_vlan_offload_set()
1027 qede_vlan_filter_set(eth_dev, 0, 0); in qede_vlan_offload_set()
1048 int qede_config_rss(struct rte_eth_dev *eth_dev) in qede_config_rss() argument
1050 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_config_rss()
1057 rss_conf = eth_dev->data->dev_conf.rx_adv_conf.rss_conf; in qede_config_rss()
1066 if (qede_rss_hash_update(eth_dev, &rss_conf)) in qede_config_rss()
1077 q = i % QEDE_RSS_COUNT(eth_dev); in qede_config_rss()
1080 if (qede_rss_reta_update(eth_dev, &reta_conf[0], in qede_config_rss()
1098 static int qede_dev_start(struct rte_eth_dev *eth_dev) in qede_dev_start() argument
1100 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_dev_start()
1102 struct rte_eth_rxmode *rxmode = ð_dev->data->dev_conf.rxmode; in qede_dev_start()
1108 if (qede_update_mtu(eth_dev, qdev->new_mtu)) in qede_dev_start()
1116 if (qede_enable_tpa(eth_dev, true)) in qede_dev_start()
1119 if (!eth_dev->data->scattered_rx) in qede_dev_start()
1124 if (qede_start_queues(eth_dev)) in qede_dev_start()
1135 if (eth_dev->data->dev_conf.rxmode.mq_mode == RTE_ETH_MQ_RX_RSS) in qede_dev_start()
1136 if (qede_config_rss(eth_dev)) in qede_dev_start()
1140 if (qede_activate_vport(eth_dev, true)) in qede_dev_start()
1144 qede_dev_set_link_state(eth_dev, true); in qede_dev_start()
1147 qede_link_update(eth_dev, 0); in qede_dev_start()
1153 qede_assign_rxtx_handlers(eth_dev, false); in qede_dev_start()
1163 static int qede_dev_stop(struct rte_eth_dev *eth_dev) in qede_dev_stop() argument
1165 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_dev_stop()
1169 eth_dev->data->dev_started = 0; in qede_dev_stop()
1172 qede_dev_set_link_state(eth_dev, false); in qede_dev_stop()
1175 qede_link_update(eth_dev, 0); in qede_dev_stop()
1180 qede_assign_rxtx_handlers(eth_dev, true); in qede_dev_stop()
1183 if (qede_activate_vport(eth_dev, false)) in qede_dev_stop()
1187 qede_enable_tpa(eth_dev, false); in qede_dev_stop()
1190 qede_stop_queues(eth_dev); in qede_dev_stop()
1210 struct rte_eth_dev *eth_dev = opaque; in qede_args_check() local
1211 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_args_check()
1232 static int qede_args(struct rte_eth_dev *eth_dev) in qede_args() argument
1234 struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(eth_dev->device); in qede_args()
1252 qede_args_check, eth_dev); in qede_args()
1264 static int qede_dev_configure(struct rte_eth_dev *eth_dev) in qede_dev_configure() argument
1266 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_dev_configure()
1268 struct rte_eth_rxmode *rxmode = ð_dev->data->dev_conf.rxmode; in qede_dev_configure()
1281 if (eth_dev->data->nb_rx_queues == 0) { in qede_dev_configure()
1290 if (qede_args(eth_dev)) in qede_dev_configure()
1300 if (qede_check_fdir_support(eth_dev)) in qede_dev_configure()
1304 num_txqs = eth_dev->data->nb_tx_queues * edev->num_hwfns; in qede_dev_configure()
1305 num_rxqs = eth_dev->data->nb_rx_queues * edev->num_hwfns; in qede_dev_configure()
1308 qede_dealloc_fp_resc(eth_dev); in qede_dev_configure()
1316 eth_dev->data->scattered_rx = 1; in qede_dev_configure()
1318 if (qede_start_vport(qdev, eth_dev->data->mtu)) in qede_dev_configure()
1321 qdev->mtu = eth_dev->data->mtu; in qede_dev_configure()
1324 ret = qede_vlan_offload_set(eth_dev, RTE_ETH_VLAN_STRIP_MASK | in qede_dev_configure()
1330 QEDE_RSS_COUNT(eth_dev), QEDE_TSS_COUNT(eth_dev)); in qede_dev_configure()
1356 qede_dev_info_get(struct rte_eth_dev *eth_dev, in qede_dev_info_get() argument
1359 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_dev_info_get()
1446 qede_link_update(struct rte_eth_dev *eth_dev, __rte_unused int wait_to_complete) in qede_link_update() argument
1448 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_link_update()
1487 return rte_eth_linkstatus_set(eth_dev, &link); in qede_link_update()
1490 static int qede_promiscuous_enable(struct rte_eth_dev *eth_dev) in qede_promiscuous_enable() argument
1493 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_promiscuous_enable()
1499 ecore_status = qed_configure_filter_rx_mode(eth_dev, type); in qede_promiscuous_enable()
1504 static int qede_promiscuous_disable(struct rte_eth_dev *eth_dev) in qede_promiscuous_disable() argument
1506 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_promiscuous_disable()
1512 if (rte_eth_allmulticast_get(eth_dev->data->port_id) == 1) in qede_promiscuous_disable()
1513 ecore_status = qed_configure_filter_rx_mode(eth_dev, in qede_promiscuous_disable()
1516 ecore_status = qed_configure_filter_rx_mode(eth_dev, in qede_promiscuous_disable()
1524 struct rte_eth_dev *eth_dev = (struct rte_eth_dev *)param; in qede_poll_sp_sb_cb() local
1525 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_poll_sp_sb_cb()
1534 (void *)eth_dev); in qede_poll_sp_sb_cb()
1541 static int qede_dev_close(struct rte_eth_dev *eth_dev) in qede_dev_close() argument
1543 struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev); in qede_dev_close()
1544 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_dev_close()
1559 if (eth_dev->data->dev_started) in qede_dev_close()
1560 ret = qede_dev_stop(eth_dev); in qede_dev_close()
1565 qede_fdir_dealloc_resc(eth_dev); in qede_dev_close()
1566 qede_dealloc_fp_resc(eth_dev); in qede_dev_close()
1568 eth_dev->data->nb_rx_queues = 0; in qede_dev_close()
1569 eth_dev->data->nb_tx_queues = 0; in qede_dev_close()
1580 (void *)eth_dev); in qede_dev_close()
1585 (void *)eth_dev); in qede_dev_close()
1589 rte_eal_alarm_cancel(qede_poll_sp_sb_cb, (void *)eth_dev); in qede_dev_close()
1595 qede_get_stats(struct rte_eth_dev *eth_dev, struct rte_eth_stats *eth_stats) in qede_get_stats() argument
1597 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_get_stats()
1636 rxq_stat_cntrs = RTE_MIN(QEDE_RSS_COUNT(eth_dev), in qede_get_stats()
1638 txq_stat_cntrs = RTE_MIN(QEDE_TSS_COUNT(eth_dev), in qede_get_stats()
1640 if (rxq_stat_cntrs != (unsigned int)QEDE_RSS_COUNT(eth_dev) || in qede_get_stats()
1641 txq_stat_cntrs != (unsigned int)QEDE_TSS_COUNT(eth_dev)) in qede_get_stats()
1647 for (qid = 0; qid < eth_dev->data->nb_rx_queues; qid++) { in qede_get_stats()
1675 for (qid = 0; qid < eth_dev->data->nb_tx_queues; qid++) { in qede_get_stats()
1835 int qede_dev_set_link_state(struct rte_eth_dev *eth_dev, bool link_up) in qede_dev_set_link_state() argument
1837 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_dev_set_link_state()
1852 static int qede_dev_set_link_up(struct rte_eth_dev *eth_dev) in qede_dev_set_link_up() argument
1854 return qede_dev_set_link_state(eth_dev, true); in qede_dev_set_link_up()
1857 static int qede_dev_set_link_down(struct rte_eth_dev *eth_dev) in qede_dev_set_link_down() argument
1859 return qede_dev_set_link_state(eth_dev, false); in qede_dev_set_link_down()
1862 static int qede_reset_stats(struct rte_eth_dev *eth_dev) in qede_reset_stats() argument
1864 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_reset_stats()
1873 static int qede_allmulticast_enable(struct rte_eth_dev *eth_dev) in qede_allmulticast_enable() argument
1879 if (rte_eth_promiscuous_get(eth_dev->data->port_id) == 1) in qede_allmulticast_enable()
1881 ecore_status = qed_configure_filter_rx_mode(eth_dev, type); in qede_allmulticast_enable()
1886 static int qede_allmulticast_disable(struct rte_eth_dev *eth_dev) in qede_allmulticast_disable() argument
1890 if (rte_eth_promiscuous_get(eth_dev->data->port_id) == 1) in qede_allmulticast_disable()
1891 ecore_status = qed_configure_filter_rx_mode(eth_dev, in qede_allmulticast_disable()
1894 ecore_status = qed_configure_filter_rx_mode(eth_dev, in qede_allmulticast_disable()
1901 qede_set_mc_addr_list(struct rte_eth_dev *eth_dev, in qede_set_mc_addr_list() argument
1905 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_set_mc_addr_list()
1923 if (qede_del_mcast_filters(eth_dev)) in qede_set_mc_addr_list()
1927 return qede_add_mcast_filters(eth_dev, mc_addrs, mc_addrs_num); in qede_set_mc_addr_list()
1933 int qede_update_mtu(struct rte_eth_dev *eth_dev, uint16_t mtu) in qede_update_mtu() argument
1935 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_update_mtu()
1968 if (eth_dev->data->promiscuous) in qede_update_mtu()
1969 qede_promiscuous_enable(eth_dev); in qede_update_mtu()
1971 qede_promiscuous_disable(eth_dev); in qede_update_mtu()
1973 if (eth_dev->data->all_multicast) in qede_update_mtu()
1974 qede_allmulticast_enable(eth_dev); in qede_update_mtu()
1976 qede_allmulticast_disable(eth_dev); in qede_update_mtu()
1978 qede_vlan_offload_set(eth_dev, in qede_update_mtu()
1994 static int qede_flow_ctrl_set(struct rte_eth_dev *eth_dev, in qede_flow_ctrl_set() argument
1997 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_flow_ctrl_set()
2030 static int qede_flow_ctrl_get(struct rte_eth_dev *eth_dev, in qede_flow_ctrl_get() argument
2033 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_flow_ctrl_get()
2057 qede_dev_supported_ptypes_get(struct rte_eth_dev *eth_dev) in qede_dev_supported_ptypes_get() argument
2081 if (eth_dev->rx_pkt_burst == qede_recv_pkts || in qede_dev_supported_ptypes_get()
2082 eth_dev->rx_pkt_burst == qede_recv_pkts_regular || in qede_dev_supported_ptypes_get()
2083 eth_dev->rx_pkt_burst == qede_recv_pkts_cmt) in qede_dev_supported_ptypes_get()
2102 int qede_rss_hash_update(struct rte_eth_dev *eth_dev, in qede_rss_hash_update() argument
2105 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_rss_hash_update()
2153 idx = j % QEDE_RSS_COUNT(eth_dev); in qede_rss_hash_update()
2198 static int qede_rss_hash_conf_get(struct rte_eth_dev *eth_dev, in qede_rss_hash_conf_get() argument
2201 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_rss_hash_conf_get()
2212 int qede_rss_reta_update(struct rte_eth_dev *eth_dev, in qede_rss_reta_update() argument
2216 struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev); in qede_rss_reta_update()
2277 static int qede_rss_reta_query(struct rte_eth_dev *eth_dev, in qede_rss_reta_query() argument
2281 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_rss_reta_query()
2497 static int qede_common_dev_init(struct rte_eth_dev *eth_dev, bool is_vf) in qede_common_dev_init() argument
2517 adapter = eth_dev->data->dev_private; in qede_common_dev_init()
2518 adapter->ethdev = eth_dev; in qede_common_dev_init()
2520 pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev); in qede_common_dev_init()
2527 eth_dev->data->port_id); in qede_common_dev_init()
2534 rte_eth_copy_pci_info(eth_dev, pci_dev); in qede_common_dev_init()
2535 eth_dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS; in qede_common_dev_init()
2564 (void *)eth_dev); in qede_common_dev_init()
2570 (void *)eth_dev); in qede_common_dev_init()
2590 qede_assign_rxtx_handlers(eth_dev, true); in qede_common_dev_init()
2591 eth_dev->tx_pkt_prepare = qede_xmit_prep_pkts; in qede_common_dev_init()
2600 (void *)eth_dev); in qede_common_dev_init()
2613 (void *)eth_dev); in qede_common_dev_init()
2624 (void *)eth_dev); in qede_common_dev_init()
2632 qede_print_adapter_info(eth_dev); in qede_common_dev_init()
2647 eth_dev->data->mac_addrs = rte_zmalloc(edev->name, in qede_common_dev_init()
2652 if (eth_dev->data->mac_addrs == NULL) { in qede_common_dev_init()
2657 (void *)eth_dev); in qede_common_dev_init()
2664 ð_dev->data->mac_addrs[0]); in qede_common_dev_init()
2665 rte_ether_addr_copy(ð_dev->data->mac_addrs[0], in qede_common_dev_init()
2680 ð_dev->data->mac_addrs[0]); in qede_common_dev_init()
2682 ð_dev->data->mac_addrs[0], in qede_common_dev_init()
2697 ð_dev->data->mac_addrs[0]); in qede_common_dev_init()
2699 rte_ether_addr_copy(ð_dev->data->mac_addrs[0], in qede_common_dev_init()
2704 eth_dev->dev_ops = (is_vf) ? &qede_eth_vf_dev_ops : &qede_eth_dev_ops; in qede_common_dev_init()
2705 eth_dev->rx_descriptor_status = qede_rx_descriptor_status; in qede_common_dev_init()
2748 qede_print_adapter_info(eth_dev); in qede_common_dev_init()
2754 static int qedevf_eth_dev_init(struct rte_eth_dev *eth_dev) in qedevf_eth_dev_init() argument
2756 return qede_common_dev_init(eth_dev, 1); in qedevf_eth_dev_init()
2759 static int qede_eth_dev_init(struct rte_eth_dev *eth_dev) in qede_eth_dev_init() argument
2761 return qede_common_dev_init(eth_dev, 0); in qede_eth_dev_init()
2764 static int qede_dev_common_uninit(struct rte_eth_dev *eth_dev) in qede_dev_common_uninit() argument
2766 struct qede_dev *qdev = eth_dev->data->dev_private; in qede_dev_common_uninit()
2769 qede_dev_close(eth_dev); in qede_dev_common_uninit()
2773 static int qede_eth_dev_uninit(struct rte_eth_dev *eth_dev) in qede_eth_dev_uninit() argument
2775 return qede_dev_common_uninit(eth_dev); in qede_eth_dev_uninit()
2778 static int qedevf_eth_dev_uninit(struct rte_eth_dev *eth_dev) in qedevf_eth_dev_uninit() argument
2780 return qede_dev_common_uninit(eth_dev); in qedevf_eth_dev_uninit()