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
  */
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to