svn commit: r251340 - head/sys/dev/ath/ath_hal/ar5416
Adrian Chadd
adrian at FreeBSD.org
Mon Jun 3 19:14:30 UTC 2013
Author: adrian
Date: Mon Jun 3 19:14:29 2013
New Revision: 251340
URL: http://svnweb.freebsd.org/changeset/base/251340
Log:
Fix receive on the AR9285 (Kite) with only one antenna connected.
The main problem here is that fast and driver RX diversity isn't actually
configured; I need to figure out why that is. That said, this makes
the single-antenna connected AR9285 and AR2427 (AR9285 w/ no 11n) work
correctly.
PR: kern/179269
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 Mon Jun 3 19:13:44 2013 (r251339)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Mon Jun 3 19:14:29 2013 (r251340)
@@ -136,7 +136,20 @@ ar5416Reset(struct ath_hal *ah, HAL_OPMO
* Preserve the antenna on a channel change
*/
saveDefAntenna = OS_REG_READ(ah, AR_DEF_ANTENNA);
- if (saveDefAntenna == 0) /* XXX magic constants */
+
+ /*
+ * Don't do this for the AR9285 - it breaks RX for single
+ * antenna designs when diversity is disabled.
+ *
+ * I'm not sure what this was working around; it may be
+ * something to do with the AR5416. Certainly this register
+ * isn't supposed to be used by the MIMO chips for anything
+ * except for defining the default antenna when an external
+ * phase array / smart antenna is connected.
+ *
+ * See PR: kern/179269 .
+ */
+ if ((! AR_SREV_KITE(ah)) && saveDefAntenna == 0) /* XXX magic constants */
saveDefAntenna = 1;
/* Save hardware flag before chip reset clears the register */
More information about the svn-src-all
mailing list