Implement an API to fetch the default DFS parameters for the given chip.
The only chip this is currently implemented for is the AR5416 HAL family. A follow-up commit will add AR5212 support. PR: kern/170904
This commit is contained in:
parent
e0c214d1bb
commit
54798be082
@ -1223,6 +1223,8 @@ struct ath_hal {
|
||||
HAL_PHYERR_PARAM *pe);
|
||||
void __ahdecl(*ah_getDfsThresh)(struct ath_hal *ah,
|
||||
HAL_PHYERR_PARAM *pe);
|
||||
HAL_BOOL __ahdecl(*ah_getDfsDefaultThresh)(struct ath_hal *ah,
|
||||
HAL_PHYERR_PARAM *pe);
|
||||
HAL_BOOL __ahdecl(*ah_procRadarEvent)(struct ath_hal *ah,
|
||||
struct ath_rx_status *rxs, uint64_t fulltsf,
|
||||
const char *buf, HAL_DFS_EVENT *event);
|
||||
|
@ -253,6 +253,8 @@ extern HAL_BOOL ar5416SetRifsDelay(struct ath_hal *ah,
|
||||
const struct ieee80211_channel *chan, HAL_BOOL enable);
|
||||
|
||||
extern void ar5416EnableDfs(struct ath_hal *ah, HAL_PHYERR_PARAM *pe);
|
||||
extern HAL_BOOL ar5416GetDfsDefaultThresh(struct ath_hal *ah,
|
||||
HAL_PHYERR_PARAM *pe);
|
||||
extern void ar5416GetDfsThresh(struct ath_hal *ah, HAL_PHYERR_PARAM *pe);
|
||||
extern HAL_BOOL ar5416ProcessRadarEvent(struct ath_hal *ah,
|
||||
struct ath_rx_status *rxs, uint64_t fulltsf, const char *buf,
|
||||
|
@ -156,6 +156,7 @@ ar5416InitState(struct ath_hal_5416 *ahp5416, uint16_t devid, HAL_SOFTC sc,
|
||||
/* DFS Functions */
|
||||
ah->ah_enableDfs = ar5416EnableDfs;
|
||||
ah->ah_getDfsThresh = ar5416GetDfsThresh;
|
||||
ah->ah_getDfsDefaultThresh = ar5416GetDfsDefaultThresh;
|
||||
ah->ah_procRadarEvent = ar5416ProcessRadarEvent;
|
||||
ah->ah_isFastClockEnabled = ar5416IsFastClockEnabled;
|
||||
|
||||
|
@ -28,6 +28,51 @@
|
||||
|
||||
#include "ah_eeprom_v14.h" /* for owl_get_ntxchains() */
|
||||
|
||||
/*
|
||||
* These are default parameters for the AR5416 and
|
||||
* later 802.11n NICs. They simply enable some
|
||||
* radar pulse event generation.
|
||||
*
|
||||
* These are very likely not valid for the AR5212 era
|
||||
* NICs.
|
||||
*
|
||||
* Since these define signal sizing and threshold
|
||||
* parameters, they may need changing based on the
|
||||
* specific antenna and receive amplifier
|
||||
* configuration.
|
||||
*/
|
||||
#define AR5416_DFS_FIRPWR -33
|
||||
#define AR5416_DFS_RRSSI 20
|
||||
#define AR5416_DFS_HEIGHT 10
|
||||
#define AR5416_DFS_PRSSI 15
|
||||
#define AR5416_DFS_INBAND 15
|
||||
#define AR5416_DFS_RELPWR 8
|
||||
#define AR5416_DFS_RELSTEP 12
|
||||
#define AR5416_DFS_MAXLEN 255
|
||||
|
||||
HAL_BOOL
|
||||
ar5416GetDfsDefaultThresh(struct ath_hal *ah, HAL_PHYERR_PARAM *pe)
|
||||
{
|
||||
|
||||
/*
|
||||
* These are general examples of the parameter values
|
||||
* to use when configuring radar pulse detection for
|
||||
* the AR5416, AR91xx, AR92xx NICs. They are only
|
||||
* for testing and do require tuning depending upon the
|
||||
* hardware and deployment specifics.
|
||||
*/
|
||||
pe->pe_firpwr = AR5416_DFS_FIRPWR;
|
||||
pe->pe_rrssi = AR5416_DFS_RRSSI;
|
||||
pe->pe_height = AR5416_DFS_HEIGHT;
|
||||
pe->pe_prssi = AR5416_DFS_PRSSI;
|
||||
pe->pe_inband = AR5416_DFS_INBAND;
|
||||
pe->pe_relpwr = AR5416_DFS_RELPWR;
|
||||
pe->pe_relstep = AR5416_DFS_RELSTEP;
|
||||
pe->pe_maxlen = AR5416_DFS_MAXLEN;
|
||||
|
||||
return (AH_TRUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the radar parameter values and return them in the pe
|
||||
* structure
|
||||
|
Loading…
x
Reference in New Issue
Block a user