i40e/base: skip some hardware init for VF
authorHelin Zhang <helin.zhang@intel.com>
Thu, 30 Apr 2015 15:03:23 +0000 (23:03 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 15 May 2015 14:33:15 +0000 (16:33 +0200)
This patch is useful for future expansion when new VF MAC types get
added. It also helps with cleaning up VF driver flow.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Tested-by: Min Cao <min.cao@intel.com>
lib/librte_pmd_i40e/i40e/i40e_adminq.c
lib/librte_pmd_i40e/i40e/i40e_type.h

index bbc6b65..e76e0af 100644 (file)
@@ -58,7 +58,7 @@ STATIC INLINE bool i40e_is_nvm_update_op(struct i40e_aq_desc *desc)
 STATIC void i40e_adminq_init_regs(struct i40e_hw *hw)
 {
        /* set head and tail registers in our local struct */
-       if (hw->mac.type == I40E_MAC_VF) {
+       if (i40e_is_vf(hw)) {
                hw->aq.asq.tail = I40E_VF_ATQT1;
                hw->aq.asq.head = I40E_VF_ATQH1;
                hw->aq.asq.len  = I40E_VF_ATQLEN1;
@@ -594,6 +594,11 @@ enum i40e_status_code i40e_init_adminq(struct i40e_hw *hw)
                goto init_adminq_free_asq;
 
 #ifdef PF_DRIVER
+#ifdef INTEGRATED_VF
+       /* VF has no need of firmware */
+       if (i40e_is_vf(hw))
+               goto init_adminq_exit;
+#endif
        /* There are some cases where the firmware may not be quite ready
         * for AdminQ operations, so we retry the AdminQ setup a few times
         * if we see timeouts in this first AQ call.
index 7d9da30..916f79a 100644 (file)
@@ -555,6 +555,11 @@ struct i40e_hw {
        u32 debug_mask;
 };
 
+static inline bool i40e_is_vf(struct i40e_hw *hw)
+{
+       return hw->mac.type == I40E_MAC_VF;
+}
+
 struct i40e_driver_version {
        u8 major_version;
        u8 minor_version;