Add a function which enables or disables RX RIFS searching, and migrate

the code which does this into it.
This commit is contained in:
Adrian Chadd 2011-05-06 15:33:56 +00:00
parent b40501fb67
commit e7cb5d548d
3 changed files with 22 additions and 5 deletions

View File

@ -199,6 +199,7 @@ extern HAL_STATUS ar5416GetCapability(struct ath_hal *ah,
extern HAL_BOOL ar5416GetDiagState(struct ath_hal *ah, int request,
const void *args, uint32_t argsize,
void **result, uint32_t *resultsize);
extern HAL_BOOL ar5416SetRifsDelay(struct ath_hal *ah, HAL_BOOL enable);
extern HAL_BOOL ar5416SetPowerMode(struct ath_hal *ah, HAL_POWER_MODE mode,
int setChip);

View File

@ -368,6 +368,25 @@ typedef struct {
uint8_t qcu_complete_state;
} hal_mac_hang_check_t;
HAL_BOOL
ar5416SetRifsDelay(struct ath_hal *ah, HAL_BOOL enable)
{
uint32_t val;
/* Only support disabling RIFS delay for now */
HALASSERT(enable == AH_FALSE);
if (enable == AH_TRUE)
return AH_FALSE;
/* Change RIFS init delay to 0 */
val = OS_REG_READ(ah, AR_PHY_HEAVY_CLIP_FACTOR_RIFS);
val &= ~AR_PHY_RIFS_INIT_DELAY;
OS_REG_WRITE(ah, AR_PHY_HEAVY_CLIP_FACTOR_RIFS, val);
return AH_TRUE;
}
static HAL_BOOL
ar5416CompareDbgHang(struct ath_hal *ah, const mac_dbg_regs_t *regs,
const hal_mac_hang_check_t *check)

View File

@ -2520,11 +2520,8 @@ ar5416OverrideIni(struct ath_hal *ah, const struct ieee80211_channel *chan)
* Disable RIFS search on some chips to avoid baseband
* hang issues.
*/
if (AR_SREV_HOWL(ah) || AR_SREV_SOWL(ah)) {
val = OS_REG_READ(ah, AR_PHY_HEAVY_CLIP_FACTOR_RIFS);
val &= ~AR_PHY_RIFS_INIT_DELAY;
OS_REG_WRITE(ah, AR_PHY_HEAVY_CLIP_FACTOR_RIFS, val);
}
if (AR_SREV_HOWL(ah) || AR_SREV_SOWL(ah))
(void) ar5416SetRifsDelay(ah, AH_FALSE);
}
struct ini {