Add a couple of functions to check NF calibration progress / completion.
This commit is contained in:
parent
2032024cd6
commit
85b035b335
@ -608,4 +608,8 @@ extern void ar5212AniPoll(struct ath_hal *, const HAL_NODE_STATS *,
|
||||
const struct ieee80211_channel *);
|
||||
extern void ar5212AniReset(struct ath_hal *, const struct ieee80211_channel *,
|
||||
HAL_OPMODE, int);
|
||||
|
||||
extern HAL_BOOL ar5212IsNFCalInProgress(struct ath_hal *ah);
|
||||
extern HAL_BOOL ar5212WaitNFCalComplete(struct ath_hal *ah, int i);
|
||||
|
||||
#endif /* _ATH_AR5212_H_ */
|
||||
|
@ -1071,3 +1071,38 @@ ar5212GetDiagState(struct ath_hal *ah, int request,
|
||||
}
|
||||
return AH_FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check whether there's an in-progress NF completion.
|
||||
*
|
||||
* Returns AH_TRUE if there's a in-progress NF calibration, AH_FALSE
|
||||
* otherwise.
|
||||
*/
|
||||
HAL_BOOL
|
||||
ar5212IsNFCalInProgress(struct ath_hal *ah)
|
||||
{
|
||||
if (OS_REG_READ(ah, AR_PHY_AGC_CONTROL) & AR_PHY_AGC_CONTROL_NF)
|
||||
return AH_TRUE;
|
||||
return AH_FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Wait for an in-progress NF calibration to complete.
|
||||
*
|
||||
* The completion function waits "i" times 10uS.
|
||||
* It returns AH_TRUE if the NF calibration completed (or was never
|
||||
* in progress); AH_FALSE if it was still in progress after "i" checks.
|
||||
*/
|
||||
HAL_BOOL
|
||||
ar5212WaitNFCalComplete(struct ath_hal *ah, int i)
|
||||
{
|
||||
int j;
|
||||
if (i <= 0)
|
||||
i = 1; /* it should run at least once */
|
||||
for (j = 0; j < i; j++) {
|
||||
if (! ar5212IsNFCalInProgress(ah))
|
||||
return AH_TRUE;
|
||||
OS_DELAY(10);
|
||||
}
|
||||
return AH_FALSE;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user