ethdev: decouple from PCI device
[dpdk.git] / drivers / net / vmxnet3 / vmxnet3_ethdev.c
index 3a4c777..9c4d93c 100644 (file)
@@ -138,7 +138,7 @@ gpa_zone_reserve(struct rte_eth_dev *dev, uint32_t size,
        const struct rte_memzone *mz;
 
        snprintf(z_name, sizeof(z_name), "%s_%d_%s",
-                dev->driver->pci_drv.driver.name, dev->data->port_id, post_string);
+                dev->data->drv_name, dev->data->port_id, post_string);
 
        mz = rte_memzone_lookup(z_name);
        if (!reuse) {
@@ -237,7 +237,7 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev)
        eth_dev->dev_ops = &vmxnet3_eth_dev_ops;
        eth_dev->rx_pkt_burst = &vmxnet3_recv_pkts;
        eth_dev->tx_pkt_burst = &vmxnet3_xmit_pkts;
-       pci_dev = eth_dev->pci_dev;
+       pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
 
        /*
         * for secondary processes, we don't initialize any further as primary
@@ -527,6 +527,11 @@ vmxnet3_setup_driver_shared(struct rte_eth_dev *dev)
        if (dev->data->dev_conf.rxmode.hw_ip_checksum)
                devRead->misc.uptFeatures |= VMXNET3_F_RXCSUM;
 
+       if (dev->data->dev_conf.rxmode.enable_lro) {
+               devRead->misc.uptFeatures |= VMXNET3_F_LRO;
+               devRead->misc.maxNumRxSG = 0;
+       }
+
        if (port_conf.rxmode.mq_mode == ETH_MQ_RX_RSS) {
                ret = vmxnet3_rss_configure(dev);
                if (ret != VMXNET3_SUCCESS)
@@ -701,9 +706,11 @@ vmxnet3_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
 }
 
 static void
-vmxnet3_dev_info_get(__rte_unused struct rte_eth_dev *dev,
+vmxnet3_dev_info_get(struct rte_eth_dev *dev,
                     struct rte_eth_dev_info *dev_info)
 {
+       dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+
        dev_info->max_rx_queues = VMXNET3_MAX_RX_QUEUES;
        dev_info->max_tx_queues = VMXNET3_MAX_TX_QUEUES;
        dev_info->min_rx_bufsize = 1518 + RTE_PKTMBUF_HEADROOM;
@@ -728,7 +735,8 @@ vmxnet3_dev_info_get(__rte_unused struct rte_eth_dev *dev,
        dev_info->rx_offload_capa =
                DEV_RX_OFFLOAD_VLAN_STRIP |
                DEV_RX_OFFLOAD_UDP_CKSUM |
-               DEV_RX_OFFLOAD_TCP_CKSUM;
+               DEV_RX_OFFLOAD_TCP_CKSUM |
+               DEV_RX_OFFLOAD_TCP_LRO;
 
        dev_info->tx_offload_capa =
                DEV_TX_OFFLOAD_VLAN_INSERT |
@@ -954,5 +962,6 @@ vmxnet3_process_events(struct vmxnet3_hw *hw)
 }
 #endif
 
-DRIVER_REGISTER_PCI(net_vmxnet3, rte_vmxnet3_pmd.pci_drv);
-DRIVER_REGISTER_PCI_TABLE(net_vmxnet3, pci_id_vmxnet3_map);
+RTE_PMD_REGISTER_PCI(net_vmxnet3, rte_vmxnet3_pmd.pci_drv);
+RTE_PMD_REGISTER_PCI_TABLE(net_vmxnet3, pci_id_vmxnet3_map);
+RTE_PMD_REGISTER_KMOD_DEP(net_vmxnet3, "* igb_uio | uio_pci_generic | vfio");