Author: bms
Date: Thu Mar 12 03:09:11 2009
New Revision: 189720
URL: http://svn.freebsd.org/changeset/base/189720

Log:
  Merge the open source Atheros HAL from HEAD to STABLE.
  
  This adds support for the AH_SUPPORT_AR5416 kernel
  configuration option, and removes the ath_rate*
  and ath_hal modules. Their kernel options are not
  however removed -- please see UPDATING.
  
  Tested on an IBM/Lenovo T43 and ASUS EeePC 701 in both
  STA and HostAP modes.
  
  Submitted by: sam

Deleted:
  stable/7/sys/modules/ath_hal/
  stable/7/sys/modules/ath_rate_amrr/
  stable/7/sys/modules/ath_rate_onoe/
  stable/7/sys/modules/ath_rate_sample/
Modified:
  stable/7/UPDATING
  stable/7/sys/amd64/conf/GENERIC
  stable/7/sys/amd64/conf/NOTES
  stable/7/sys/arm/conf/AVILA
  stable/7/sys/conf/files
  stable/7/sys/conf/files.amd64
  stable/7/sys/conf/files.arm
  stable/7/sys/conf/files.i386
  stable/7/sys/conf/files.pc98
  stable/7/sys/conf/files.powerpc
  stable/7/sys/conf/files.sparc64
  stable/7/sys/conf/kern.pre.mk
  stable/7/sys/conf/options
  stable/7/sys/dev/ath/ah_osdep.c
  stable/7/sys/dev/ath/ah_osdep.h
  stable/7/sys/dev/ath/ath_rate/amrr/amrr.c
  stable/7/sys/dev/ath/ath_rate/onoe/onoe.c
  stable/7/sys/dev/ath/ath_rate/sample/sample.c
  stable/7/sys/dev/ath/if_ath.c
  stable/7/sys/dev/ath/if_ath_pci.c
  stable/7/sys/dev/ath/if_athvar.h
  stable/7/sys/i386/conf/GENERIC
  stable/7/sys/i386/conf/NOTES
  stable/7/sys/modules/Makefile
  stable/7/sys/modules/ath/Makefile
  stable/7/sys/pc98/conf/GENERIC
  stable/7/sys/pc98/conf/NOTES
  stable/7/sys/sparc64/conf/GENERIC

Modified: stable/7/UPDATING
==============================================================================
--- stable/7/UPDATING   Thu Mar 12 02:51:55 2009        (r189719)
+++ stable/7/UPDATING   Thu Mar 12 03:09:11 2009        (r189720)
@@ -8,6 +8,16 @@ Items affecting the ports and packages s
 /usr/ports/UPDATING.  Please read that file before running
 portupgrade.
 
+20090312:
+       The open-source Atheros HAL has been merged from HEAD
+       to STABLE.
+       The kernel compile-time option AH_SUPPORT_AR5416 has been
+       added to support certain newer Atheros parts, particularly
+       PCI-Express chipsets.
+       The following modules are no longer available, and should be
+       removed from MODULES_OVERRIDE and/or loader.conf:-
+        ath_hal ath_rate_amrr ath_rate_onoe ath_rate_sample
+
 20090207:
        ZFS users on amd64 machines with 4GB or more of RAM should
        reevaluate their need for setting vm.kmem_size_max and

Modified: stable/7/sys/amd64/conf/GENERIC
==============================================================================
--- stable/7/sys/amd64/conf/GENERIC     Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/amd64/conf/GENERIC     Thu Mar 12 03:09:11 2009        
(r189720)
@@ -242,6 +242,7 @@ device              wlan_scan_sta   # 802.11 STA mode 
 device         an              # Aironet 4500/4800 802.11 wireless NICs.
 device         ath             # Atheros pci/cardbus NIC's
 device         ath_hal         # Atheros HAL (Hardware Access Layer)
+options                AH_SUPPORT_AR5416       # enable AR5416 tx/rx 
descriptors
 device         ath_rate_sample # SampleRate tx rate control for ath
 device         awi             # BayStack 660 and others
 device         ral             # Ralink Technology RT2500 wireless NICs.

Modified: stable/7/sys/amd64/conf/NOTES
==============================================================================
--- stable/7/sys/amd64/conf/NOTES       Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/amd64/conf/NOTES       Thu Mar 12 03:09:11 2009        
(r189720)
@@ -331,6 +331,7 @@ device              wpi
 
 device         ath
 device         ath_hal         # Atheros HAL (includes binary component)
+options                AH_SUPPORT_AR5416       # enable AR5416 tx/rx 
descriptors
 #device                ath_rate_amrr   # AMRR rate control for ath driver
 #device                ath_rate_onoe   # Onoe rate control for ath driver
 device         ath_rate_sample # SampleRate rate control for the ath driver

Modified: stable/7/sys/arm/conf/AVILA
==============================================================================
--- stable/7/sys/arm/conf/AVILA Thu Mar 12 02:51:55 2009        (r189719)
+++ stable/7/sys/arm/conf/AVILA Thu Mar 12 03:09:11 2009        (r189720)
@@ -133,6 +133,7 @@ device              wlan            # 802.11 support
 #device                wlan_tkip       # 802.11 TKIP support
 device         ath             # Atheros pci/cardbus NIC's
 device         ath_hal         # Atheros HAL (Hardware Access Layer)
+options                AH_SUPPORT_AR5416       # enable AR5416 tx/rx 
descriptors
 device         ath_rate_sample # SampleRate tx rate control for ath
 options                ATH_DEBUG
 

Modified: stable/7/sys/conf/files
==============================================================================
--- stable/7/sys/conf/files     Thu Mar 12 02:51:55 2009        (r189719)
+++ stable/7/sys/conf/files     Thu Mar 12 03:09:11 2009        (r189720)
@@ -475,18 +475,180 @@ dev/ata/atapi-cam.c              optional atapicam
 dev/ata/atapi-cd.c             optional atapicd
 dev/ata/atapi-fd.c             optional atapifd
 dev/ata/atapi-tape.c           optional atapist
-dev/ath/ah_osdep.c optional ath_hal \
+#
+dev/ath/if_ath.c               optional ath \
+       compile-with "${NORMAL_C} -I$S/dev/ath"
+dev/ath/if_ath_pci.c           optional ath pci \
+       compile-with "${NORMAL_C} -I$S/dev/ath"
+dev/ath/ah_osdep.c             optional ath \
+       compile-with "${NORMAL_C} -I$S/dev/ath"
+dev/ath/ath_hal/ah.c           optional ath \
+       compile-with "${NORMAL_C} -I$S/dev/ath"
+dev/ath/ath_hal/ah_eeprom_v1.c optional ath_hal | ath_ar5210 \
        compile-with "${NORMAL_C} -I$S/dev/ath"
+dev/ath/ath_hal/ah_eeprom_v3.c optional ath_hal | ath_ar5211 | ath_ar5212 \
+       compile-with "${NORMAL_C} -I$S/dev/ath"
+dev/ath/ath_hal/ah_eeprom_v14.c optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath"
+dev/ath/ath_hal/ah_regdomain.c optional ath \
+       compile-with "${NORMAL_C} -I$S/dev/ath"
+dev/ath/ath_hal/ar5210/ar5210_attach.c         optional ath_hal | ath_ar5210 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5210/ar5210_beacon.c         optional ath_hal | ath_ar5210 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5210/ar5210_interrupts.c     optional ath_hal | ath_ar5210 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5210/ar5210_keycache.c       optional ath_hal | ath_ar5210 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5210/ar5210_misc.c           optional ath_hal | ath_ar5210 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5210/ar5210_phy.c            optional ath_hal | ath_ar5210 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5210/ar5210_power.c          optional ath_hal | ath_ar5210 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5210/ar5210_recv.c           optional ath_hal | ath_ar5210 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5210/ar5210_reset.c          optional ath_hal | ath_ar5210 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5210/ar5210_xmit.c           optional ath_hal | ath_ar5210 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5211/ar5211_attach.c         optional ath_hal | ath_ar5211 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5211/ar5211_beacon.c         optional ath_hal | ath_ar5211 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5211/ar5211_interrupts.c     optional ath_hal | ath_ar5211 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5211/ar5211_keycache.c       optional ath_hal | ath_ar5211 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5211/ar5211_misc.c           optional ath_hal | ath_ar5211 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5211/ar5211_phy.c            optional ath_hal | ath_ar5211 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5211/ar5211_power.c          optional ath_hal | ath_ar5211 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5211/ar5211_recv.c           optional ath_hal | ath_ar5211 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5211/ar5211_reset.c          optional ath_hal | ath_ar5211 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5211/ar5211_xmit.c           optional ath_hal | ath_ar5211 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5212_ani.c \
+       optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5212_attach.c \
+       optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5212_beacon.c \
+       optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5212_eeprom.c \
+       optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5212_gpio.c \
+       optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5212_interrupts.c \
+       optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5212_keycache.c \
+       optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5212_misc.c \
+       optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5212_phy.c \
+       optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5212_power.c \
+       optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5212_recv.c \
+       optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5212_reset.c \
+       optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5212_rfgain.c \
+       optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5212_xmit.c \
+       optional ath_hal | ath_ar5212 | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar2316.c        optional ath_rf2316 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar2317.c        optional ath_rf2317 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar2413.c        optional ath_hal | ath_rf2413 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar2425.c        optional ath_hal | ath_rf2425 | 
ath_rf2417 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5111.c        optional ath_hal | ath_rf5111 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5112.c        optional ath_hal | ath_rf5112 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5212/ar5413.c        optional ath_hal | ath_rf5413 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar2133.c        optional ath_hal | ath_ar5416 | 
ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_ani.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_attach.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_beacon.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_cal.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_cal_iq.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_cal_adcgain.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_cal_adcdc.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_eeprom.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_gpio.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_interrupts.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_keycache.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_misc.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_phy.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_power.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_recv.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_reset.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar5416_xmit.c \
+       optional ath_hal | ath_ar5416 | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
+dev/ath/ath_hal/ar5416/ar9160_attach.c optional ath_hal | ath_ar9160 \
+       compile-with "${NORMAL_C} -I$S/dev/ath -I$S/dev/ath/ath_hal"
 dev/ath/ath_rate/amrr/amrr.c   optional ath_rate_amrr \
        compile-with "${NORMAL_C} -I$S/dev/ath"
 dev/ath/ath_rate/onoe/onoe.c   optional ath_rate_onoe \
        compile-with "${NORMAL_C} -I$S/dev/ath"
 dev/ath/ath_rate/sample/sample.c       optional ath_rate_sample \
        compile-with "${NORMAL_C} -I$S/dev/ath"
-dev/ath/if_ath.c               optional ath \
-       compile-with "${NORMAL_C} -I$S/dev/ath"
-dev/ath/if_ath_pci.c           optional ath pci \
-       compile-with "${NORMAL_C} -I$S/dev/ath"
 dev/awi/am79c930.c             optional awi
 dev/awi/awi.c                  optional awi
 dev/awi/if_awi_pccard.c                optional awi pccard

Modified: stable/7/sys/conf/files.amd64
==============================================================================
--- stable/7/sys/conf/files.amd64       Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/conf/files.amd64       Thu Mar 12 03:09:11 2009        
(r189720)
@@ -47,16 +47,6 @@ ukbdmap.h                    optional        
ukbd_dflt_keymap        \
        no-obj no-implicit-rule before-depend                           \
        clean           "ukbdmap.h"
 #
-hal.o                          optional        ath_hal                 \
-       dependency      "$S/contrib/dev/ath/public/x86_64-elf.hal.o.uu" \
-       compile-with    "uudecode < 
$S/contrib/dev/ath/public/x86_64-elf.hal.o.uu" \
-       no-implicit-rule
-opt_ah.h                       optional        ath_hal                 \
-       dependency      "$S/contrib/dev/ath/public/x86_64-elf.opt_ah.h" \
-       compile-with    "rm -f opt_ah.h; cp 
$S/contrib/dev/ath/public/x86_64-elf.opt_ah.h opt_ah.h" \
-       no-obj no-implicit-rule before-depend                           \
-       clean           "opt_ah.h"
-#
 nvenetlib.o                    optional        nve pci                 \
        dependency      "$S/contrib/dev/nve/amd64/nvenetlib.o.bz2.uu"   \
        compile-with    "uudecode $S/contrib/dev/nve/amd64/nvenetlib.o.bz2.uu ; 
bzip2 -df nvenetlib.o.bz2" \

Modified: stable/7/sys/conf/files.arm
==============================================================================
--- stable/7/sys/conf/files.arm Thu Mar 12 02:51:55 2009        (r189719)
+++ stable/7/sys/conf/files.arm Thu Mar 12 03:09:11 2009        (r189720)
@@ -52,13 +52,6 @@ geom/geom_bsd.c                      standard
 geom/geom_bsd_enc.c            standard
 geom/geom_mbr.c                        standard
 geom/geom_mbr_enc.c            standard
-hal.o                          optional        ath_hal         \
-       compile-with            "ATH_HAL_CPU=`echo ${CONF_CFLAGS}|sed 
's/.*-mcpu=\([a-zA-Z0-9]*\).*/\1/'`; ATH_ENDIAN=`if (echo ${CC}|grep 
mbig-endian>/dev/null); then echo be; else echo le; fi;`; uudecode < 
$S/contrib/dev/ath/public/$$ATH_HAL_CPU-$$ATH_ENDIAN-elf.hal.o.uu" \
-       no-implicit-rule
-opt_ah.h                       optional        ath_hal         \
-       compile-with            "ATH_HAL_CPU=`echo ${CONF_CFLAGS}|sed 
's/.*-mcpu=\([a-zA-Z0-9]*\).*/\1/'`; ATH_ENDIAN=`if (echo ${CC}|grep 
mbig-endian>/dev/null); then echo be; else echo le; fi;`; rm -f opt_ah.h; cp 
$S/contrib/dev/ath/public/$$ATH_HAL_CPU-$$ATH_ENDIAN-elf.opt_ah.h opt_ah.h" \
-       no-obj no-implicit-rule before-depend                   \
-       clean           "opt_ah.h"
 libkern/arm/divsi3.S           standard
 libkern/arm/ffs.S              standard
 libkern/arm/muldi3.c           standard

Modified: stable/7/sys/conf/files.i386
==============================================================================
--- stable/7/sys/conf/files.i386        Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/conf/files.i386        Thu Mar 12 03:09:11 2009        
(r189720)
@@ -51,16 +51,6 @@ trlld.o                              optional        oltr    
                \
        compile-with    "uudecode < $S/contrib/dev/oltr/i386-elf.trlld.o.uu"    
\
        no-implicit-rule
 #
-hal.o                          optional        ath_hal                 \
-       dependency      "$S/contrib/dev/ath/public/i386-elf.hal.o.uu"   \
-       compile-with    "uudecode < 
$S/contrib/dev/ath/public/i386-elf.hal.o.uu" \
-       no-implicit-rule
-opt_ah.h                       optional        ath_hal                 \
-       dependency      "$S/contrib/dev/ath/public/i386-elf.opt_ah.h"   \
-       compile-with    "rm -f opt_ah.h; cp 
$S/contrib/dev/ath/public/i386-elf.opt_ah.h opt_ah.h" \
-       no-obj no-implicit-rule before-depend                           \
-       clean           "opt_ah.h"
-#
 nvenetlib.o                    optional        nve pci                 \
        dependency      "$S/contrib/dev/nve/i386/nvenetlib.o.bz2.uu"    \
        compile-with    "uudecode $S/contrib/dev/nve/i386/nvenetlib.o.bz2.uu ; 
bzip2 -df nvenetlib.o.bz2" \

Modified: stable/7/sys/conf/files.pc98
==============================================================================
--- stable/7/sys/conf/files.pc98        Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/conf/files.pc98        Thu Mar 12 03:09:11 2009        
(r189720)
@@ -43,16 +43,6 @@ trlld.o                              optional        oltr    
                \
        compile-with    "uudecode < $S/contrib/dev/oltr/i386-elf.trlld.o.uu"    
\
        no-implicit-rule
 #
-hal.o                          optional        ath_hal                 \
-       dependency      "$S/contrib/dev/ath/public/i386-elf.hal.o.uu"   \
-       compile-with    "uudecode < 
$S/contrib/dev/ath/public/i386-elf.hal.o.uu" \
-       no-implicit-rule
-opt_ah.h                       optional        ath_hal                 \
-       dependency      "$S/contrib/dev/ath/public/i386-elf.opt_ah.h"   \
-       compile-with    "rm -f opt_ah.h; cp 
$S/contrib/dev/ath/public/i386-elf.opt_ah.h opt_ah.h" \
-       no-obj no-implicit-rule before-depend                           \
-       clean           "opt_ah.h"
-#
 compat/linprocfs/linprocfs.c   optional linprocfs
 compat/linsysfs/linsysfs.c     optional linsysfs
 compat/linux/linux_emul.c      optional compat_linux

Modified: stable/7/sys/conf/files.powerpc
==============================================================================
--- stable/7/sys/conf/files.powerpc     Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/conf/files.powerpc     Thu Mar 12 03:09:11 2009        
(r189720)
@@ -14,16 +14,6 @@ font.h                          optional
        no-obj no-implicit-rule before-depend                           \
        clean   "font.h ${SC_DFLT_FONT}-8x14 ${SC_DFLT_FONT}-8x16 
${SC_DFLT_FONT}-8x8"
 #
-hal.o                          optional        ath_hal                 \
-       dependency      "$S/contrib/dev/ath/public/powerpc-be-elf.hal.o.uu"     
\
-       compile-with    "uudecode < 
$S/contrib/dev/ath/public/powerpc-be-elf.hal.o.uu" \
-       no-implicit-rule
-opt_ah.h                       optional        ath_hal                 \
-       dependency      "$S/contrib/dev/ath/public/powerpc-be-elf.opt_ah.h"     
\
-       compile-with    "rm -f opt_ah.h; cp 
$S/contrib/dev/ath/public/powerpc-be-elf.opt_ah.h opt_ah.h" \
-       no-obj no-implicit-rule before-depend                           \
-       clean           "opt_ah.h"
-#
 
 dev/bm/if_bm.c                 optional        bm powermac
 dev/fb/fb.c                    optional        sc

Modified: stable/7/sys/conf/files.sparc64
==============================================================================
--- stable/7/sys/conf/files.sparc64     Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/conf/files.sparc64     Thu Mar 12 03:09:11 2009        
(r189720)
@@ -22,16 +22,6 @@ ukbdmap.h                    optional        
ukbd_dflt_keymap        \
        no-obj no-implicit-rule before-depend                           \
        clean           "ukbdmap.h"
 #
-hal.o                          optional        ath_hal                 \
-       dependency      "$S/contrib/dev/ath/public/sparc64-be-elf.hal.o.uu"     
\
-       compile-with    "uudecode < 
$S/contrib/dev/ath/public/sparc64-be-elf.hal.o.uu" \
-       no-implicit-rule
-opt_ah.h                       optional        ath_hal                 \
-       dependency      "$S/contrib/dev/ath/public/sparc64-be-elf.opt_ah.h"     
\
-       compile-with    "rm -f opt_ah.h; cp 
$S/contrib/dev/ath/public/sparc64-be-elf.opt_ah.h opt_ah.h" \
-       no-obj no-implicit-rule before-depend                           \
-       clean           "opt_ah.h"
-#
 crypto/blowfish/bf_enc.c       optional        crypto | ipsec 
 crypto/des/des_enc.c           optional        crypto | ipsec | netsmb
 dev/atkbdc/atkbd.c             optional        atkbd atkbdc

Modified: stable/7/sys/conf/kern.pre.mk
==============================================================================
--- stable/7/sys/conf/kern.pre.mk       Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/conf/kern.pre.mk       Thu Mar 12 03:09:11 2009        
(r189720)
@@ -65,8 +65,8 @@ INCLUDES+= -I$S/contrib/ipfilter
 # ... and the same for pf
 INCLUDES+= -I$S/contrib/pf
 
-# ... and the same for Atheros HAL
-INCLUDES+= -I$S/dev/ath
+# ... and the same for ath
+INCLUDES+= -I$S/dev/ath -I$S/dev/ath/ath_hal
 
 # ... and the same for the NgATM stuff
 INCLUDES+= -I$S/contrib/ngatm

Modified: stable/7/sys/conf/options
==============================================================================
--- stable/7/sys/conf/options   Thu Mar 12 02:51:55 2009        (r189719)
+++ stable/7/sys/conf/options   Thu Mar 12 03:09:11 2009        (r189720)
@@ -729,6 +729,21 @@ ATH_RXBUF          opt_ath.h
 ATH_DIAGAPI            opt_ath.h
 ATH_TX99_DIAG          opt_ath.h
 
+# options for the Atheros hal
+AH_SUPPORT_AR5416      opt_ah.h
+
+AH_DEBUG               opt_ah.h
+AH_ASSERT              opt_ah.h
+AH_DEBUG_ALQ           opt_ah.h
+AH_REGOPS_FUNC         opt_ah.h
+AH_WRITE_REGDOMAIN     opt_ah.h
+AH_DEBUG_COUNTRY       opt_ah.h
+AH_WRITE_EEPROM                opt_ah.h
+AH_PRIVATE_DIAG                opt_ah.h
+AH_NEED_DESC_SWAP      opt_ah.h
+AH_USE_INIPDGAIN       opt_ah.h
+AH_SUPPORT_11D         opt_ah.h
+
 # dcons options 
 DCONS_BUF_SIZE         opt_dcons.h
 DCONS_POLL_HZ          opt_dcons.h

Modified: stable/7/sys/dev/ath/ah_osdep.c
==============================================================================
--- stable/7/sys/dev/ath/ah_osdep.c     Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/dev/ath/ah_osdep.c     Thu Mar 12 03:09:11 2009        
(r189720)
@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting
+ * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -43,7 +43,7 @@
 
 #include <net/ethernet.h>              /* XXX for ether_sprintf */
 
-#include <contrib/dev/ath/ah.h>
+#include <dev/ath/ath_hal/ah.h>
 
 /*
  * WiSoC boards overload the bus tag with information about the
@@ -56,7 +56,7 @@
 #define        BUSTAG(ah) \
        ((bus_space_tag_t) ((struct ar531x_config *)((ah)->ah_st))->tag)
 #else
-#define        BUSTAG(ah)      ((bus_space_tag_t) (ah)->ah_st)
+#define        BUSTAG(ah)      ((ah)->ah_st)
 #endif
 
 extern void ath_hal_printf(struct ath_hal *, const char*, ...)
@@ -71,8 +71,12 @@ extern       void ath_hal_assert_failed(const 
                int lineno, const char* msg);
 #endif
 #ifdef AH_DEBUG
+#if HAL_ABI_VERSION >= 0x08090101
+extern void HALDEBUG(struct ath_hal *ah, u_int mask, const char* fmt, ...);
+#else
 extern void HALDEBUG(struct ath_hal *ah, const char* fmt, ...);
 extern void HALDEBUGn(struct ath_hal *ah, u_int level, const char* fmt, ...);
+#endif
 #endif /* AH_DEBUG */
 
 /* NB: put this here instead of the driver to avoid circular references */
@@ -86,9 +90,6 @@ SYSCTL_INT(_hw_ath_hal, OID_AUTO, debug,
 TUNABLE_INT("hw.ath.hal.debug", &ath_hal_debug);
 #endif /* AH_DEBUG */
 
-SYSCTL_STRING(_hw_ath_hal, OID_AUTO, version, CTLFLAG_RD, ath_hal_version, 0,
-       "Atheros HAL version");
-
 /* NB: these are deprecated; they exist for now for compatibility */
 int    ath_hal_dma_beacon_response_time = 2;   /* in TU's */
 SYSCTL_INT(_hw_ath_hal, OID_AUTO, dma_brt, CTLFLAG_RW,
@@ -139,6 +140,18 @@ ath_hal_ether_sprintf(const u_int8_t *ma
 }
 
 #ifdef AH_DEBUG
+#if HAL_ABI_VERSION >= 0x08090101
+void
+HALDEBUG(struct ath_hal *ah, u_int mask, const char* fmt, ...)
+{
+       if (ath_hal_debug & mask) {
+               __va_list ap;
+               va_start(ap, fmt);
+               ath_hal_vprintf(ah, fmt, ap);
+               va_end(ap);
+       }
+}
+#else
 void
 HALDEBUG(struct ath_hal *ah, const char* fmt, ...)
 {
@@ -160,6 +173,7 @@ HALDEBUGn(struct ath_hal *ah, u_int leve
                va_end(ap);
        }
 }
+#endif
 #endif /* AH_DEBUG */
 
 #ifdef AH_DEBUG_ALQ
@@ -178,7 +192,7 @@ HALDEBUGn(struct ath_hal *ah, u_int leve
  */
 #include <sys/alq.h>
 #include <sys/pcpu.h>
-#include <contrib/dev/ath/ah_decode.h>
+#include <dev/ath/ath_hal/ah_decode.h>
 
 static struct alq *ath_hal_alq;
 static int ath_hal_alq_emitdev;        /* need to emit DEVICE record */
@@ -256,7 +270,7 @@ void
 ath_hal_reg_write(struct ath_hal *ah, u_int32_t reg, u_int32_t val)
 {
        bus_space_tag_t tag = BUSTAG(ah);
-       bus_space_handle_t h = (bus_space_handle_t) ah->ah_sh;
+       bus_space_handle_t h = ah->ah_sh;
 
        if (ath_hal_alq) {
                struct ale *ale = ath_hal_alq_get(ah);
@@ -280,7 +294,7 @@ u_int32_t
 ath_hal_reg_read(struct ath_hal *ah, u_int32_t reg)
 {
        bus_space_tag_t tag = BUSTAG(ah);
-       bus_space_handle_t h = (bus_space_handle_t) ah->ah_sh;
+       bus_space_handle_t h = ah->ah_sh;
        u_int32_t val;
 
 #if _BYTE_ORDER == _BIG_ENDIAN
@@ -332,7 +346,7 @@ void
 ath_hal_reg_write(struct ath_hal *ah, u_int32_t reg, u_int32_t val)
 {
        bus_space_tag_t tag = BUSTAG(ah);
-       bus_space_handle_t h = (bus_space_handle_t) ah->ah_sh;
+       bus_space_handle_t h = ah->ah_sh;
 
 #if _BYTE_ORDER == _BIG_ENDIAN
        if (reg >= 0x4000 && reg < 0x5000)
@@ -346,7 +360,7 @@ u_int32_t
 ath_hal_reg_read(struct ath_hal *ah, u_int32_t reg)
 {
        bus_space_tag_t tag = BUSTAG(ah);
-       bus_space_handle_t h = (bus_space_handle_t) ah->ah_sh;
+       bus_space_handle_t h = ah->ah_sh;
        u_int32_t val;
 
 #if _BYTE_ORDER == _BIG_ENDIAN
@@ -398,37 +412,3 @@ ath_hal_memcpy(void *dst, const void *sr
 {
        return memcpy(dst, src, n);
 }
-
-/*
- * Module glue.
- */
-
-static int
-ath_hal_modevent(module_t mod, int type, void *unused)
-{
-       const char *sep;
-       int i;
-
-       switch (type) {
-       case MOD_LOAD:
-               printf("ath_hal: %s (", ath_hal_version);
-               sep = "";
-               for (i = 0; ath_hal_buildopts[i] != NULL; i++) {
-                       printf("%s%s", sep, ath_hal_buildopts[i]);
-                       sep = ", ";
-               }
-               printf(")\n");
-               return 0;
-       case MOD_UNLOAD:
-               return 0;
-       }
-       return EINVAL;
-}
-
-static moduledata_t ath_hal_mod = {
-       "ath_hal",
-       ath_hal_modevent,
-       0
-};
-DECLARE_MODULE(ath_hal, ath_hal_mod, SI_SUB_DRIVERS, SI_ORDER_ANY);
-MODULE_VERSION(ath_hal, 1);

Modified: stable/7/sys/dev/ath/ah_osdep.h
==============================================================================
--- stable/7/sys/dev/ath/ah_osdep.h     Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/dev/ath/ah_osdep.h     Thu Mar 12 03:09:11 2009        
(r189720)
@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting
+ * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -33,13 +33,29 @@
 /*
  * Atheros Hardware Access Layer (HAL) OS Dependent Definitions.
  */
+#include <sys/cdefs.h>
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/endian.h>
+#include <sys/linker_set.h>
 
 #include <machine/bus.h>
 
 /*
+ * Bus i/o type definitions.
+ */
+typedef void *HAL_SOFTC;
+typedef bus_space_tag_t HAL_BUS_TAG;
+typedef bus_space_handle_t HAL_BUS_HANDLE;
+
+/*
+ * Linker set writearounds for chip and RF backend registration.
+ */
+#define        OS_DATA_SET(set, item)  DATA_SET(set, item)
+#define        OS_SET_DECLARE(set, ptype)      SET_DECLARE(set, ptype)
+#define        OS_SET_FOREACH(pvar, set)       SET_FOREACH(pvar, set)
+
+/*
  * Delay n microseconds.
  */
 extern void ath_hal_delay(int);

Modified: stable/7/sys/dev/ath/ath_rate/amrr/amrr.c
==============================================================================
--- stable/7/sys/dev/ath/ath_rate/amrr/amrr.c   Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/dev/ath/ath_rate/amrr/amrr.c   Thu Mar 12 03:09:11 2009        
(r189720)
@@ -50,7 +50,6 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/systm.h> 
 #include <sys/sysctl.h>
-#include <sys/module.h>
 #include <sys/kernel.h>
 #include <sys/lock.h>
 #include <sys/mutex.h>
@@ -78,7 +77,7 @@ __FBSDID("$FreeBSD$");
 
 #include <dev/ath/if_athvar.h>
 #include <dev/ath/ath_rate/amrr/amrr.h>
-#include <contrib/dev/ath/ah_desc.h>
+#include <dev/ath/ath_hal/ah_desc.h>
 
 #define        AMRR_DEBUG
 #ifdef AMRR_DEBUG
@@ -518,29 +517,3 @@ ath_rate_detach(struct ath_ratectrl *arc
        callout_drain(&asc->timer);
        free(asc, M_DEVBUF);
 }
-
-/*
- * Module glue.
- */
-static int
-amrr_modevent(module_t mod, int type, void *unused)
-{
-       switch (type) {
-       case MOD_LOAD:
-               if (bootverbose)
-                       printf("ath_rate: <AMRR rate control algorithm> version 
0.1\n");
-               return 0;
-       case MOD_UNLOAD:
-               return 0;
-       }
-       return EINVAL;
-}
-
-static moduledata_t amrr_mod = {
-       "ath_rate",
-       amrr_modevent,
-       0
-};
-DECLARE_MODULE(ath_rate, amrr_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
-MODULE_VERSION(ath_rate, 1);
-MODULE_DEPEND(ath_rate, wlan, 1, 1, 1);

Modified: stable/7/sys/dev/ath/ath_rate/onoe/onoe.c
==============================================================================
--- stable/7/sys/dev/ath/ath_rate/onoe/onoe.c   Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/dev/ath/ath_rate/onoe/onoe.c   Thu Mar 12 03:09:11 2009        
(r189720)
@@ -38,7 +38,6 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/systm.h> 
 #include <sys/sysctl.h>
-#include <sys/module.h>
 #include <sys/kernel.h>
 #include <sys/lock.h>
 #include <sys/mutex.h>
@@ -66,7 +65,7 @@ __FBSDID("$FreeBSD$");
 
 #include <dev/ath/if_athvar.h>
 #include <dev/ath/ath_rate/onoe/onoe.h>
-#include <contrib/dev/ath/ah_desc.h>
+#include <dev/ath/ath_hal/ah_desc.h>
 
 #define        ONOE_DEBUG
 #ifdef ONOE_DEBUG
@@ -492,29 +491,3 @@ ath_rate_detach(struct ath_ratectrl *arc
        callout_drain(&osc->timer);
        free(osc, M_DEVBUF);
 }
-
-/*
- * Module glue.
- */
-static int
-onoe_modevent(module_t mod, int type, void *unused)
-{
-       switch (type) {
-       case MOD_LOAD:
-               if (bootverbose)
-                       printf("ath_rate: <Atsushi Onoe's rate control 
algorithm>\n");
-               return 0;
-       case MOD_UNLOAD:
-               return 0;
-       }
-       return EINVAL;
-}
-
-static moduledata_t onoe_mod = {
-       "ath_rate",
-       onoe_modevent,
-       0
-};
-DECLARE_MODULE(ath_rate, onoe_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
-MODULE_VERSION(ath_rate, 1);
-MODULE_DEPEND(ath_rate, wlan, 1, 1, 1);

Modified: stable/7/sys/dev/ath/ath_rate/sample/sample.c
==============================================================================
--- stable/7/sys/dev/ath/ath_rate/sample/sample.c       Thu Mar 12 02:51:55 
2009        (r189719)
+++ stable/7/sys/dev/ath/ath_rate/sample/sample.c       Thu Mar 12 03:09:11 
2009        (r189720)
@@ -46,7 +46,6 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/systm.h> 
 #include <sys/sysctl.h>
-#include <sys/module.h>
 #include <sys/kernel.h>
 #include <sys/lock.h>
 #include <sys/mutex.h>
@@ -74,7 +73,7 @@ __FBSDID("$FreeBSD$");
 
 #include <dev/ath/if_athvar.h>
 #include <dev/ath/ath_rate/sample/sample.h>
-#include <contrib/dev/ath/ah_desc.h>
+#include <dev/ath/ath_hal/ah_desc.h>
 
 #define        SAMPLE_DEBUG
 #ifdef SAMPLE_DEBUG
@@ -840,30 +839,3 @@ ath_rate_detach(struct ath_ratectrl *arc
        
        free(osc, M_DEVBUF);
 }
-
-/*
- * Module glue.
- */
-static int
-sample_modevent(module_t mod, int type, void *unused)
-{
-       switch (type) {
-       case MOD_LOAD:
-               if (bootverbose)
-                       printf("ath_rate: version 1.2 <SampleRate bit-rate 
selection algorithm>\n");
-               return 0;
-       case MOD_UNLOAD:
-               return 0;
-       }
-       return EINVAL;
-}
-
-static moduledata_t sample_mod = {
-       "ath_rate",
-       sample_modevent,
-       0
-};
-DECLARE_MODULE(ath_rate, sample_mod, SI_SUB_DRIVERS, SI_ORDER_FIRST);
-MODULE_VERSION(ath_rate, 1);
-MODULE_DEPEND(ath_rate, ath_hal, 1, 1, 1);     /* Atheros HAL */
-MODULE_DEPEND(ath_rate, wlan, 1, 1, 1);

Modified: stable/7/sys/dev/ath/if_ath.c
==============================================================================
--- stable/7/sys/dev/ath/if_ath.c       Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/dev/ath/if_ath.c       Thu Mar 12 03:09:11 2009        
(r189720)
@@ -77,13 +77,17 @@ __FBSDID("$FreeBSD$");
 #endif
 
 #include <dev/ath/if_athvar.h>
-#include <contrib/dev/ath/ah_desc.h>
-#include <contrib/dev/ath/ah_devid.h>          /* XXX for softled */
+#include <dev/ath/ath_hal/ah_devid.h>          /* XXX for softled */
 
 #ifdef ATH_TX99_DIAG
 #include <dev/ath/ath_tx99/ath_tx99.h>
 #endif
 
+/*
+ * We require a HAL w/ the changes for split tx/rx MIC.
+ */
+CTASSERT(HAL_ABI_VERSION > 0x06052200);
+
 /* unaligned little endian access */
 #define LE_READ_2(p)                                                   \
        ((u_int16_t)                                                    \
@@ -378,7 +382,6 @@ ath_attach(u_int16_t devid, struct ath_s
                goto bad;
        }
        callout_init(&sc->sc_cal_ch, CALLOUT_MPSAFE);
-       callout_init(&sc->sc_dfs_ch, CALLOUT_MPSAFE);
 
        ATH_TXBUF_LOCK_INIT(sc);
 
@@ -2250,14 +2253,13 @@ ath_key_update_end(struct ieee80211com *
 static u_int32_t
 ath_calcrxfilter(struct ath_softc *sc)
 {
-#define        RX_FILTER_PRESERVE      (HAL_RX_FILTER_PHYERR | 
HAL_RX_FILTER_PHYRADAR)
        struct ieee80211com *ic = &sc->sc_ic;
-       struct ath_hal *ah = sc->sc_ah;
        struct ifnet *ifp = sc->sc_ifp;
        u_int32_t rfilt;
 
-       rfilt = (ath_hal_getrxfilter(ah) & RX_FILTER_PRESERVE)
-             | HAL_RX_FILTER_UCAST | HAL_RX_FILTER_BCAST | HAL_RX_FILTER_MCAST;
+       rfilt = HAL_RX_FILTER_UCAST | HAL_RX_FILTER_BCAST | HAL_RX_FILTER_MCAST;
+       if (!sc->sc_needmib && !sc->sc_scanning)
+               rfilt |= HAL_RX_FILTER_PHYERR;
        if (ic->ic_opmode != IEEE80211_M_STA)
                rfilt |= HAL_RX_FILTER_PROBEREQ;
        if (ic->ic_opmode != IEEE80211_M_HOSTAP &&
@@ -4890,42 +4892,6 @@ ath_chan_change(struct ath_softc *sc, st
 }
 
 /*
- * Poll for a channel clear indication; this is required
- * for channels requiring DFS and not previously visited
- * and/or with a recent radar detection.
- */
-static void
-ath_dfswait(void *arg)
-{
-       struct ath_softc *sc = arg;
-       struct ath_hal *ah = sc->sc_ah;
-       HAL_CHANNEL hchan;
-
-       ath_hal_radar_wait(ah, &hchan);
-       DPRINTF(sc, ATH_DEBUG_DFS, "%s: radar_wait %u/%x/%x\n",
-           __func__, hchan.channel, hchan.channelFlags, hchan.privFlags);
-
-       if (hchan.privFlags & CHANNEL_INTERFERENCE) {
-               if_printf(sc->sc_ifp,
-                   "channel %u/0x%x/0x%x has interference\n",
-                   hchan.channel, hchan.channelFlags, hchan.privFlags);
-               return;
-       }
-       if ((hchan.privFlags & CHANNEL_DFS) == 0) {
-               /* XXX should not happen */
-               return;
-       }
-       if (hchan.privFlags & CHANNEL_DFS_CLEAR) {
-               sc->sc_curchan.privFlags |= CHANNEL_DFS_CLEAR;
-               sc->sc_ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
-               if_printf(sc->sc_ifp,
-                   "channel %u/0x%x/0x%x marked clear\n",
-                   hchan.channel, hchan.channelFlags, hchan.privFlags);
-       } else
-               callout_reset(&sc->sc_dfs_ch, 2 * hz, ath_dfswait, sc);
-}
-
-/*
  * Set/change channels.  If the channel is really being changed,
  * it's done by reseting the chip.  To accomplish this we must
  * first cleanup any pending DMA, then restart stuff after a la
@@ -4996,25 +4962,6 @@ ath_chan_set(struct ath_softc *sc, struc
                ath_chan_change(sc, chan);
 
                /*
-                * Handle DFS required waiting period to determine
-                * if channel is clear of radar traffic.
-                */
-               if (ic->ic_opmode == IEEE80211_M_HOSTAP) {
-#define        DFS_AND_NOT_CLEAR(_c) \
-       (((_c)->privFlags & (CHANNEL_DFS | CHANNEL_DFS_CLEAR)) == CHANNEL_DFS)
-                       if (DFS_AND_NOT_CLEAR(&sc->sc_curchan)) {
-                               if_printf(sc->sc_ifp,
-                                       "wait for DFS clear channel signal\n");
-                               /* XXX stop sndq */
-                               sc->sc_ifp->if_drv_flags |= IFF_DRV_OACTIVE;
-                               callout_reset(&sc->sc_dfs_ch,
-                                       2 * hz, ath_dfswait, sc);
-                       } else
-                               callout_stop(&sc->sc_dfs_ch);
-#undef DFS_NOT_CLEAR
-               }
-
-               /*
                 * Re-enable interrupts.
                 */
                ath_hal_intrset(ah, sc->sc_imask);
@@ -5163,7 +5110,6 @@ ath_newstate(struct ieee80211com *ic, en
                ieee80211_state_name[nstate]);
 
        callout_stop(&sc->sc_cal_ch);
-       callout_stop(&sc->sc_dfs_ch);
        ath_hal_setledstate(ah, leds[nstate]);  /* set LED */
 
        if (nstate == IEEE80211_S_INIT) {

Modified: stable/7/sys/dev/ath/if_ath_pci.c
==============================================================================
--- stable/7/sys/dev/ath/if_ath_pci.c   Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/dev/ath/if_ath_pci.c   Thu Mar 12 03:09:11 2009        
(r189720)
@@ -56,7 +56,6 @@ __FBSDID("$FreeBSD$");
 #include <net80211/ieee80211_var.h>
 
 #include <dev/ath/if_athvar.h>
-#include <contrib/dev/ath/ah.h>
 
 #include <dev/pci/pcivar.h>
 #include <dev/pci/pcireg.h>
@@ -279,6 +278,4 @@ static      devclass_t ath_devclass;
 DRIVER_MODULE(if_ath, pci, ath_pci_driver, ath_devclass, 0, 0);
 DRIVER_MODULE(if_ath, cardbus, ath_pci_driver, ath_devclass, 0, 0);
 MODULE_VERSION(if_ath, 1);
-MODULE_DEPEND(if_ath, ath_hal, 1, 1, 1);       /* Atheros HAL */
 MODULE_DEPEND(if_ath, wlan, 1, 1, 1);          /* 802.11 media layer */
-MODULE_DEPEND(if_ath, ath_rate, 1, 1, 1);      /* rate control algorithm */

Modified: stable/7/sys/dev/ath/if_athvar.h
==============================================================================
--- stable/7/sys/dev/ath/if_athvar.h    Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/dev/ath/if_athvar.h    Thu Mar 12 03:09:11 2009        
(r189720)
@@ -35,8 +35,8 @@
 #ifndef _DEV_ATH_ATHVAR_H
 #define _DEV_ATH_ATHVAR_H
 
-#include <contrib/dev/ath/ah.h>
-#include <contrib/dev/ath/ah_desc.h>
+#include <dev/ath/ath_hal/ah.h>
+#include <dev/ath/ath_hal/ah_desc.h>
 #include <net80211/ieee80211_radiotap.h>
 #include <dev/ath/if_athioctl.h>
 #include <dev/ath/if_athrate.h>
@@ -315,7 +315,6 @@ struct ath_softc {
        int                     sc_calinterval; /* current polling interval */
        int                     sc_caltries;    /* cals at current interval */
        HAL_NODE_STATS          sc_halstats;    /* station-mode rssi stats */
-       struct callout          sc_dfs_ch;      /* callout handle for dfs */
 };
 #define        sc_tx_th                u_tx_rt.th
 #define        sc_rx_th                u_rx_rt.th
@@ -483,7 +482,7 @@ void        ath_intr(void *);
 #define        ath_hal_getregdomain(_ah, _prd) \
        (ath_hal_getcapability(_ah, HAL_CAP_REG_DMN, 0, (_prd)) == HAL_OK)
 #define        ath_hal_setregdomain(_ah, _rd) \
-       ((*(_ah)->ah_setRegulatoryDomain)((_ah), (_rd), NULL))
+       ath_hal_setcapability(_ah, HAL_CAP_REG_DMN, 0, _rd, NULL)
 #define        ath_hal_getcountrycode(_ah, _pcc) \
        (*(_pcc) = (_ah)->ah_countryCode)
 #define        ath_hal_hastkipsplit(_ah) \
@@ -618,7 +617,4 @@ void        ath_intr(void *);
 #define ath_hal_gpiosetintr(_ah, _gpio, _b) \
         ((*(_ah)->ah_gpioSetIntr)((_ah), (_gpio), (_b)))
 
-#define ath_hal_radar_wait(_ah, _chan) \
-       ((*(_ah)->ah_radarWait)((_ah), (_chan)))
-
 #endif /* _DEV_ATH_ATHVAR_H */

Modified: stable/7/sys/i386/conf/GENERIC
==============================================================================
--- stable/7/sys/i386/conf/GENERIC      Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/i386/conf/GENERIC      Thu Mar 12 03:09:11 2009        
(r189720)
@@ -255,6 +255,7 @@ device              wlan_scan_sta   # 802.11 STA mode 
 device         an              # Aironet 4500/4800 802.11 wireless NICs.
 device         ath             # Atheros pci/cardbus NIC's
 device         ath_hal         # Atheros HAL (Hardware Access Layer)
+options                AH_SUPPORT_AR5416       # enable AR5416 tx/rx 
descriptors
 device         ath_rate_sample # SampleRate tx rate control for ath
 device         awi             # BayStack 660 and others
 device         ral             # Ralink Technology RT2500 wireless NICs.

Modified: stable/7/sys/i386/conf/NOTES
==============================================================================
--- stable/7/sys/i386/conf/NOTES        Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/i386/conf/NOTES        Thu Mar 12 03:09:11 2009        
(r189720)
@@ -680,6 +680,7 @@ device              wpi
 
 device         ath
 device         ath_hal         # Atheros HAL (includes binary component)
+options                AH_SUPPORT_AR5416       # enable AR5416 tx/rx 
descriptors
 #device                ath_rate_amrr   # AMRR rate control for ath driver
 #device                ath_rate_onoe   # Onoe rate control for ath driver
 device         ath_rate_sample # SampleRate rate control for the ath driver

Modified: stable/7/sys/modules/Makefile
==============================================================================
--- stable/7/sys/modules/Makefile       Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/modules/Makefile       Thu Mar 12 03:09:11 2009        
(r189720)
@@ -28,11 +28,7 @@ SUBDIR=      ${_3dfx} \
        ${_arl} \
        ${_asr} \
        ata \
-       ${_ath} \
-       ${_ath_hal} \
-       ${_ath_rate_amrr} \
-       ${_ath_rate_onoe} \
-       ${_ath_rate_sample} \
+       ath \
        aue \
        ${_auxio} \
        ${_awi} \
@@ -379,11 +375,6 @@ _aout=             aout
 _apm=          apm
 _ar=           ar
 _arcnet=       arcnet
-_ath=          ath
-_ath_hal=      ath_hal
-_ath_rate_amrr=        ath_rate_amrr
-_ath_rate_onoe=        ath_rate_onoe
-_ath_rate_sample=ath_rate_sample
 _awi=          awi
 _bktr=         bktr
 _cardbus=      cardbus
@@ -517,11 +508,6 @@ _acpi=             acpi
 _agp=          agp
 _an=           an
 _arcmsr=       arcmsr
-_ath=          ath
-_ath_hal=      ath_hal
-_ath_rate_amrr=        ath_rate_amrr
-_ath_rate_onoe=        ath_rate_onoe
-_ath_rate_sample=ath_rate_sample
 _cardbus=      cardbus
 _cbb=          cbb
 _cmx=          cmx
@@ -627,22 +613,12 @@ _xe=              xe
 
 .if ${MACHINE_ARCH} == "powerpc"
 _an=           an
-_ath=          ath
-_ath_hal=      ath_hal
-_ath_rate_amrr=        ath_rate_amrr
-_ath_rate_onoe=        ath_rate_onoe
-_ath_rate_sample=ath_rate_sample
 _bm=           bm
 _nvram=                powermac_nvram
 _smbfs=                smbfs
 .endif
 
 .if ${MACHINE_ARCH} == "sparc64"
-_ath=          ath
-_ath_hal=      ath_hal
-_ath_rate_amrr=        ath_rate_amrr
-_ath_rate_onoe=        ath_rate_onoe
-_ath_rate_sample=ath_rate_sample
 _auxio=                auxio
 _em=           em
 _i2c=          i2c

Modified: stable/7/sys/modules/ath/Makefile
==============================================================================
--- stable/7/sys/modules/ath/Makefile   Thu Mar 12 02:51:55 2009        
(r189719)
+++ stable/7/sys/modules/ath/Makefile   Thu Mar 12 03:09:11 2009        
(r189720)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2002, 2003 Sam Leffler, Errno Consulting
+# Copyright (c) 2002-2008 Sam Leffler, Errno Consulting

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to