]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/benet/be.h
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
[karo-tx-linux.git] / drivers / net / benet / be.h
index b46be490cd2aab76bf5cf84a496d18632b10cb59..99197bd54da558ef26cf8a62a54af19aaa02e0f8 100644 (file)
@@ -33,7 +33,7 @@
 
 #include "be_hw.h"
 
-#define DRV_VER                        "2.102.147u"
+#define DRV_VER                        "2.103.175u"
 #define DRV_NAME               "be2net"
 #define BE_NAME                        "ServerEngines BladeEngine2 10Gbps NIC"
 #define BE3_NAME               "ServerEngines BladeEngine3 10Gbps NIC"
@@ -220,7 +220,16 @@ struct be_rx_obj {
        struct be_rx_page_info page_info_tbl[RX_Q_LEN];
 };
 
+struct be_vf_cfg {
+       unsigned char vf_mac_addr[ETH_ALEN];
+       u32 vf_if_handle;
+       u32 vf_pmac_id;
+       u16 vf_vlan_tag;
+       u32 vf_tx_rate;
+};
+
 #define BE_NUM_MSIX_VECTORS            2       /* 1 each for Tx and Rx */
+#define BE_INVALID_PMAC_ID             0xffffffff
 struct be_adapter {
        struct pci_dev *pdev;
        struct net_device *netdev;
@@ -276,23 +285,26 @@ struct be_adapter {
        u32 port_num;
        bool promiscuous;
        bool wol;
-       u32 cap;
+       u32 function_mode;
        u32 rx_fc;              /* Rx flow control */
        u32 tx_fc;              /* Tx flow control */
+       bool ue_detected;
+       bool stats_ioctl_sent;
        int link_speed;
        u8 port_type;
        u8 transceiver;
+       u8 autoneg;
        u8 generation;          /* BladeEngine ASIC generation */
        u32 flash_status;
        struct completion flash_compl;
 
        bool sriov_enabled;
-       u32 vf_if_handle[BE_MAX_VF];
-       u32 vf_pmac_id[BE_MAX_VF];
+       struct be_vf_cfg vf_cfg[BE_MAX_VF];
        u8 base_eq_id;
+       u8 is_virtfn;
 };
 
-#define be_physfn(adapter) (!adapter->pdev->is_virtfn)
+#define be_physfn(adapter) (!adapter->is_virtfn)
 
 /* BladeEngine Generation numbers */
 #define BE_GEN2 2
@@ -392,6 +404,15 @@ static inline u8 is_udp_pkt(struct sk_buff *skb)
        return val;
 }
 
+static inline void be_check_sriov_fn_type(struct be_adapter *adapter)
+{
+       u8 data;
+
+       pci_write_config_byte(adapter->pdev, 0xFE, 0xAA);
+       pci_read_config_byte(adapter->pdev, 0xFE, &data);
+       adapter->is_virtfn = (data != 0xAA);
+}
+
 extern void be_cq_notify(struct be_adapter *adapter, u16 qid, bool arm,
                u16 num_popped);
 extern void be_link_status_update(struct be_adapter *adapter, bool link_up);