svn commit: r239638 - in head/sys/dev/ath/ath_hal: . ar5416
Adrian Chadd
adrian at FreeBSD.org
Fri Aug 24 01:29:47 UTC 2012
Author: adrian
Date: Fri Aug 24 01:29:46 2012
New Revision: 239638
URL: http://svn.freebsd.org/changeset/base/239638
Log:
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
Modified:
head/sys/dev/ath/ath_hal/ah.h
head/sys/dev/ath/ath_hal/ar5416/ar5416.h
head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
head/sys/dev/ath/ath_hal/ar5416/ar5416_radar.c
Modified: head/sys/dev/ath/ath_hal/ah.h
==============================================================================
--- head/sys/dev/ath/ath_hal/ah.h Fri Aug 24 01:14:00 2012 (r239637)
+++ head/sys/dev/ath/ath_hal/ah.h Fri Aug 24 01:29:46 2012 (r239638)
@@ -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);
Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416.h
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5416/ar5416.h Fri Aug 24 01:14:00 2012 (r239637)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416.h Fri Aug 24 01:29:46 2012 (r239638)
@@ -253,6 +253,8 @@ extern HAL_BOOL ar5416SetRifsDelay(struc
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,
Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Fri Aug 24 01:14:00 2012 (r239637)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Fri Aug 24 01:29:46 2012 (r239638)
@@ -156,6 +156,7 @@ ar5416InitState(struct ath_hal_5416 *ahp
/* DFS Functions */
ah->ah_enableDfs = ar5416EnableDfs;
ah->ah_getDfsThresh = ar5416GetDfsThresh;
+ ah->ah_getDfsDefaultThresh = ar5416GetDfsDefaultThresh;
ah->ah_procRadarEvent = ar5416ProcessRadarEvent;
ah->ah_isFastClockEnabled = ar5416IsFastClockEnabled;
Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_radar.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5416/ar5416_radar.c Fri Aug 24 01:14:00 2012 (r239637)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_radar.c Fri Aug 24 01:29:46 2012 (r239638)
@@ -29,6 +29,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
*/
More information about the svn-src-head
mailing list