Author: adrian
Date: Tue Mar 22 00:52:44 2011
New Revision: 219855
URL: http://svn.freebsd.org/changeset/base/219855

Log:
  Break out the RF mode setup into ar5416SetRfMode(), mirroring what ath9k does.

Modified:
  head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c

Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c      Tue Mar 22 00:43:58 
2011        (r219854)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c      Tue Mar 22 00:52:44 
2011        (r219855)
@@ -598,6 +598,29 @@ ar5416InitUserSettings(struct ath_hal *a
 #endif
 }
 
+static void
+ar5416SetRfMode(struct ath_hal *ah, const struct ieee80211_channel *chan)
+{
+       uint32_t rfMode;
+
+       if (chan == AH_NULL)
+               return;
+
+       /* treat channel B as channel G , no  B mode suport in owl */
+       rfMode = IEEE80211_IS_CHAN_CCK(chan) ?
+           AR_PHY_MODE_DYNAMIC : AR_PHY_MODE_OFDM;
+
+       if (AR_SREV_MERLIN_20(ah) && IS_5GHZ_FAST_CLOCK_EN(ah, chan)) {
+               /* phy mode bits for 5GHz channels require Fast Clock */
+               rfMode |= AR_PHY_MODE_DYNAMIC
+                      |  AR_PHY_MODE_DYN_CCK_DISABLE;
+       } else if (!AR_SREV_MERLIN_10_OR_LATER(ah)) {
+               rfMode |= IEEE80211_IS_CHAN_5GHZ(chan) ?
+                       AR_PHY_MODE_RF5GHZ : AR_PHY_MODE_RF2GHZ;
+       }
+       OS_REG_WRITE(ah, AR_PHY_MODE, rfMode);
+}
+
 /*
  * Places the hardware into reset and then pulls it out of reset
  */
@@ -629,22 +652,9 @@ ar5416ChipReset(struct ath_hal *ah, cons
         * with an active radio can result in corrupted shifts to the
         * radio device.
         */
-       if (chan != AH_NULL) { 
-               uint32_t rfMode;
+       if (chan != AH_NULL)
+               ar5416SetRfMode(ah, chan);
 
-               /* treat channel B as channel G , no  B mode suport in owl */
-               rfMode = IEEE80211_IS_CHAN_CCK(chan) ?
-                   AR_PHY_MODE_DYNAMIC : AR_PHY_MODE_OFDM;
-               if (AR_SREV_MERLIN_20(ah) && IS_5GHZ_FAST_CLOCK_EN(ah, chan)) {
-                       /* phy mode bits for 5GHz channels require Fast Clock */
-                       rfMode |= AR_PHY_MODE_DYNAMIC
-                              |  AR_PHY_MODE_DYN_CCK_DISABLE;
-               } else if (!AR_SREV_MERLIN_10_OR_LATER(ah)) {
-                       rfMode |= IEEE80211_IS_CHAN_5GHZ(chan) ?
-                               AR_PHY_MODE_RF5GHZ : AR_PHY_MODE_RF2GHZ;
-               }
-               OS_REG_WRITE(ah, AR_PHY_MODE, rfMode);
-       }
        return AH_TRUE; 
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to