svn commit: r220022 - head/sys/dev/ath/ath_hal

Adrian Chadd adrian at FreeBSD.org
Sat Mar 26 07:15:35 UTC 2011


Author: adrian
Date: Sat Mar 26 07:15:35 2011
New Revision: 220022
URL: http://svn.freebsd.org/changeset/base/220022

Log:
  Shuffle around the HAL_RX_FILTER bits to be slightly more sensible.
  
  The phyerr, radar and bssid-match bits aren't real bits, they map
  to enabling bits in other registers. Move those out of the way of
  valid RX filter bits.
  
  Add a few new fields from ath9k - compba, ps-poll, mcast-bcast-all.

Modified:
  head/sys/dev/ath/ath_hal/ah.h

Modified: head/sys/dev/ath/ath_hal/ah.h
==============================================================================
--- head/sys/dev/ath/ath_hal/ah.h	Sat Mar 26 06:21:05 2011	(r220021)
+++ head/sys/dev/ath/ath_hal/ah.h	Sat Mar 26 07:15:35 2011	(r220022)
@@ -290,6 +290,10 @@ typedef enum {
 
 /* Rx Filter Frame Types */
 typedef enum {
+	/*
+	 * These bits correspond to AR_RX_FILTER for all chips.
+	 * Not all bits are supported by all chips.
+	 */
 	HAL_RX_FILTER_UCAST	= 0x00000001,	/* Allow unicast frames */
 	HAL_RX_FILTER_MCAST	= 0x00000002,	/* Allow multicast frames */
 	HAL_RX_FILTER_BCAST	= 0x00000004,	/* Allow broadcast frames */
@@ -297,10 +301,20 @@ typedef enum {
 	HAL_RX_FILTER_BEACON	= 0x00000010,	/* Allow beacon frames */
 	HAL_RX_FILTER_PROM	= 0x00000020,	/* Promiscuous mode */
 	HAL_RX_FILTER_PROBEREQ	= 0x00000080,	/* Allow probe request frames */
-	HAL_RX_FILTER_PHYERR	= 0x00000100,	/* Allow phy errors */
-	HAL_RX_FILTER_PHYRADAR	= 0x00000200,	/* Allow phy radar errors */
 	HAL_RX_FILTER_COMPBAR	= 0x00000400,	/* Allow compressed BAR */
-	HAL_RX_FILTER_BSSID	= 0x00000800,	/* Disable BSSID match */
+	HAL_RX_FILTER_COMP_BA	= 0x00000800,	/* Allow compressed blockack */
+	HAL_RX_FILTER_PSPOLL	= 0x00004000,	/* Allow PS-POLL frames */
+	HAL_RX_FILTER_MCAST_BCAST_ALL	= 0x00008000,
+						/* Allow all mcast/bcast frames */
+
+	/*
+	 * Magic RX filter flags that aren't targetting hardware bits
+	 * but instead the HAL sets individual bits - eg PHYERR will result
+	 * in OFDM/CCK timing error frames being received.
+	 */
+	HAL_RX_FILTER_PHYERR	= 0x10000000,	/* Allow phy errors */
+	HAL_RX_FILTER_PHYRADAR	= 0x20000000,	/* Allow phy radar errors */
+	HAL_RX_FILTER_BSSID	= 0x40000000,	/* Disable BSSID match */
 } HAL_RX_FILTER;
 
 typedef enum {


More information about the svn-src-all mailing list