You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.5 KiB
88 lines
2.5 KiB
From: Felix Fietkau <nbd@nbd.name>
|
|
Date: Mon, 11 Jul 2016 11:34:47 +0200
|
|
Subject: [PATCH] ath9k_hw: simplify ar9003_hw_per_calibration
|
|
|
|
Reduce indentation, use a variable to save a few pointer dereferences
|
|
|
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|
---
|
|
|
|
--- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c
|
|
+++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c
|
|
@@ -75,50 +75,49 @@ static bool ar9003_hw_per_calibration(st
|
|
struct ath9k_cal_list *currCal)
|
|
{
|
|
struct ath9k_hw_cal_data *caldata = ah->caldata;
|
|
- /* Cal is assumed not done until explicitly set below */
|
|
- bool iscaldone = false;
|
|
+ const struct ath9k_percal_data *cur_caldata = currCal->calData;
|
|
|
|
/* Calibration in progress. */
|
|
if (currCal->calState == CAL_RUNNING) {
|
|
/* Check to see if it has finished. */
|
|
- if (!(REG_READ(ah, AR_PHY_TIMING4) & AR_PHY_TIMING4_DO_CAL)) {
|
|
- /*
|
|
- * Accumulate cal measures for active chains
|
|
- */
|
|
- currCal->calData->calCollect(ah);
|
|
- ah->cal_samples++;
|
|
+ if (REG_READ(ah, AR_PHY_TIMING4) & AR_PHY_TIMING4_DO_CAL)
|
|
+ return false;
|
|
|
|
- if (ah->cal_samples >=
|
|
- currCal->calData->calNumSamples) {
|
|
- unsigned int i, numChains = 0;
|
|
- for (i = 0; i < AR9300_MAX_CHAINS; i++) {
|
|
- if (rxchainmask & (1 << i))
|
|
- numChains++;
|
|
- }
|
|
+ /*
|
|
+ * Accumulate cal measures for active chains
|
|
+ */
|
|
+ cur_caldata->calCollect(ah);
|
|
+ ah->cal_samples++;
|
|
|
|
- /*
|
|
- * Process accumulated data
|
|
- */
|
|
- currCal->calData->calPostProc(ah, numChains);
|
|
+ if (ah->cal_samples >= cur_caldata->calNumSamples) {
|
|
+ unsigned int i, numChains = 0;
|
|
+ for (i = 0; i < AR9300_MAX_CHAINS; i++) {
|
|
+ if (rxchainmask & (1 << i))
|
|
+ numChains++;
|
|
+ }
|
|
|
|
- /* Calibration has finished. */
|
|
- caldata->CalValid |= currCal->calData->calType;
|
|
- currCal->calState = CAL_DONE;
|
|
- iscaldone = true;
|
|
- } else {
|
|
+ /*
|
|
+ * Process accumulated data
|
|
+ */
|
|
+ cur_caldata->calPostProc(ah, numChains);
|
|
+
|
|
+ /* Calibration has finished. */
|
|
+ caldata->CalValid |= cur_caldata->calType;
|
|
+ currCal->calState = CAL_DONE;
|
|
+ return true;
|
|
+ } else {
|
|
/*
|
|
* Set-up collection of another sub-sample until we
|
|
* get desired number
|
|
*/
|
|
ar9003_hw_setup_calibration(ah, currCal);
|
|
- }
|
|
}
|
|
- } else if (!(caldata->CalValid & currCal->calData->calType)) {
|
|
+ } else if (!(caldata->CalValid & cur_caldata->calType)) {
|
|
/* If current cal is marked invalid in channel, kick it off */
|
|
ath9k_hw_reset_calibration(ah, currCal);
|
|
}
|
|
|
|
- return iscaldone;
|
|
+ return false;
|
|
}
|
|
|
|
static int ar9003_hw_calibrate(struct ath_hw *ah, struct ath9k_channel *chan,
|
|
|