i40e/base: rework virtual address retrieval for lan queue
authorHelin Zhang <helin.zhang@intel.com>
Thu, 30 Apr 2015 15:03:14 +0000 (23:03 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 15 May 2015 14:33:15 +0000 (16:33 +0200)
To simplify the usage of invoking 'i40e_hmc_get_object_va', input
parameters of it were reworked. In addition, minor code style fixes
were added as well.

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_lan_hmc.c

index 7e65efb..ac9d36a 100644 (file)
@@ -863,7 +863,7 @@ static void i40e_write_dword(u8 *hmc_bits,
        if (ce_info->width < 32)
                mask = ((u32)1 << ce_info->width) - 1;
        else
-               mask = 0xFFFFFFFF;
+               mask = ~(u32)0;
 
        /* don't swizzle the bits until after the mask because the mask bits
         * will be in a different bit position on big endian machines
@@ -915,7 +915,7 @@ static void i40e_write_qword(u8 *hmc_bits,
        if (ce_info->width < 64)
                mask = ((u64)1 << ce_info->width) - 1;
        else
-               mask = 0xFFFFFFFFFFFFFFFFUL;
+               mask = ~(u64)0;
 
        /* don't swizzle the bits until after the mask because the mask bits
         * will be in a different bit position on big endian machines
@@ -1045,7 +1045,7 @@ static void i40e_read_dword(u8 *hmc_bits,
        if (ce_info->width < 32)
                mask = ((u32)1 << ce_info->width) - 1;
        else
-               mask = 0xFFFFFFFF;
+               mask = ~(u32)0;
 
        /* shift to correct alignment */
        mask <<= shift_width;
@@ -1098,7 +1098,7 @@ static void i40e_read_qword(u8 *hmc_bits,
        if (ce_info->width < 64)
                mask = ((u64)1 << ce_info->width) - 1;
        else
-               mask = 0xFFFFFFFFFFFFFFFFUL;
+               mask = ~(u64)0;
 
        /* shift to correct alignment */
        mask <<= shift_width;
@@ -1217,7 +1217,7 @@ static enum i40e_status_code i40e_set_hmc_context(u8 *context_bytes,
 
 /**
  * i40e_hmc_get_object_va - retrieves an object's virtual address
- * @hmc_info: pointer to i40e_hmc_info struct
+ * @hw: pointer to the hw structure
  * @object_base: pointer to u64 to get the va
  * @rsrc_type: the hmc resource type
  * @obj_idx: hmc object index
@@ -1226,12 +1226,13 @@ static enum i40e_status_code i40e_set_hmc_context(u8 *context_bytes,
  * base pointer.  This function is used for LAN Queue contexts.
  **/
 STATIC
-enum i40e_status_code i40e_hmc_get_object_va(struct i40e_hmc_info *hmc_info,
+enum i40e_status_code i40e_hmc_get_object_va(struct i40e_hw *hw,
                                        u8 **object_base,
                                        enum i40e_hmc_lan_rsrc_type rsrc_type,
                                        u32 obj_idx)
 {
        u32 obj_offset_in_sd, obj_offset_in_pd;
+       struct i40e_hmc_info     *hmc_info = &hw->hmc;
        struct i40e_hmc_sd_entry *sd_entry;
        struct i40e_hmc_pd_entry *pd_entry;
        u32 pd_idx, pd_lmt, rel_pd_idx;
@@ -1303,8 +1304,7 @@ enum i40e_status_code i40e_get_lan_tx_queue_context(struct i40e_hw *hw,
        enum i40e_status_code err;
        u8 *context_bytes;
 
-       err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes,
-                                    I40E_HMC_LAN_TX, queue);
+       err = i40e_hmc_get_object_va(hw, &context_bytes, I40E_HMC_LAN_TX, queue);
        if (err < 0)
                return err;
 
@@ -1323,8 +1323,7 @@ enum i40e_status_code i40e_clear_lan_tx_queue_context(struct i40e_hw *hw,
        enum i40e_status_code err;
        u8 *context_bytes;
 
-       err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes,
-                                    I40E_HMC_LAN_TX, queue);
+       err = i40e_hmc_get_object_va(hw, &context_bytes, I40E_HMC_LAN_TX, queue);
        if (err < 0)
                return err;
 
@@ -1344,8 +1343,7 @@ enum i40e_status_code i40e_set_lan_tx_queue_context(struct i40e_hw *hw,
        enum i40e_status_code err;
        u8 *context_bytes;
 
-       err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes,
-                                    I40E_HMC_LAN_TX, queue);
+       err = i40e_hmc_get_object_va(hw, &context_bytes, I40E_HMC_LAN_TX, queue);
        if (err < 0)
                return err;
 
@@ -1366,8 +1364,7 @@ enum i40e_status_code i40e_get_lan_rx_queue_context(struct i40e_hw *hw,
        enum i40e_status_code err;
        u8 *context_bytes;
 
-       err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes,
-                                    I40E_HMC_LAN_RX, queue);
+       err = i40e_hmc_get_object_va(hw, &context_bytes, I40E_HMC_LAN_RX, queue);
        if (err < 0)
                return err;
 
@@ -1386,8 +1383,7 @@ enum i40e_status_code i40e_clear_lan_rx_queue_context(struct i40e_hw *hw,
        enum i40e_status_code err;
        u8 *context_bytes;
 
-       err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes,
-                                    I40E_HMC_LAN_RX, queue);
+       err = i40e_hmc_get_object_va(hw, &context_bytes, I40E_HMC_LAN_RX, queue);
        if (err < 0)
                return err;
 
@@ -1407,8 +1403,7 @@ enum i40e_status_code i40e_set_lan_rx_queue_context(struct i40e_hw *hw,
        enum i40e_status_code err;
        u8 *context_bytes;
 
-       err = i40e_hmc_get_object_va(&hw->hmc, &context_bytes,
-                                    I40E_HMC_LAN_RX, queue);
+       err = i40e_hmc_get_object_va(hw, &context_bytes, I40E_HMC_LAN_RX, queue);
        if (err < 0)
                return err;