Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux...
[sfrench/cifs-2.6.git] / drivers / net / benet / be.h
index 3b79a225628aedea1bd7d3683bc7948f5db2264a..9e56014d27edad57c88bb19f36eb05559f28c344 100644 (file)
 
 #include "be_hw.h"
 
-#define DRV_VER                        "2.101.205"
+#define DRV_VER                        "2.101.346u"
 #define DRV_NAME               "be2net"
 #define BE_NAME                        "ServerEngines BladeEngine2 10Gbps NIC"
+#define BE3_NAME               "ServerEngines BladeEngine3 10Gbps NIC"
 #define OC_NAME                        "Emulex OneConnect 10Gbps NIC"
+#define OC_NAME1               "Emulex OneConnect 10Gbps NIC (be3)"
 #define DRV_DESC               BE_NAME "Driver"
 
 #define BE_VENDOR_ID           0x19a2
 #define BE_DEVICE_ID1          0x211
+#define BE_DEVICE_ID2          0x221
 #define OC_DEVICE_ID1          0x700
 #define OC_DEVICE_ID2          0x701
+#define OC_DEVICE_ID3          0x710
 
 static inline char *nic_name(struct pci_dev *pdev)
 {
-       if (pdev->device == OC_DEVICE_ID1 || pdev->device == OC_DEVICE_ID2)
+       switch (pdev->device) {
+       case OC_DEVICE_ID1:
+       case OC_DEVICE_ID2:
                return OC_NAME;
-       else
+       case OC_DEVICE_ID3:
+               return OC_NAME1;
+       case BE_DEVICE_ID2:
+               return BE3_NAME;
+       default:
                return BE_NAME;
+       }
 }
 
 /* Number of bytes of an RX frame that are copied to skb->data */
@@ -159,7 +170,7 @@ struct be_drvr_stats {
        u32 cache_barrier[16];
 
        u32 be_ethrx_post_fail;/* number of ethrx buffer alloc failures */
-       u32 be_polls;           /* number of times NAPI called poll function */
+       u32 be_rx_polls;        /* number of times NAPI called poll function */
        u32 be_rx_events;       /* number of ucast rx completion events  */
        u32 be_rx_compl;        /* number of rx completion entries processed */
        ulong be_rx_jiffies;
@@ -181,7 +192,6 @@ struct be_drvr_stats {
 
 struct be_stats_obj {
        struct be_drvr_stats drvr_stats;
-       struct net_device_stats net_stats;
        struct be_dma_mem cmd;
 };
 
@@ -244,6 +254,7 @@ struct be_adapter {
        struct vlan_group *vlan_grp;
        u16 num_vlans;
        u8 vlan_tag[VLAN_GROUP_ARRAY_LEN];
+       struct be_dma_mem mc_cmd_mem;
 
        struct be_stats_obj stats;
        /* Work queue used to perform periodic tasks like getting statistics */
@@ -258,9 +269,12 @@ struct be_adapter {
        bool link_up;
        u32 port_num;
        bool promiscuous;
+       bool wol;
        u32 cap;
        u32 rx_fc;              /* Rx flow control */
        u32 tx_fc;              /* Tx flow control */
+       int link_speed;
+       u8 port_type;
 };
 
 extern const struct ethtool_ops be_ethtool_ops;