svn commit: r227741 - head/sys/dev/ath/ath_hal/ar5416

Adrian Chadd adrian at FreeBSD.org
Sat Nov 19 21:12:35 UTC 2011


Author: adrian
Date: Sat Nov 19 21:12:35 2011
New Revision: 227741
URL: http://svn.freebsd.org/changeset/base/227741

Log:
  Add some (totally untested!) code to correctly set the RF half/quarter
  mode configuration registers. This is apparently required for correct
  behaviour, but also requires the chip to actually officially support it.
  
  Sponsored by:	Hobnob, Inc.

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	Sat Nov 19 21:05:31 2011	(r227740)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c	Sat Nov 19 21:12:35 2011	(r227741)
@@ -724,6 +724,20 @@ ar5416SetRfMode(struct ath_hal *ah, cons
 		rfMode |= IEEE80211_IS_CHAN_5GHZ(chan) ?
 			AR_PHY_MODE_RF5GHZ : AR_PHY_MODE_RF2GHZ;
 	}
+
+	/*
+	 * Set half/quarter mode flags if required.
+	 *
+	 * This doesn't change the IFS timings at all; that needs to
+	 * be done as part of the MAC setup.  Similarly, the PLL
+	 * configuration also needs some changes for the half/quarter
+	 * rate clock.
+	 */
+	if (IEEE80211_IS_CHAN_HALF(chan))
+		rfMode |= AR_PHY_MODE_HALF;
+	else if (IEEE80211_IS_CHAN_QUARTER(chan))
+		rfMode |= AR_PHY_MODE_QUARTER;
+
 	OS_REG_WRITE(ah, AR_PHY_MODE, rfMode);
 }
 


More information about the svn-src-head mailing list