i40e/base: rework virtual address retrieval for lan queue
[dpdk.git] / 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;