net/qede/base: set driver type before sending load request
[dpdk.git] / drivers / net / qede / qede_if.h
index 4936349..0a1f7db 100644 (file)
@@ -30,11 +30,19 @@ struct qed_dev_info {
 
        /* MFW version */
        uint32_t mfw_rev;
+#define QED_MFW_VERSION_0_MASK         0x000000FF
+#define QED_MFW_VERSION_0_OFFSET       0
+#define QED_MFW_VERSION_1_MASK         0x0000FF00
+#define QED_MFW_VERSION_1_OFFSET       8
+#define QED_MFW_VERSION_2_MASK         0x00FF0000
+#define QED_MFW_VERSION_2_OFFSET       16
+#define QED_MFW_VERSION_3_MASK         0xFF000000
+#define QED_MFW_VERSION_3_OFFSET       24
 
        uint32_t flash_size;
        uint8_t mf_mode;
        bool tx_switching;
-       /* To be added... */
+       u16 mtu;
 };
 
 enum qed_sb_type {
@@ -70,7 +78,7 @@ struct qed_link_output {
        uint32_t advertised_caps;       /* In ADVERTISED defs */
        uint32_t lp_caps;       /* In ADVERTISED defs */
        uint32_t speed;         /* In Mb/s */
-       uint32_t adv_speed;     /* In Mb/s */
+       uint32_t adv_speed;     /* Speed mask */
        uint8_t duplex;         /* In DUPLEX defs */
        uint8_t port;           /* In PORT defs */
        bool autoneg;
@@ -108,16 +116,17 @@ struct qed_common_ops {
                     struct rte_pci_device *pci_dev,
                     enum qed_protocol protocol,
                     uint32_t dp_module, uint8_t dp_level, bool is_vf);
-       void (*set_id)(struct ecore_dev *edev,
-               char name[], const char ver_str[]);
-       enum _ecore_status_t (*chain_alloc)(struct ecore_dev *edev,
-                                           enum ecore_chain_use_mode
-                                           intended_use,
-                                           enum ecore_chain_mode mode,
-                                           enum ecore_chain_cnt_type cnt_type,
-                                           uint32_t num_elems,
-                                           osal_size_t elem_size,
-                                           struct ecore_chain *p_chain);
+       void (*set_name)(struct ecore_dev *edev, char name[]);
+       enum _ecore_status_t
+               (*chain_alloc)(struct ecore_dev *edev,
+                              enum ecore_chain_use_mode
+                              intended_use,
+                              enum ecore_chain_mode mode,
+                              enum ecore_chain_cnt_type cnt_type,
+                              uint32_t num_elems,
+                              osal_size_t elem_size,
+                              struct ecore_chain *p_chain,
+                              struct ecore_chain_ext_pbl *ext_pbl);
 
        void (*chain_free)(struct ecore_dev *edev,
                           struct ecore_chain *p_chain);
@@ -148,8 +157,11 @@ struct qed_common_ops {
                            uint16_t sb_id, enum qed_sb_type type);
 
        bool (*can_link_change)(struct ecore_dev *edev);
+
        void (*update_msglvl)(struct ecore_dev *edev,
                              uint32_t dp_module, uint8_t dp_level);
+
+       int (*send_drv_state)(struct ecore_dev *edev, bool active);
 };
 
 #endif /* _QEDE_IF_H */