|
|
@@ -290,9 +290,18 @@ static i40e_status i40e_read_nvm_word_aq(struct i40e_hw *hw, u16 offset,
|
|
|
i40e_status i40e_read_nvm_word(struct i40e_hw *hw, u16 offset,
|
|
|
u16 *data)
|
|
|
{
|
|
|
- if (hw->mac.type == I40E_MAC_X722)
|
|
|
- return i40e_read_nvm_word_aq(hw, offset, data);
|
|
|
- return i40e_read_nvm_word_srctl(hw, offset, data);
|
|
|
+ enum i40e_status_code ret_code = 0;
|
|
|
+
|
|
|
+ if (hw->flags & I40E_HW_FLAG_AQ_SRCTL_ACCESS_ENABLE) {
|
|
|
+ ret_code = i40e_acquire_nvm(hw, I40E_RESOURCE_READ);
|
|
|
+ if (!ret_code) {
|
|
|
+ ret_code = i40e_read_nvm_word_aq(hw, offset, data);
|
|
|
+ i40e_release_nvm(hw);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ ret_code = i40e_read_nvm_word_srctl(hw, offset, data);
|
|
|
+ }
|
|
|
+ return ret_code;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -397,9 +406,19 @@ read_nvm_buffer_aq_exit:
|
|
|
i40e_status i40e_read_nvm_buffer(struct i40e_hw *hw, u16 offset,
|
|
|
u16 *words, u16 *data)
|
|
|
{
|
|
|
- if (hw->mac.type == I40E_MAC_X722)
|
|
|
- return i40e_read_nvm_buffer_aq(hw, offset, words, data);
|
|
|
- return i40e_read_nvm_buffer_srctl(hw, offset, words, data);
|
|
|
+ enum i40e_status_code ret_code = 0;
|
|
|
+
|
|
|
+ if (hw->flags & I40E_HW_FLAG_AQ_SRCTL_ACCESS_ENABLE) {
|
|
|
+ ret_code = i40e_acquire_nvm(hw, I40E_RESOURCE_READ);
|
|
|
+ if (!ret_code) {
|
|
|
+ ret_code = i40e_read_nvm_buffer_aq(hw, offset, words,
|
|
|
+ data);
|
|
|
+ i40e_release_nvm(hw);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ ret_code = i40e_read_nvm_buffer_srctl(hw, offset, words, data);
|
|
|
+ }
|
|
|
+ return ret_code;
|
|
|
}
|
|
|
|
|
|
/**
|