Remove the hard-coded AR5416-series parameters and instead use the
DFS parameters fetched from the HAL. Check whether the specific chipset supports RADAR reporting before enabling DFS; or some of the (unset) DFS methods may fail. Tested: * AR5210 (correctly didn't enable radar PHY reporting) * AR5212 (correctly enabled radar PHY reporting w/ the correct default parameters.) TODO: * Now that I have this capability check in place, I could remove the (empty) DFS methods from AR5210/AR5211. * Test on AR5416, AR9160, AR9280. PR: kern/170904
This commit is contained in:
parent
51816abcd0
commit
b7005313dd
@ -71,28 +71,6 @@ __FBSDID("$FreeBSD$");
|
||||
|
||||
#include <dev/ath/ath_hal/ah_desc.h>
|
||||
|
||||
/*
|
||||
* 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
|
||||
|
||||
/*
|
||||
* Methods which are required
|
||||
*/
|
||||
@ -125,30 +103,27 @@ ath_dfs_radar_enable(struct ath_softc *sc, struct ieee80211_channel *chan)
|
||||
#if 0
|
||||
HAL_PHYERR_PARAM pe;
|
||||
|
||||
/* Check if the hardware supports radar reporting */
|
||||
/* XXX TODO: migrate HAL_CAP_RADAR/HAL_CAP_AR to somewhere public! */
|
||||
if (ath_hal_getcapability(sc->sc_ah,
|
||||
HAL_CAP_PHYDIAG, 0, NULL) != HAL_OK)
|
||||
return (0);
|
||||
|
||||
/* Check if the current channel is radar-enabled */
|
||||
if (! IEEE80211_IS_CHAN_DFS(chan))
|
||||
return (0);
|
||||
|
||||
/* Fetch the default parameters */
|
||||
memset(&pe, '\0', sizeof(pe));
|
||||
if (! ath_hal_getdfsdefaultthresh(sc->sc_ah, &pe))
|
||||
return (0);
|
||||
|
||||
/* Enable radar PHY error reporting */
|
||||
sc->sc_dodfs = 1;
|
||||
|
||||
/*
|
||||
* 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;
|
||||
/* Tell the hardware to enable radar reporting */
|
||||
pe.pe_enabled = 1;
|
||||
|
||||
|
||||
/* Flip on extension channel events only if doing HT40 */
|
||||
if (IEEE80211_IS_CHAN_HT40(chan))
|
||||
pe.pe_extchannel = 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user