|
@@ -604,8 +604,13 @@ static void ath10k_hw_qca988x_set_coverage_class(struct ath10k *ar,
|
|
|
|
|
|
/* Only modify registers if the core is started. */
|
|
/* Only modify registers if the core is started. */
|
|
if ((ar->state != ATH10K_STATE_ON) &&
|
|
if ((ar->state != ATH10K_STATE_ON) &&
|
|
- (ar->state != ATH10K_STATE_RESTARTED))
|
|
|
|
|
|
+ (ar->state != ATH10K_STATE_RESTARTED)) {
|
|
|
|
+ spin_lock_bh(&ar->data_lock);
|
|
|
|
+ /* Store config value for when radio boots up */
|
|
|
|
+ ar->fw_coverage.coverage_class = value;
|
|
|
|
+ spin_unlock_bh(&ar->data_lock);
|
|
goto unlock;
|
|
goto unlock;
|
|
|
|
+ }
|
|
|
|
|
|
/* Retrieve the current values of the two registers that need to be
|
|
/* Retrieve the current values of the two registers that need to be
|
|
* adjusted.
|
|
* adjusted.
|
|
@@ -637,7 +642,7 @@ static void ath10k_hw_qca988x_set_coverage_class(struct ath10k *ar,
|
|
ar->fw_coverage.reg_ack_cts_timeout_orig = timeout_reg;
|
|
ar->fw_coverage.reg_ack_cts_timeout_orig = timeout_reg;
|
|
ar->fw_coverage.reg_phyclk = phyclk_reg;
|
|
ar->fw_coverage.reg_phyclk = phyclk_reg;
|
|
|
|
|
|
- /* Calculat new value based on the (original) firmware calculation. */
|
|
|
|
|
|
+ /* Calculate new value based on the (original) firmware calculation. */
|
|
slottime_reg = ar->fw_coverage.reg_slottime_orig;
|
|
slottime_reg = ar->fw_coverage.reg_slottime_orig;
|
|
timeout_reg = ar->fw_coverage.reg_ack_cts_timeout_orig;
|
|
timeout_reg = ar->fw_coverage.reg_ack_cts_timeout_orig;
|
|
|
|
|