svn commit: r221596 - in head/sys/dev/ath/ath_hal: . ar5416 ar9001 ar9002

Adrian Chadd adrian at FreeBSD.org
Sat May 7 11:05:17 UTC 2011


Author: adrian
Date: Sat May  7 11:05:16 2011
New Revision: 221596
URL: http://svn.freebsd.org/changeset/base/221596

Log:
  Read in the extended regulatory domain flags so future code can use them.
  
  These describe FCC/Japan channel and DFS behaviour.
  
  The AR9285 and later chips don't set these bits in the eeprom, the correct
  behaviour is to just assume all five bits are enabled.

Modified:
  head/sys/dev/ath/ath_hal/ah_internal.h
  head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
  head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c
  head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c
  head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c
  head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c

Modified: head/sys/dev/ath/ath_hal/ah_internal.h
==============================================================================
--- head/sys/dev/ath/ath_hal/ah_internal.h	Sat May  7 11:04:36 2011	(r221595)
+++ head/sys/dev/ath/ath_hal/ah_internal.h	Sat May  7 11:05:16 2011	(r221596)
@@ -298,6 +298,7 @@ struct ath_hal_private {
 	 * State for regulatory domain handling.
 	 */
 	HAL_REG_DOMAIN	ah_currentRD;		/* EEPROM regulatory domain */
+	HAL_REG_DOMAIN	ah_currentRDext;	/* EEPROM extended regdomain flags */
 	HAL_CHANNEL_INTERNAL ah_channels[AH_MAXCHAN]; /* private chan state */
 	u_int		ah_nchan;		/* valid items in ah_channels */
 	const struct regDomain *ah_rd2GHz;	/* reg state for 2G band */

Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c	Sat May  7 11:04:36 2011	(r221595)
+++ head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c	Sat May  7 11:05:16 2011	(r221596)
@@ -371,6 +371,8 @@ ar5416Attach(uint16_t devid, HAL_SOFTC s
 	/* Read Reg Domain */
 	AH_PRIVATE(ah)->ah_currentRD =
 	    ath_hal_eepromGet(ah, AR_EEP_REGDMN_0, AH_NULL);
+	AH_PRIVATE(ah)->ah_currentRDext =
+	    ath_hal_eepromGet(ah, AR_EEP_REGDMN_1, AH_NULL);
 
 	/*
 	 * ah_miscMode is populated by ar5416FillCapabilityInfo()

Modified: head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c	Sat May  7 11:04:36 2011	(r221595)
+++ head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c	Sat May  7 11:05:16 2011	(r221596)
@@ -236,6 +236,9 @@ ar9130Attach(uint16_t devid, HAL_SOFTC s
 	/* Read Reg Domain */
 	AH_PRIVATE(ah)->ah_currentRD =
 	    ath_hal_eepromGet(ah, AR_EEP_REGDMN_0, AH_NULL);
+	AH_PRIVATE(ah)->ah_currentRDext =
+	    ath_hal_eepromGet(ah, AR_EEP_REGDMN_1, AH_NULL);
+
 
 	/*
 	 * ah_miscMode is populated by ar5416FillCapabilityInfo()

Modified: head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c	Sat May  7 11:04:36 2011	(r221595)
+++ head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c	Sat May  7 11:05:16 2011	(r221596)
@@ -241,6 +241,8 @@ ar9160Attach(uint16_t devid, HAL_SOFTC s
 	/* Read Reg Domain */
 	AH_PRIVATE(ah)->ah_currentRD =
 	    ath_hal_eepromGet(ah, AR_EEP_REGDMN_0, AH_NULL);
+	AH_PRIVATE(ah)->ah_currentRDext =
+	    ath_hal_eepromGet(ah, AR_EEP_REGDMN_1, AH_NULL);
 
 	/*
 	 * ah_miscMode is populated by ar5416FillCapabilityInfo()

Modified: head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c	Sat May  7 11:04:36 2011	(r221595)
+++ head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c	Sat May  7 11:05:16 2011	(r221596)
@@ -325,6 +325,8 @@ ar9280Attach(uint16_t devid, HAL_SOFTC s
 	/* Read Reg Domain */
 	AH_PRIVATE(ah)->ah_currentRD =
 	    ath_hal_eepromGet(ah, AR_EEP_REGDMN_0, AH_NULL);
+	AH_PRIVATE(ah)->ah_currentRDext =
+	    ath_hal_eepromGet(ah, AR_EEP_REGDMN_1, AH_NULL);
 
 	/*
 	 * ah_miscMode is populated by ar5416FillCapabilityInfo()

Modified: head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c	Sat May  7 11:04:36 2011	(r221595)
+++ head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c	Sat May  7 11:05:16 2011	(r221596)
@@ -284,6 +284,11 @@ ar9285Attach(uint16_t devid, HAL_SOFTC s
 	/* Read Reg Domain */
 	AH_PRIVATE(ah)->ah_currentRD =
 	    ath_hal_eepromGet(ah, AR_EEP_REGDMN_0, AH_NULL);
+	/*
+         * For Kite and later chipsets, the following bits are not
+	 * programmed in EEPROM and so are set as enabled always.
+	 */
+	AH_PRIVATE(ah)->ah_currentRDext = AR9285_RDEXT_DEFAULT;
 
 	/*
 	 * ah_miscMode is populated by ar5416FillCapabilityInfo()


More information about the svn-src-head mailing list