Author: adrian
Date: Mon Jan 30 23:07:27 2012
New Revision: 230791
URL: http://svn.freebsd.org/changeset/base/230791

Log:
  Radar API related fixes.
  
  * For legacy NICs, the combined RSSI should be used.
    For earlier AR5416 NICs, use control chain 0 RSSI rather than combined
    RSSI.
    For AR5416 > version 2.1, use the combined RSSI again.
  
  * Add in a missing AR5212 HAL method (get11nextbusy) which may be called
    by radar code.
  
  This serves no functional change for what's currently in FreeBSD.

Modified:
  head/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c
  head/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c
  head/sys/dev/ath/ath_hal/ar5212/ar5212.h
  head/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c
  head/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c

Modified: head/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c     Mon Jan 30 23:03:21 
2012        (r230790)
+++ head/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c     Mon Jan 30 23:07:27 
2012        (r230791)
@@ -359,6 +359,12 @@ ar5210FillCapabilityInfo(struct ath_hal 
        pCap->halChanHalfRate = AH_FALSE;
        pCap->halChanQuarterRate = AH_FALSE;
 
+       /*
+        * RSSI uses the combined field; some 11n NICs may use
+        * the control chain RSSI.
+        */
+       pCap->halUseCombinedRadarRssi = AH_TRUE;
+
        if (ath_hal_eepromGetFlag(ah, AR_EEP_RFKILL)) {
                /*
                 * Setup initial rfsilent settings based on the EEPROM

Modified: head/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c     Mon Jan 30 23:03:21 
2012        (r230790)
+++ head/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c     Mon Jan 30 23:07:27 
2012        (r230791)
@@ -494,6 +494,12 @@ ar5211FillCapabilityInfo(struct ath_hal 
        pCap->halChanHalfRate = AH_FALSE;
        pCap->halChanQuarterRate = AH_FALSE;
 
+       /*
+        * RSSI uses the combined field; some 11n NICs may use
+        * the control chain RSSI.
+        */
+       pCap->halUseCombinedRadarRssi = AH_TRUE;
+
        if (ath_hal_eepromGetFlag(ah, AR_EEP_RFKILL) &&
            ath_hal_eepromGet(ah, AR_EEP_RFSILENT, &ahpriv->ah_rfsilent) == 
HAL_OK) {
                /* NB: enabled by default */

Modified: head/sys/dev/ath/ath_hal/ar5212/ar5212.h
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5212/ar5212.h    Mon Jan 30 23:03:21 2012        
(r230790)
+++ head/sys/dev/ath/ath_hal/ar5212/ar5212.h    Mon Jan 30 23:07:27 2012        
(r230791)
@@ -628,5 +628,6 @@ extern      HAL_BOOL ar5212ProcessRadarEvent(
            struct ath_rx_status *rxs, uint64_t fulltsf, const char *buf,
            HAL_DFS_EVENT *event);
 extern HAL_BOOL ar5212IsFastClockEnabled(struct ath_hal *ah);
+extern uint32_t ar5212Get11nExtBusy(struct ath_hal *ah);
 
 #endif /* _ATH_AR5212_H_ */

Modified: head/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c     Mon Jan 30 23:03:21 
2012        (r230790)
+++ head/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c     Mon Jan 30 23:07:27 
2012        (r230791)
@@ -134,6 +134,7 @@ static const struct ath_hal_private ar52
        .ah_getDfsThresh                = ar5212GetDfsThresh,
        .ah_procRadarEvent              = ar5212ProcessRadarEvent,
        .ah_isFastClockEnabled          = ar5212IsFastClockEnabled,
+       .ah_get11nExtBusy               = ar5212Get11nExtBusy,
 
        /* Key Cache Functions */
        .ah_getKeyCacheSize             = ar5212GetKeyCacheSize,
@@ -839,6 +840,12 @@ ar5212FillCapabilityInfo(struct ath_hal 
        pCap->halChanHalfRate = AH_TRUE;
        pCap->halChanQuarterRate = AH_TRUE;
 
+       /*
+        * RSSI uses the combined field; some 11n NICs may use
+        * the control chain RSSI.
+        */
+       pCap->halUseCombinedRadarRssi = AH_TRUE;
+
        if (ath_hal_eepromGetFlag(ah, AR_EEP_RFKILL) &&
            ath_hal_eepromGet(ah, AR_EEP_RFSILENT, &ahpriv->ah_rfsilent) == 
HAL_OK) {
                /* NB: enabled by default */

Modified: head/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c       Mon Jan 30 23:03:21 
2012        (r230790)
+++ head/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c       Mon Jan 30 23:07:27 
2012        (r230791)
@@ -1233,3 +1233,13 @@ ar5212IsFastClockEnabled(struct ath_hal 
 {
        return AH_FALSE;
 }
+
+/*
+ * Return what percentage of the extension channel is busy.
+ * This is always disabled for AR5212 series NICs.
+ */
+uint32_t
+ar5212Get11nExtBusy(struct ath_hal *ah)
+{
+       return 0;
+}
_______________________________________________
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