enic: add device ids
[dpdk.git] / lib / librte_pmd_e1000 / igb_ethdev.c
index 4aaa6ec..4415155 100644 (file)
@@ -47,7 +47,6 @@
 #include <rte_ethdev.h>
 #include <rte_memory.h>
 #include <rte_memzone.h>
-#include <rte_tailq.h>
 #include <rte_eal.h>
 #include <rte_atomic.h>
 #include <rte_malloc.h>
@@ -217,26 +216,26 @@ static enum e1000_fc_mode igb_fc_setting = e1000_fc_full;
 /*
  * The set of PCI devices this driver supports
  */
-static struct rte_pci_id pci_id_igb_map[] = {
+static const struct rte_pci_id pci_id_igb_map[] = {
 
 #define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
 #include "rte_pci_dev_ids.h"
 
-{.device_id = 0},
+{0},
 };
 
 /*
  * The set of PCI devices this driver supports (for 82576&I350 VF)
  */
-static struct rte_pci_id pci_id_igbvf_map[] = {
+static const struct rte_pci_id pci_id_igbvf_map[] = {
 
 #define RTE_PCI_DEV_ID_DECL_IGBVF(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
 #include "rte_pci_dev_ids.h"
 
-{.device_id = 0},
+{0},
 };
 
-static struct eth_dev_ops eth_igb_ops = {
+static const struct eth_dev_ops eth_igb_ops = {
        .dev_configure        = eth_igb_configure,
        .dev_start            = eth_igb_start,
        .dev_stop             = eth_igb_stop,
@@ -276,7 +275,7 @@ static struct eth_dev_ops eth_igb_ops = {
  * dev_ops for virtual function, bare necessities for basic vf
  * operation have been implemented
  */
-static struct eth_dev_ops igbvf_eth_dev_ops = {
+static const struct eth_dev_ops igbvf_eth_dev_ops = {
        .dev_configure        = igbvf_dev_configure,
        .dev_start            = igbvf_dev_start,
        .dev_stop             = igbvf_dev_stop,
@@ -946,7 +945,10 @@ eth_igb_stop(struct rte_eth_dev *dev)
        }
 
        /* Power down the phy. Needed to make the link go Down */
-       e1000_power_down_phy(hw);
+       if (hw->phy.media_type == e1000_media_type_copper)
+               e1000_power_down_phy(hw);
+       else
+               e1000_shutdown_fiber_serdes_link(hw);
 
        igb_dev_clear_queues(dev);
 
@@ -2909,7 +2911,7 @@ eth_igb_flex_filter_handle(struct rte_eth_dev *dev,
        struct rte_eth_flex_filter *filter;
        int ret = 0;
 
-       MAC_TYPE_FILTER_SUP(hw->mac.type);
+       MAC_TYPE_FILTER_SUP_EXT(hw->mac.type);
 
        if (filter_op == RTE_ETH_FILTER_NOP)
                return ret;