AR5212 radar detection (was Fwd: svn commit: r240001 -
head/sys/dev/ath/ath_hal/ar5212)
Adrian Chadd
adrian at freebsd.org
Sun Sep 2 05:00:33 UTC 2012
Hi,
I've been doing some testing with this here AR5212 and straight pulse
detection (with no tuning for traffic interference or adjacent
traffic.)
This does fix most of the pulse detection issues I was seeing.
Everything except around 10uS pulses detect okay.
So next, NF calibration and tuning. Good luck brett!
Adrian
---------- Forwarded message ----------
From: Adrian Chadd <adrian at freebsd.org>
Date: 1 September 2012 21:56
Subject: svn commit: r240001 - head/sys/dev/ath/ath_hal/ar5212
To: src-committers at freebsd.org, svn-src-all at freebsd.org,
svn-src-head at freebsd.org
Author: adrian
Date: Sun Sep 2 04:56:29 2012
New Revision: 240001
URL: http://svn.freebsd.org/changeset/base/240001
Log:
AR5212 radar pulse fixes.
Fix the strong signal diversity capability setting - I had totally
messed up the indentation.
Set the default values to match what's in the .ini for now, rather than
what values I had previously gleaned from places. This seems to work
quite well for the early AR5212 NICs I have. Of course, later NICs
have different PHYs and the radar configuration is very card/board
dependent..
Tested:
* ath1: AR5212 mac 5.3 RF5111 phy 4.1
ath1: 2GHz radio: 0x0023; 5GHz radio: 0x0017
This detects 1, 5, 25, 50, 75, 100uS pulses reliably (with no interference.)
However, 10uS pulses don't detect reliably. That may be around the
transition between short and long pulses so some further tuning may
improve things.
Modified:
head/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c
Modified: head/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c Sun Sep 2
04:39:07 2012 (r240000)
+++ head/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c Sun Sep 2
04:56:29 2012 (r240001)
@@ -960,13 +960,13 @@ ar5212SetCapability(struct ath_hal *ah,
case 1: /* setting */
if (ahp->ah_phyPowerOn) {
if (capability == HAL_CAP_STRONG_DIV) {
- }
- v = OS_REG_READ(ah, AR_PHY_CCK_DETECT);
- if (setting)
- v |=
AR_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV;
- else
- v &=
~AR_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV;
- OS_REG_WRITE(ah, AR_PHY_CCK_DETECT, v);
+ v = OS_REG_READ(ah, AR_PHY_CCK_DETECT);
+ if (setting)
+ v |=
AR_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV;
+ else
+ v &=
~AR_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV;
+ OS_REG_WRITE(ah, AR_PHY_CCK_DETECT, v);
+ }
}
ahp->ah_diversity = (setting != 0);
return AH_TRUE;
@@ -1243,11 +1243,11 @@ ar5212EnableDfs(struct ath_hal *ah, HAL_
/*
* Parameters for the AR5212 PHY.
*/
-#define AR5212_DFS_FIRPWR -41
-#define AR5212_DFS_RRSSI 12
-#define AR5212_DFS_HEIGHT 20
-#define AR5212_DFS_PRSSI 22
-#define AR5212_DFS_INBAND 6
+#define AR5212_DFS_FIRPWR -35
+#define AR5212_DFS_RRSSI 20
+#define AR5212_DFS_HEIGHT 14
+#define AR5212_DFS_PRSSI 6
+#define AR5212_DFS_INBAND 4
/*
* Default parameters for the AR5413 PHY.
@@ -1261,7 +1261,6 @@ ar5212EnableDfs(struct ath_hal *ah, HAL_
#define AR5413_DFS_RELSTEP 31
#define AR5413_DFS_MAXLEN 255
-
HAL_BOOL
ar5212GetDfsDefaultThresh(struct ath_hal *ah, HAL_PHYERR_PARAM *pe)
{
More information about the freebsd-wireless
mailing list