Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Aug 2012 01:29:46 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r239638 - in head/sys/dev/ath/ath_hal: . ar5416
Message-ID:  <201208240129.q7O1TkJ8035821@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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
  */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201208240129.q7O1TkJ8035821>