Changeset 28392


Ignore:
Timestamp:
2011-10-09T17:48:03+02:00 (6 years ago)
Author:
nbd
Message:

mac80211: update to wireless-testing 2011-10-05 + pending patches

Location:
trunk/package/mac80211
Files:
13 deleted
30 edited
4 moved

Legend:

Unmodified
Added
Removed
  • trunk/package/mac80211/Makefile

    r28245 r28392  
    1111PKG_NAME:=mac80211 
    1212 
    13 PKG_VERSION:=2011-09-14 
     13PKG_VERSION:=2011-10-05 
    1414PKG_RELEASE:=1 
    1515PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources 
    16 PKG_MD5SUM:=a5627e6079e8d0f0baf7045141503a3d 
     16PKG_MD5SUM:=328dd4c42fb5baa2d96c78009b11af7e 
    1717 
    1818PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2 
     
    628628  DEPENDS:= +kmod-mac80211 @PCI_SUPPORT 
    629629  TITLE:=Intel AGN Wireless support 
    630   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlwifi/iwlagn.$(LINUX_KMOD_SUFFIX) 
     630  FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/iwlwifi/iwlwifi.$(LINUX_KMOD_SUFFIX) 
    631631  AUTOLOAD:=$(call AutoLoad,60,iwlagn) 
    632632  MENU:=1 
     
    11661166        CONFIG_LIB80211_CRYPT_CCMP=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \ 
    11671167        CONFIG_LIB80211_CRYPT_TKIP=$(if $(CONFIG_PACKAGE_kmod-lib80211),m) \ 
    1168         CONFIG_IWLAGN=$(if $(CONFIG_PACKAGE_kmod-iwlagn),m) \ 
     1168        CONFIG_IWLWIFI=$(if $(CONFIG_PACKAGE_kmod-iwlagn),m) \ 
    11691169        CONFIG_IWLWIFI_LEGACY=$(if $(CONFIG_PACKAGE_kmod-iwl-legacy),m) \ 
    11701170        CONFIG_COMPAT_IWL4965=$(if $(CONFIG_PACKAGE_kmod-iwl4965),m) \ 
  • trunk/package/mac80211/patches/001-disable_b44.patch

    r28093 r28392  
    11--- a/config.mk 
    22+++ b/config.mk 
    3 @@ -340,8 +340,8 @@ CONFIG_B43_BCMA_PIO=y 
     3@@ -339,8 +339,8 @@ CONFIG_B43_BCMA_PIO=y 
    44  
    55 CONFIG_P54_PCI=m 
  • trunk/package/mac80211/patches/002-disable_rfkill.patch

    r28093 r28392  
    1010 ifeq ($(CONFIG_MAC80211),y) 
    1111 $(error "ERROR: you have MAC80211 compiled into the kernel, CONFIG_MAC80211=y, as such you cannot replace its mac80211 driver. You need this set to CONFIG_MAC80211=m. If you are using Fedora upgrade your kernel as later version should this set as modular. For further information on Fedora see https://bugzilla.redhat.com/show_bug.cgi?id=470143. If you are using your own kernel recompile it and make mac80211 modular") 
    12 @@ -642,10 +642,10 @@ endif #CONFIG_COMPAT_KERNEL_2_6_27 
     12@@ -640,10 +640,10 @@ endif #CONFIG_COMPAT_KERNEL_2_6_27 
    1313 # We need the backported rfkill module on kernel < 2.6.31. 
    1414 # In more recent kernel versions use the in kernel rfkill module. 
  • trunk/package/mac80211/patches/005-disable_ssb_build.patch

    r28093 r28392  
    1919 include $(KLIB_BUILD)/.config 
    2020 endif 
    21 @@ -316,7 +315,8 @@ CONFIG_IPW2200_QOS=y 
     21@@ -315,7 +314,8 @@ CONFIG_IPW2200_QOS=y 
    2222 # % echo 1 > /sys/bus/pci/drivers/ipw2200/*/rtap_iface 
    2323 endif #CONFIG_WIRELESS_EXT 
     
    2929 CONFIG_SSB_SPROM=y 
    3030  
    31 @@ -329,7 +329,7 @@ endif #CONFIG_PCMCIA 
     31@@ -328,7 +328,7 @@ endif #CONFIG_PCMCIA 
    3232 # CONFIG_SSB_DEBUG=y 
    3333 CONFIG_SSB_DRIVER_PCICORE=y 
     
    3838 CONFIG_BCMA=m 
    3939 CONFIG_BCMA_BLOCKIO=y 
    40 @@ -538,7 +538,6 @@ endif #CONFIG_SPI_MASTER end of SPI driv 
     40@@ -537,7 +537,6 @@ endif #CONFIG_SPI_MASTER end of SPI driv 
    4141  
    4242 ifdef CONFIG_MMC 
  • trunk/package/mac80211/patches/006-disable_bcma_build.patch

    r28093 r28392  
    1111--- a/config.mk 
    1212+++ b/config.mk 
    13 @@ -331,12 +331,12 @@ CONFIG_SSB_DRIVER_PCICORE=y 
     13@@ -330,12 +330,12 @@ CONFIG_SSB_DRIVER_PCICORE=y 
    1414 CONFIG_B43_SSB=y 
    1515 endif #__CONFIG_SSB 
  • trunk/package/mac80211/patches/007-remove_misc_drivers.patch

    r28093 r28392  
    1010  
    1111 # mac80211 test driver 
    12 @@ -368,13 +368,13 @@ endif #CONFIG_CRC_ITU_T 
     12@@ -367,13 +367,13 @@ endif #CONFIG_CRC_ITU_T 
    1313 CONFIG_MWL8K=m 
    1414  
     
    2929  
    3030 ifdef CONFIG_WIRELESS_EXT 
    31 @@ -435,21 +435,21 @@ endif #CONFIG_COMPAT_KERNEL_2_6_29 
     31@@ -434,21 +434,21 @@ endif #CONFIG_COMPAT_KERNEL_2_6_29 
    3232 # Note: this depends on CONFIG_USB_NET_RNDIS_HOST and CONFIG_USB_NET_CDCETHER 
    3333 # it also requires new RNDIS_HOST and CDC_ETHER modules which we add 
  • trunk/package/mac80211/patches/010-no_pcmcia.patch

    r28093 r28392  
    1010 include $(KLIB_BUILD)/.config 
    1111 endif 
    12 @@ -248,7 +248,7 @@ CONFIG_B43=m 
     12@@ -247,7 +247,7 @@ CONFIG_B43=m 
    1313 CONFIG_B43_HWRNG=y 
    1414 CONFIG_B43_PCI_AUTOSELECT=y 
  • trunk/package/mac80211/patches/011-no_sdio.patch

    r28093 r28392  
    11--- a/config.mk 
    22+++ b/config.mk 
    3 @@ -521,7 +521,7 @@ endif #CONFIG_SPI_MASTER end of SPI driv 
     3@@ -520,7 +520,7 @@ endif #CONFIG_SPI_MASTER end of SPI driv 
    44  
    55 ifdef CONFIG_MMC 
  • trunk/package/mac80211/patches/013-disable_b43_nphy.patch

    r28093 r28392  
    11--- a/config.mk 
    22+++ b/config.mk 
    3 @@ -254,7 +254,7 @@ ifdef CONFIG_MAC80211_LEDS 
     3@@ -253,8 +253,8 @@ ifdef CONFIG_MAC80211_LEDS 
    44 CONFIG_B43_LEDS=y 
    55 endif #CONFIG_MAC80211_LEDS 
    66 CONFIG_B43_PHY_LP=y 
    77-CONFIG_B43_PHY_N=y 
     8-CONFIG_B43_PHY_HT=y 
    89+# CONFIG_B43_PHY_N=y 
    9  # CONFIG_B43_PHY_HT=y 
     10+# CONFIG_B43_PHY_HT=y 
    1011 # CONFIG_B43_PHY_LCN=y 
    1112 # CONFIG_B43_FORCE_PIO=y 
     13 # CONFIG_B43_DEBUG=y 
  • trunk/package/mac80211/patches/015-remove-rt2x00-options.patch

    r28093 r28392  
    11--- a/config.mk 
    22+++ b/config.mk 
    3 @@ -330,7 +330,7 @@ CONFIG_RTL8180=m 
     3@@ -329,7 +329,7 @@ CONFIG_RTL8180=m 
    44  
    55 CONFIG_ADM8211=m 
     
    1010 CONFIG_RT2500PCI=m 
    1111 ifdef CONFIG_CRC_CCITT 
    12 @@ -470,7 +470,7 @@ CONFIG_RT2800USB_RT35XX=y 
     12@@ -469,7 +469,7 @@ CONFIG_RT2800USB_RT35XX=y 
    1313 # CONFIG_RT2800USB_RT53XX=y 
    1414 CONFIG_RT2800USB_UNKNOWN=y 
  • trunk/package/mac80211/patches/110-disable_usb_compat.patch

    r28093 r28392  
    3434--- a/config.mk 
    3535+++ b/config.mk 
    36 @@ -456,7 +456,7 @@ endif #CONFIG_COMPAT_KERNEL_2_6_29 
     36@@ -455,7 +455,7 @@ endif #CONFIG_COMPAT_KERNEL_2_6_29 
    3737 # This activates a threading fix for usb urb. 
    3838 # this is mainline commit: b3e670443b7fb8a2d29831b62b44a039c283e351 
  • trunk/package/mac80211/patches/300-pending_work.patch

    r28300 r28392  
    1 --- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c 
    2 +++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c 
    3 @@ -170,33 +170,104 @@ static bool ar9002_hw_get_isr(struct ath 
     1--- a/drivers/net/wireless/ath/ath.h 
     2+++ b/drivers/net/wireless/ath/ath.h 
     3@@ -71,9 +71,7 @@ struct ath_regulatory { 
     4        char alpha2[2]; 
     5        u16 country_code; 
     6        u16 max_power_level; 
     7-       u32 tp_scale; 
     8        u16 current_rd; 
     9-       u16 current_rd_ext; 
     10        int16_t power_limit; 
     11        struct reg_dmn_pair_mapping *regpair; 
     12 }; 
     13--- a/drivers/net/wireless/ath/ath9k/Makefile 
     14+++ b/drivers/net/wireless/ath/ath9k/Makefile 
     15@@ -21,6 +21,7 @@ ath9k_hw-y:=  \ 
     16                ar5008_phy.o \ 
     17                ar9002_calib.o \ 
     18                ar9003_calib.o \ 
     19+               ar9003_rtt.o \ 
     20                calib.o \ 
     21                eeprom.o \ 
     22                eeprom_def.o \ 
     23--- a/drivers/net/wireless/ath/ath9k/ani.c 
     24+++ b/drivers/net/wireless/ath/ath9k/ani.c 
     25@@ -504,9 +504,6 @@ static void ath9k_ani_reset_old(struct a 
     26                ath9k_hw_ani_control(ah, ATH9K_ANI_CCK_WEAK_SIGNAL_THR, 
     27                                     ATH9K_ANI_CCK_WEAK_SIG_THR); 
     28  
     29-               ath9k_hw_setrxfilter(ah, ath9k_hw_getrxfilter(ah) | 
     30-                                    ATH9K_RX_FILTER_PHYERR); 
     31- 
     32                ath9k_ani_restart(ah); 
     33                return; 
     34        } 
     35@@ -527,8 +524,6 @@ static void ath9k_ani_reset_old(struct a 
     36                ath9k_hw_ani_control(ah, ATH9K_ANI_FIRSTEP_LEVEL, 
     37                                     aniState->firstepLevel); 
     38  
     39-       ath9k_hw_setrxfilter(ah, ath9k_hw_getrxfilter(ah) & 
     40-                            ~ATH9K_RX_FILTER_PHYERR); 
     41        ath9k_ani_restart(ah); 
     42  
     43        ENABLE_REGWRITE_BUFFER(ah); 
     44--- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c 
     45+++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c 
     46@@ -763,10 +763,8 @@ static void ar5008_hw_set_channel_regs(s 
     47 static int ar5008_hw_process_ini(struct ath_hw *ah, 
     48                                 struct ath9k_channel *chan) 
     49 { 
     50-       struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah); 
     51        struct ath_common *common = ath9k_hw_common(ah); 
     52        int i, regWrites = 0; 
     53-       struct ieee80211_channel *channel = chan->chan; 
     54        u32 modesIndex, freqIndex; 
     55  
     56        switch (chan->chanmode) { 
     57@@ -903,14 +901,7 @@ static int ar5008_hw_process_ini(struct  
     58        ar5008_hw_set_channel_regs(ah, chan); 
     59        ar5008_hw_init_chain_masks(ah); 
     60        ath9k_olc_init(ah); 
     61- 
     62-       /* Set TX power */ 
     63-       ah->eep_ops->set_txpower(ah, chan, 
     64-                                ath9k_regd_get_ctl(regulatory, chan), 
     65-                                channel->max_antenna_gain * 2, 
     66-                                channel->max_power * 2, 
     67-                                min((u32) MAX_RATE_POWER, 
     68-                                (u32) regulatory->power_limit), false); 
     69+       ath9k_hw_apply_txpower(ah, chan); 
     70  
     71        /* Write analog registers */ 
     72        if (!ath9k_hw_set_rf_regs(ah, chan, freqIndex)) { 
     73--- a/drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h 
     74+++ b/drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h 
     75@@ -24,11 +24,11 @@ static const u32 ar9300_2p2_radio_postam 
     76        {0x0001609c, 0x0dd08f29, 0x0dd08f29, 0x0b283f31, 0x0b283f31}, 
     77        {0x000160ac, 0xa4653c00, 0xa4653c00, 0x24652800, 0x24652800}, 
     78        {0x000160b0, 0x03284f3e, 0x03284f3e, 0x05d08f20, 0x05d08f20}, 
     79-       {0x0001610c, 0x08000000, 0x00000000, 0x00000000, 0x00000000}, 
     80+       {0x0001610c, 0xc8000000, 0xc0000000, 0xc0000000, 0xc0000000}, 
     81        {0x00016140, 0x10804008, 0x10804008, 0x50804008, 0x50804008}, 
     82-       {0x0001650c, 0x08000000, 0x00000000, 0x00000000, 0x00000000}, 
     83+       {0x0001650c, 0xc8000000, 0xc0000000, 0xc0000000, 0xc0000000}, 
     84        {0x00016540, 0x10804008, 0x10804008, 0x50804008, 0x50804008}, 
     85-       {0x0001690c, 0x08000000, 0x00000000, 0x00000000, 0x00000000}, 
     86+       {0x0001690c, 0xc8000000, 0xc0000000, 0xc0000000, 0xc0000000}, 
     87        {0x00016940, 0x10804008, 0x10804008, 0x50804008, 0x50804008}, 
     88 }; 
     89  
     90@@ -190,7 +190,7 @@ static const u32 ar9300_2p2_radio_core[] 
     91        {0x00016288, 0x05a20408}, 
     92        {0x0001628c, 0x00038c07}, 
     93        {0x00016290, 0x00000004}, 
     94-       {0x00016294, 0x458aa14f}, 
     95+       {0x00016294, 0x458a214f}, 
     96        {0x00016380, 0x00000000}, 
     97        {0x00016384, 0x00000000}, 
     98        {0x00016388, 0x00800700}, 
     99@@ -835,107 +835,107 @@ static const u32 ar9300_2p2_baseband_cor 
     100  
     101 static const u32 ar9300Modes_high_power_tx_gain_table_2p2[][5] = { 
     102        /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     103-       {0x0000a2dc, 0x00033800, 0x00033800, 0x03aaa352, 0x03aaa352}, 
     104-       {0x0000a2e0, 0x0003c000, 0x0003c000, 0x03ccc584, 0x03ccc584}, 
     105-       {0x0000a2e4, 0x03fc0000, 0x03fc0000, 0x03f0f800, 0x03f0f800}, 
     106+       {0x0000a2dc, 0x000cfff0, 0x000cfff0, 0x03aaa352, 0x03aaa352}, 
     107+       {0x0000a2e0, 0x000f0000, 0x000f0000, 0x03ccc584, 0x03ccc584}, 
     108+       {0x0000a2e4, 0x03f00000, 0x03f00000, 0x03f0f800, 0x03f0f800}, 
     109        {0x0000a2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000}, 
     110        {0x0000a410, 0x000050d9, 0x000050d9, 0x000050d9, 0x000050d9}, 
     111        {0x0000a500, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     112        {0x0000a504, 0x06000003, 0x06000003, 0x04000002, 0x04000002}, 
     113        {0x0000a508, 0x0a000020, 0x0a000020, 0x08000004, 0x08000004}, 
     114        {0x0000a50c, 0x10000023, 0x10000023, 0x0b000200, 0x0b000200}, 
     115-       {0x0000a510, 0x16000220, 0x16000220, 0x0f000202, 0x0f000202}, 
     116-       {0x0000a514, 0x1c000223, 0x1c000223, 0x12000400, 0x12000400}, 
     117-       {0x0000a518, 0x21002220, 0x21002220, 0x16000402, 0x16000402}, 
     118-       {0x0000a51c, 0x27002223, 0x27002223, 0x19000404, 0x19000404}, 
     119-       {0x0000a520, 0x2b022220, 0x2b022220, 0x1c000603, 0x1c000603}, 
     120-       {0x0000a524, 0x2f022222, 0x2f022222, 0x21000a02, 0x21000a02}, 
     121-       {0x0000a528, 0x34022225, 0x34022225, 0x25000a04, 0x25000a04}, 
     122-       {0x0000a52c, 0x3a02222a, 0x3a02222a, 0x28000a20, 0x28000a20}, 
     123-       {0x0000a530, 0x3e02222c, 0x3e02222c, 0x2c000e20, 0x2c000e20}, 
     124-       {0x0000a534, 0x4202242a, 0x4202242a, 0x30000e22, 0x30000e22}, 
     125-       {0x0000a538, 0x4702244a, 0x4702244a, 0x34000e24, 0x34000e24}, 
     126-       {0x0000a53c, 0x4b02244c, 0x4b02244c, 0x38001640, 0x38001640}, 
     127-       {0x0000a540, 0x4e02246c, 0x4e02246c, 0x3c001660, 0x3c001660}, 
     128-       {0x0000a544, 0x52022470, 0x52022470, 0x3f001861, 0x3f001861}, 
     129-       {0x0000a548, 0x55022490, 0x55022490, 0x43001a81, 0x43001a81}, 
     130-       {0x0000a54c, 0x59022492, 0x59022492, 0x47001a83, 0x47001a83}, 
     131-       {0x0000a550, 0x5d022692, 0x5d022692, 0x4a001c84, 0x4a001c84}, 
     132-       {0x0000a554, 0x61022892, 0x61022892, 0x4e001ce3, 0x4e001ce3}, 
     133-       {0x0000a558, 0x65024890, 0x65024890, 0x52001ce5, 0x52001ce5}, 
     134-       {0x0000a55c, 0x69024892, 0x69024892, 0x56001ce9, 0x56001ce9}, 
     135-       {0x0000a560, 0x6e024c92, 0x6e024c92, 0x5a001ceb, 0x5a001ceb}, 
     136-       {0x0000a564, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec}, 
     137-       {0x0000a568, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec}, 
     138-       {0x0000a56c, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec}, 
     139-       {0x0000a570, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec}, 
     140-       {0x0000a574, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec}, 
     141-       {0x0000a578, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec}, 
     142-       {0x0000a57c, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec}, 
     143+       {0x0000a510, 0x15000028, 0x15000028, 0x0f000202, 0x0f000202}, 
     144+       {0x0000a514, 0x1b00002b, 0x1b00002b, 0x12000400, 0x12000400}, 
     145+       {0x0000a518, 0x1f020028, 0x1f020028, 0x16000402, 0x16000402}, 
     146+       {0x0000a51c, 0x2502002b, 0x2502002b, 0x19000404, 0x19000404}, 
     147+       {0x0000a520, 0x2a04002a, 0x2a04002a, 0x1c000603, 0x1c000603}, 
     148+       {0x0000a524, 0x2e06002a, 0x2e06002a, 0x21000a02, 0x21000a02}, 
     149+       {0x0000a528, 0x3302202d, 0x3302202d, 0x25000a04, 0x25000a04}, 
     150+       {0x0000a52c, 0x3804202c, 0x3804202c, 0x28000a20, 0x28000a20}, 
     151+       {0x0000a530, 0x3c06202c, 0x3c06202c, 0x2c000e20, 0x2c000e20}, 
     152+       {0x0000a534, 0x4108202d, 0x4108202d, 0x30000e22, 0x30000e22}, 
     153+       {0x0000a538, 0x4506402d, 0x4506402d, 0x34000e24, 0x34000e24}, 
     154+       {0x0000a53c, 0x4906222d, 0x4906222d, 0x38001640, 0x38001640}, 
     155+       {0x0000a540, 0x4d062231, 0x4d062231, 0x3c001660, 0x3c001660}, 
     156+       {0x0000a544, 0x50082231, 0x50082231, 0x3f001861, 0x3f001861}, 
     157+       {0x0000a548, 0x5608422e, 0x5608422e, 0x43001a81, 0x43001a81}, 
     158+       {0x0000a54c, 0x5a08442e, 0x5a08442e, 0x47001a83, 0x47001a83}, 
     159+       {0x0000a550, 0x5e0a4431, 0x5e0a4431, 0x4a001c84, 0x4a001c84}, 
     160+       {0x0000a554, 0x640a4432, 0x640a4432, 0x4e001ce3, 0x4e001ce3}, 
     161+       {0x0000a558, 0x680a4434, 0x680a4434, 0x52001ce5, 0x52001ce5}, 
     162+       {0x0000a55c, 0x6c0a6434, 0x6c0a6434, 0x56001ce9, 0x56001ce9}, 
     163+       {0x0000a560, 0x6f0a6633, 0x6f0a6633, 0x5a001ceb, 0x5a001ceb}, 
     164+       {0x0000a564, 0x730c6634, 0x730c6634, 0x5d001eec, 0x5d001eec}, 
     165+       {0x0000a568, 0x730c6634, 0x730c6634, 0x5d001eec, 0x5d001eec}, 
     166+       {0x0000a56c, 0x730c6634, 0x730c6634, 0x5d001eec, 0x5d001eec}, 
     167+       {0x0000a570, 0x730c6634, 0x730c6634, 0x5d001eec, 0x5d001eec}, 
     168+       {0x0000a574, 0x730c6634, 0x730c6634, 0x5d001eec, 0x5d001eec}, 
     169+       {0x0000a578, 0x730c6634, 0x730c6634, 0x5d001eec, 0x5d001eec}, 
     170+       {0x0000a57c, 0x730c6634, 0x730c6634, 0x5d001eec, 0x5d001eec}, 
     171        {0x0000a580, 0x00800000, 0x00800000, 0x00800000, 0x00800000}, 
     172        {0x0000a584, 0x06800003, 0x06800003, 0x04800002, 0x04800002}, 
     173        {0x0000a588, 0x0a800020, 0x0a800020, 0x08800004, 0x08800004}, 
     174        {0x0000a58c, 0x10800023, 0x10800023, 0x0b800200, 0x0b800200}, 
     175-       {0x0000a590, 0x16800220, 0x16800220, 0x0f800202, 0x0f800202}, 
     176-       {0x0000a594, 0x1c800223, 0x1c800223, 0x12800400, 0x12800400}, 
     177-       {0x0000a598, 0x21802220, 0x21802220, 0x16800402, 0x16800402}, 
     178-       {0x0000a59c, 0x27802223, 0x27802223, 0x19800404, 0x19800404}, 
     179-       {0x0000a5a0, 0x2b822220, 0x2b822220, 0x1c800603, 0x1c800603}, 
     180-       {0x0000a5a4, 0x2f822222, 0x2f822222, 0x21800a02, 0x21800a02}, 
     181-       {0x0000a5a8, 0x34822225, 0x34822225, 0x25800a04, 0x25800a04}, 
     182-       {0x0000a5ac, 0x3a82222a, 0x3a82222a, 0x28800a20, 0x28800a20}, 
     183-       {0x0000a5b0, 0x3e82222c, 0x3e82222c, 0x2c800e20, 0x2c800e20}, 
     184-       {0x0000a5b4, 0x4282242a, 0x4282242a, 0x30800e22, 0x30800e22}, 
     185-       {0x0000a5b8, 0x4782244a, 0x4782244a, 0x34800e24, 0x34800e24}, 
     186-       {0x0000a5bc, 0x4b82244c, 0x4b82244c, 0x38801640, 0x38801640}, 
     187-       {0x0000a5c0, 0x4e82246c, 0x4e82246c, 0x3c801660, 0x3c801660}, 
     188-       {0x0000a5c4, 0x52822470, 0x52822470, 0x3f801861, 0x3f801861}, 
     189-       {0x0000a5c8, 0x55822490, 0x55822490, 0x43801a81, 0x43801a81}, 
     190-       {0x0000a5cc, 0x59822492, 0x59822492, 0x47801a83, 0x47801a83}, 
     191-       {0x0000a5d0, 0x5d822692, 0x5d822692, 0x4a801c84, 0x4a801c84}, 
     192-       {0x0000a5d4, 0x61822892, 0x61822892, 0x4e801ce3, 0x4e801ce3}, 
     193-       {0x0000a5d8, 0x65824890, 0x65824890, 0x52801ce5, 0x52801ce5}, 
     194-       {0x0000a5dc, 0x69824892, 0x69824892, 0x56801ce9, 0x56801ce9}, 
     195-       {0x0000a5e0, 0x6e824c92, 0x6e824c92, 0x5a801ceb, 0x5a801ceb}, 
     196-       {0x0000a5e4, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec}, 
     197-       {0x0000a5e8, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec}, 
     198-       {0x0000a5ec, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec}, 
     199-       {0x0000a5f0, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec}, 
     200-       {0x0000a5f4, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec}, 
     201-       {0x0000a5f8, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec}, 
     202-       {0x0000a5fc, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec}, 
     203+       {0x0000a590, 0x15800028, 0x15800028, 0x0f800202, 0x0f800202}, 
     204+       {0x0000a594, 0x1b80002b, 0x1b80002b, 0x12800400, 0x12800400}, 
     205+       {0x0000a598, 0x1f820028, 0x1f820028, 0x16800402, 0x16800402}, 
     206+       {0x0000a59c, 0x2582002b, 0x2582002b, 0x19800404, 0x19800404}, 
     207+       {0x0000a5a0, 0x2a84002a, 0x2a84002a, 0x1c800603, 0x1c800603}, 
     208+       {0x0000a5a4, 0x2e86002a, 0x2e86002a, 0x21800a02, 0x21800a02}, 
     209+       {0x0000a5a8, 0x3382202d, 0x3382202d, 0x25800a04, 0x25800a04}, 
     210+       {0x0000a5ac, 0x3884202c, 0x3884202c, 0x28800a20, 0x28800a20}, 
     211+       {0x0000a5b0, 0x3c86202c, 0x3c86202c, 0x2c800e20, 0x2c800e20}, 
     212+       {0x0000a5b4, 0x4188202d, 0x4188202d, 0x30800e22, 0x30800e22}, 
     213+       {0x0000a5b8, 0x4586402d, 0x4586402d, 0x34800e24, 0x34800e24}, 
     214+       {0x0000a5bc, 0x4986222d, 0x4986222d, 0x38801640, 0x38801640}, 
     215+       {0x0000a5c0, 0x4d862231, 0x4d862231, 0x3c801660, 0x3c801660}, 
     216+       {0x0000a5c4, 0x50882231, 0x50882231, 0x3f801861, 0x3f801861}, 
     217+       {0x0000a5c8, 0x5688422e, 0x5688422e, 0x43801a81, 0x43801a81}, 
     218+       {0x0000a5cc, 0x5a88442e, 0x5a88442e, 0x47801a83, 0x47801a83}, 
     219+       {0x0000a5d0, 0x5e8a4431, 0x5e8a4431, 0x4a801c84, 0x4a801c84}, 
     220+       {0x0000a5d4, 0x648a4432, 0x648a4432, 0x4e801ce3, 0x4e801ce3}, 
     221+       {0x0000a5d8, 0x688a4434, 0x688a4434, 0x52801ce5, 0x52801ce5}, 
     222+       {0x0000a5dc, 0x6c8a6434, 0x6c8a6434, 0x56801ce9, 0x56801ce9}, 
     223+       {0x0000a5e0, 0x6f8a6633, 0x6f8a6633, 0x5a801ceb, 0x5a801ceb}, 
     224+       {0x0000a5e4, 0x738c6634, 0x738c6634, 0x5d801eec, 0x5d801eec}, 
     225+       {0x0000a5e8, 0x738c6634, 0x738c6634, 0x5d801eec, 0x5d801eec}, 
     226+       {0x0000a5ec, 0x738c6634, 0x738c6634, 0x5d801eec, 0x5d801eec}, 
     227+       {0x0000a5f0, 0x738c6634, 0x738c6634, 0x5d801eec, 0x5d801eec}, 
     228+       {0x0000a5f4, 0x738c6634, 0x738c6634, 0x5d801eec, 0x5d801eec}, 
     229+       {0x0000a5f8, 0x738c6634, 0x738c6634, 0x5d801eec, 0x5d801eec}, 
     230+       {0x0000a5fc, 0x738c6634, 0x738c6634, 0x5d801eec, 0x5d801eec}, 
     231        {0x0000a600, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     232        {0x0000a604, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     233-       {0x0000a608, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     234-       {0x0000a60c, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     235-       {0x0000a610, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     236-       {0x0000a614, 0x02004000, 0x02004000, 0x01404000, 0x01404000}, 
     237-       {0x0000a618, 0x02004801, 0x02004801, 0x01404501, 0x01404501}, 
     238-       {0x0000a61c, 0x02808a02, 0x02808a02, 0x02008501, 0x02008501}, 
     239-       {0x0000a620, 0x0380ce03, 0x0380ce03, 0x0280ca03, 0x0280ca03}, 
     240-       {0x0000a624, 0x04411104, 0x04411104, 0x03010c04, 0x03010c04}, 
     241-       {0x0000a628, 0x04411104, 0x04411104, 0x04014c04, 0x04014c04}, 
     242-       {0x0000a62c, 0x04411104, 0x04411104, 0x04015005, 0x04015005}, 
     243-       {0x0000a630, 0x04411104, 0x04411104, 0x04015005, 0x04015005}, 
     244-       {0x0000a634, 0x04411104, 0x04411104, 0x04015005, 0x04015005}, 
     245-       {0x0000a638, 0x04411104, 0x04411104, 0x04015005, 0x04015005}, 
     246-       {0x0000a63c, 0x04411104, 0x04411104, 0x04015005, 0x04015005}, 
     247-       {0x0000b2dc, 0x00033800, 0x00033800, 0x03aaa352, 0x03aaa352}, 
     248-       {0x0000b2e0, 0x0003c000, 0x0003c000, 0x03ccc584, 0x03ccc584}, 
     249-       {0x0000b2e4, 0x03fc0000, 0x03fc0000, 0x03f0f800, 0x03f0f800}, 
     250+       {0x0000a608, 0x01804601, 0x01804601, 0x00000000, 0x00000000}, 
     251+       {0x0000a60c, 0x01804601, 0x01804601, 0x00000000, 0x00000000}, 
     252+       {0x0000a610, 0x01804601, 0x01804601, 0x00000000, 0x00000000}, 
     253+       {0x0000a614, 0x01804601, 0x01804601, 0x01404000, 0x01404000}, 
     254+       {0x0000a618, 0x01804601, 0x01804601, 0x01404501, 0x01404501}, 
     255+       {0x0000a61c, 0x01804601, 0x01804601, 0x02008501, 0x02008501}, 
     256+       {0x0000a620, 0x03408d02, 0x03408d02, 0x0280ca03, 0x0280ca03}, 
     257+       {0x0000a624, 0x0300cc03, 0x0300cc03, 0x03010c04, 0x03010c04}, 
     258+       {0x0000a628, 0x03410d04, 0x03410d04, 0x04014c04, 0x04014c04}, 
     259+       {0x0000a62c, 0x03410d04, 0x03410d04, 0x04015005, 0x04015005}, 
     260+       {0x0000a630, 0x03410d04, 0x03410d04, 0x04015005, 0x04015005}, 
     261+       {0x0000a634, 0x03410d04, 0x03410d04, 0x04015005, 0x04015005}, 
     262+       {0x0000a638, 0x03410d04, 0x03410d04, 0x04015005, 0x04015005}, 
     263+       {0x0000a63c, 0x03410d04, 0x03410d04, 0x04015005, 0x04015005}, 
     264+       {0x0000b2dc, 0x000cfff0, 0x000cfff0, 0x03aaa352, 0x03aaa352}, 
     265+       {0x0000b2e0, 0x000f0000, 0x000f0000, 0x03ccc584, 0x03ccc584}, 
     266+       {0x0000b2e4, 0x03f00000, 0x03f00000, 0x03f0f800, 0x03f0f800}, 
     267        {0x0000b2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000}, 
     268-       {0x0000c2dc, 0x00033800, 0x00033800, 0x03aaa352, 0x03aaa352}, 
     269-       {0x0000c2e0, 0x0003c000, 0x0003c000, 0x03ccc584, 0x03ccc584}, 
     270-       {0x0000c2e4, 0x03fc0000, 0x03fc0000, 0x03f0f800, 0x03f0f800}, 
     271+       {0x0000c2dc, 0x000cfff0, 0x000cfff0, 0x03aaa352, 0x03aaa352}, 
     272+       {0x0000c2e0, 0x000f0000, 0x000f0000, 0x03ccc584, 0x03ccc584}, 
     273+       {0x0000c2e4, 0x03f00000, 0x03f00000, 0x03f0f800, 0x03f0f800}, 
     274        {0x0000c2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000}, 
     275        {0x00016044, 0x012492d4, 0x012492d4, 0x012492d4, 0x012492d4}, 
     276-       {0x00016048, 0x66480001, 0x66480001, 0x66480001, 0x66480001}, 
     277+       {0x00016048, 0x61200001, 0x61200001, 0x66480001, 0x66480001}, 
     278        {0x00016068, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c}, 
     279        {0x00016444, 0x012492d4, 0x012492d4, 0x012492d4, 0x012492d4}, 
     280-       {0x00016448, 0x66480001, 0x66480001, 0x66480001, 0x66480001}, 
     281+       {0x00016448, 0x61200001, 0x61200001, 0x66480001, 0x66480001}, 
     282        {0x00016468, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c}, 
     283        {0x00016844, 0x012492d4, 0x012492d4, 0x012492d4, 0x012492d4}, 
     284-       {0x00016848, 0x66480001, 0x66480001, 0x66480001, 0x66480001}, 
     285+       {0x00016848, 0x61200001, 0x61200001, 0x66480001, 0x66480001}, 
     286        {0x00016868, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c, 0x6db6db6c}, 
     287 }; 
     288  
     289--- a/drivers/net/wireless/ath/ath9k/ar9003_calib.c 
     290+++ b/drivers/net/wireless/ath/ath9k/ar9003_calib.c 
     291@@ -17,8 +17,9 @@ 
     292 #include "hw.h" 
     293 #include "hw-ops.h" 
     294 #include "ar9003_phy.h" 
     295+#include "ar9003_rtt.h" 
     296  
     297-#define MAX_MEASUREMENT        8 
     298+#define MAX_MEASUREMENT        MAX_IQCAL_MEASUREMENT 
     299 #define MAX_MAG_DELTA  11 
     300 #define MAX_PHS_DELTA  10 
     301  
     302@@ -659,10 +660,12 @@ static void ar9003_hw_detect_outlier(int 
     303  
     304 static void ar9003_hw_tx_iqcal_load_avg_2_passes(struct ath_hw *ah, 
     305                                                 u8 num_chains, 
     306-                                                struct coeff *coeff) 
     307+                                                struct coeff *coeff, 
     308+                                                bool is_reusable) 
     309 { 
     310        int i, im, nmeasurement; 
     311        u32 tx_corr_coeff[MAX_MEASUREMENT][AR9300_MAX_CHAINS]; 
     312+       struct ath9k_hw_cal_data *caldata = ah->caldata; 
     313  
     314        memset(tx_corr_coeff, 0, sizeof(tx_corr_coeff)); 
     315        for (i = 0; i < MAX_MEASUREMENT / 2; i++) { 
     316@@ -712,7 +715,13 @@ static void ar9003_hw_tx_iqcal_load_avg_ 
     317                                REG_RMW_FIELD(ah, tx_corr_coeff[im][i], 
     318                                        AR_PHY_TX_IQCAL_CORR_COEFF_01_COEFF_TABLE, 
     319                                        coeff->iqc_coeff[0]); 
     320+ 
     321+                       if (caldata) 
     322+                               caldata->tx_corr_coeff[im][i] = 
     323+                                       coeff->iqc_coeff[0]; 
     324                } 
     325+               if (caldata) 
     326+                       caldata->num_measures[i] = nmeasurement; 
     327        } 
     328  
     329        REG_RMW_FIELD(ah, AR_PHY_TX_IQCAL_CONTROL_3, 
     330@@ -720,8 +729,10 @@ static void ar9003_hw_tx_iqcal_load_avg_ 
     331        REG_RMW_FIELD(ah, AR_PHY_RX_IQCAL_CORR_B0, 
     332                      AR_PHY_RX_IQCAL_CORR_B0_LOOPBACK_IQCORR_EN, 0x1); 
     333  
     334-       return; 
     335+       if (caldata) 
     336+               caldata->done_txiqcal_once = is_reusable; 
     337  
     338+       return; 
     339 } 
     340  
     341 static bool ar9003_hw_tx_iq_cal_run(struct ath_hw *ah) 
     342@@ -748,7 +759,7 @@ static bool ar9003_hw_tx_iq_cal_run(stru 
    4343        return true; 
    5344 } 
    6345  
    7 -static void ar9002_hw_fill_txdesc(struct ath_hw *ah, void *ds, u32 seglen, 
    8 -                                 bool is_firstseg, bool is_lastseg, 
    9 -                                 const void *ds0, dma_addr_t buf_addr, 
    10 -                                 unsigned int qcu) 
    11 +static void 
    12 +ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i) 
     346-static void ar9003_hw_tx_iq_cal_post_proc(struct ath_hw *ah) 
     347+static void ar9003_hw_tx_iq_cal_post_proc(struct ath_hw *ah, bool is_reusable) 
    13348 { 
    14         struct ar5416_desc *ads = AR5416DESC(ds); 
    15 +       u32 ctl1, ctl6; 
    16   
    17 -       ads->ds_data = buf_addr; 
     349        struct ath_common *common = ath9k_hw_common(ah); 
     350        const u32 txiqcal_status[AR9300_MAX_CHAINS] = { 
     351@@ -837,7 +848,8 @@ static void ar9003_hw_tx_iq_cal_post_pro 
     352                                coeff.phs_coeff[i][im] -= 128; 
     353                } 
     354        } 
     355-       ar9003_hw_tx_iqcal_load_avg_2_passes(ah, num_chains, &coeff); 
     356+       ar9003_hw_tx_iqcal_load_avg_2_passes(ah, num_chains, 
     357+                                            &coeff, is_reusable); 
     358  
     359        return; 
     360  
     361@@ -845,11 +857,128 @@ tx_iqcal_fail: 
     362        ath_dbg(common, ATH_DBG_CALIBRATE, "Tx IQ Cal failed\n"); 
     363        return; 
     364 } 
     365+ 
     366+static void ar9003_hw_tx_iq_cal_reload(struct ath_hw *ah) 
     367+{ 
     368+       struct ath9k_hw_cal_data *caldata = ah->caldata; 
     369+       u32 tx_corr_coeff[MAX_MEASUREMENT][AR9300_MAX_CHAINS]; 
     370+       int i, im; 
     371+ 
     372+       memset(tx_corr_coeff, 0, sizeof(tx_corr_coeff)); 
     373+       for (i = 0; i < MAX_MEASUREMENT / 2; i++) { 
     374+               tx_corr_coeff[i * 2][0] = tx_corr_coeff[(i * 2) + 1][0] = 
     375+                                       AR_PHY_TX_IQCAL_CORR_COEFF_B0(i); 
     376+               if (!AR_SREV_9485(ah)) { 
     377+                       tx_corr_coeff[i * 2][1] = 
     378+                       tx_corr_coeff[(i * 2) + 1][1] = 
     379+                                       AR_PHY_TX_IQCAL_CORR_COEFF_B1(i); 
     380+ 
     381+                       tx_corr_coeff[i * 2][2] = 
     382+                       tx_corr_coeff[(i * 2) + 1][2] = 
     383+                                       AR_PHY_TX_IQCAL_CORR_COEFF_B2(i); 
     384+               } 
     385+       } 
     386+ 
     387+       for (i = 0; i < AR9300_MAX_CHAINS; i++) { 
     388+               if (!(ah->txchainmask & (1 << i))) 
     389+                       continue; 
     390+ 
     391+               for (im = 0; im < caldata->num_measures[i]; im++) { 
     392+                       if ((im % 2) == 0) 
     393+                               REG_RMW_FIELD(ah, tx_corr_coeff[im][i], 
     394+                                    AR_PHY_TX_IQCAL_CORR_COEFF_00_COEFF_TABLE, 
     395+                                    caldata->tx_corr_coeff[im][i]); 
     396+                       else 
     397+                               REG_RMW_FIELD(ah, tx_corr_coeff[im][i], 
     398+                                    AR_PHY_TX_IQCAL_CORR_COEFF_01_COEFF_TABLE, 
     399+                                    caldata->tx_corr_coeff[im][i]); 
     400+               } 
     401+       } 
     402+ 
     403+       REG_RMW_FIELD(ah, AR_PHY_TX_IQCAL_CONTROL_3, 
     404+                     AR_PHY_TX_IQCAL_CONTROL_3_IQCORR_EN, 0x1); 
     405+       REG_RMW_FIELD(ah, AR_PHY_RX_IQCAL_CORR_B0, 
     406+                     AR_PHY_RX_IQCAL_CORR_B0_LOOPBACK_IQCORR_EN, 0x1); 
     407+} 
     408+ 
     409+static bool ar9003_hw_rtt_restore(struct ath_hw *ah, struct ath9k_channel *chan) 
     410+{ 
     411+       struct ath9k_rtt_hist *hist = &ah->caldata->rtt_hist; 
     412+       u32 *table; 
     413+       int i; 
     414+       bool restore; 
     415+ 
     416+       if (!(ah->caps.hw_caps & ATH9K_HW_CAP_RTT)) 
     417+               return false; 
     418+ 
     419+       ar9003_hw_rtt_enable(ah); 
     420+       ar9003_hw_rtt_set_mask(ah, 0x10); 
     421+       for (i = 0; i < AR9300_MAX_CHAINS; i++) { 
     422+               if (!(ah->rxchainmask & (1 << i))) 
     423+                       continue; 
     424+               table = &hist->table[i][hist->num_readings][0]; 
     425+               ar9003_hw_rtt_load_hist(ah, i, table); 
     426+       } 
     427+       restore = ar9003_hw_rtt_force_restore(ah); 
     428+       ar9003_hw_rtt_disable(ah); 
     429+ 
     430+       return restore; 
     431+} 
     432+ 
     433 static bool ar9003_hw_init_cal(struct ath_hw *ah, 
     434                               struct ath9k_channel *chan) 
     435 { 
     436        struct ath_common *common = ath9k_hw_common(ah); 
     437-       bool txiqcal_done = false; 
     438+       struct ath9k_hw_cal_data *caldata = ah->caldata; 
     439+       bool txiqcal_done = false, txclcal_done = false; 
     440+       bool is_reusable = true, status = true; 
     441+       bool run_rtt_cal = false, run_agc_cal; 
     442+       bool rtt = !!(ah->caps.hw_caps & ATH9K_HW_CAP_RTT); 
     443+       u32 agc_ctrl = 0, agc_supp_cals = AR_PHY_AGC_CONTROL_OFFSET_CAL | 
     444+                                         AR_PHY_AGC_CONTROL_FLTR_CAL   | 
     445+                                         AR_PHY_AGC_CONTROL_PKDET_CAL; 
     446+       int i, j; 
     447+       u32 cl_idx[AR9300_MAX_CHAINS] = { AR_PHY_CL_TAB_0, 
     448+                                         AR_PHY_CL_TAB_1, 
     449+                                         AR_PHY_CL_TAB_2 }; 
     450+ 
     451+       if (rtt) { 
     452+               if (!ar9003_hw_rtt_restore(ah, chan)) 
     453+                       run_rtt_cal = true; 
     454+ 
     455+               ath_dbg(common, ATH_DBG_CALIBRATE, "RTT restore %s\n", 
     456+                       run_rtt_cal ? "failed" : "succeed"); 
     457+       } 
     458+       run_agc_cal = run_rtt_cal; 
     459+ 
     460+       if (run_rtt_cal) { 
     461+               ar9003_hw_rtt_enable(ah); 
     462+               ar9003_hw_rtt_set_mask(ah, 0x00); 
     463+               ar9003_hw_rtt_clear_hist(ah); 
     464+       } 
     465+ 
     466+       if (rtt && !run_rtt_cal) { 
     467+               agc_ctrl = REG_READ(ah, AR_PHY_AGC_CONTROL); 
     468+               agc_supp_cals &= agc_ctrl; 
     469+               agc_ctrl &= ~(AR_PHY_AGC_CONTROL_OFFSET_CAL | 
     470+                            AR_PHY_AGC_CONTROL_FLTR_CAL | 
     471+                            AR_PHY_AGC_CONTROL_PKDET_CAL); 
     472+               REG_WRITE(ah, AR_PHY_AGC_CONTROL, agc_ctrl); 
     473+       } 
     474+ 
     475+       if (ah->enabled_cals & TX_CL_CAL) { 
     476+               if (caldata && caldata->done_txclcal_once) 
     477+                       REG_CLR_BIT(ah, AR_PHY_CL_CAL_CTL, 
     478+                                   AR_PHY_CL_CAL_ENABLE); 
     479+               else { 
     480+                       REG_SET_BIT(ah, AR_PHY_CL_CAL_CTL, 
     481+                                   AR_PHY_CL_CAL_ENABLE); 
     482+                       run_agc_cal = true; 
     483+               } 
     484+       } 
     485+ 
     486+       if (!(ah->enabled_cals & TX_IQ_CAL)) 
     487+               goto skip_tx_iqcal; 
     488  
     489        /* Do Tx IQ Calibration */ 
     490        REG_RMW_FIELD(ah, AR_PHY_TX_IQCAL_CONTROL_1, 
     491@@ -860,30 +989,96 @@ static bool ar9003_hw_init_cal(struct at 
     492         * For AR9485 or later chips, TxIQ cal runs as part of 
     493         * AGC calibration 
     494         */ 
     495-       if (AR_SREV_9485_OR_LATER(ah)) 
     496-               txiqcal_done = true; 
     497-       else { 
     498-               txiqcal_done = ar9003_hw_tx_iq_cal_run(ah); 
     499-               REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_DIS); 
     500-               udelay(5); 
     501-               REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN); 
     502-       } 
    18503- 
    19 -       if (is_firstseg) { 
    20 -               ads->ds_ctl1 |= seglen | (is_lastseg ? 0 : AR_TxMore); 
    21 -       } else if (is_lastseg) { 
    22 -               ads->ds_ctl0 = 0; 
    23 -               ads->ds_ctl1 = seglen; 
    24 -               ads->ds_ctl2 = AR5416DESC_CONST(ds0)->ds_ctl2; 
    25 -               ads->ds_ctl3 = AR5416DESC_CONST(ds0)->ds_ctl3; 
    26 -       } else { 
    27 -               ads->ds_ctl0 = 0; 
    28 -               ads->ds_ctl1 = seglen | AR_TxMore; 
    29 -               ads->ds_ctl2 = 0; 
    30 -               ads->ds_ctl3 = 0; 
     504-       /* Calibrate the AGC */ 
     505-       REG_WRITE(ah, AR_PHY_AGC_CONTROL, 
     506-                 REG_READ(ah, AR_PHY_AGC_CONTROL) | 
     507-                 AR_PHY_AGC_CONTROL_CAL); 
     508- 
     509-       /* Poll for offset calibration complete */ 
     510-       if (!ath9k_hw_wait(ah, AR_PHY_AGC_CONTROL, AR_PHY_AGC_CONTROL_CAL, 
     511-                          0, AH_WAIT_TIMEOUT)) { 
     512+       if (ah->enabled_cals & TX_IQ_ON_AGC_CAL) { 
     513+               if (caldata && !caldata->done_txiqcal_once) 
     514+                       REG_SET_BIT(ah, AR_PHY_TX_IQCAL_CONTROL_0, 
     515+                                   AR_PHY_TX_IQCAL_CONTROL_0_ENABLE_TXIQ_CAL); 
     516+               else 
     517+                       REG_CLR_BIT(ah, AR_PHY_TX_IQCAL_CONTROL_0, 
     518+                                   AR_PHY_TX_IQCAL_CONTROL_0_ENABLE_TXIQ_CAL); 
     519+               txiqcal_done = run_agc_cal = true; 
     520+               goto skip_tx_iqcal; 
     521+       } else if (caldata && !caldata->done_txiqcal_once) 
     522+               run_agc_cal = true; 
     523+ 
     524+       txiqcal_done = ar9003_hw_tx_iq_cal_run(ah); 
     525+       REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_DIS); 
     526+       udelay(5); 
     527+       REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN); 
     528+ 
     529+skip_tx_iqcal: 
     530+       if (run_agc_cal || !(ah->ah_flags & AH_FASTCC)) { 
     531+               /* Calibrate the AGC */ 
     532+               REG_WRITE(ah, AR_PHY_AGC_CONTROL, 
     533+                         REG_READ(ah, AR_PHY_AGC_CONTROL) | 
     534+                         AR_PHY_AGC_CONTROL_CAL); 
     535+ 
     536+               /* Poll for offset calibration complete */ 
     537+               status = ath9k_hw_wait(ah, AR_PHY_AGC_CONTROL, 
     538+                                      AR_PHY_AGC_CONTROL_CAL, 
     539+                                      0, AH_WAIT_TIMEOUT); 
     540+       } 
     541+       if (rtt && !run_rtt_cal) { 
     542+               agc_ctrl |= agc_supp_cals; 
     543+               REG_WRITE(ah, AR_PHY_AGC_CONTROL, agc_ctrl); 
     544+       } 
     545+ 
     546+       if (!status) { 
     547+               if (run_rtt_cal) 
     548+                       ar9003_hw_rtt_disable(ah); 
     549+ 
     550                ath_dbg(common, ATH_DBG_CALIBRATE, 
     551-                       "offset calibration failed to complete in 1ms; noisy environment?\n"); 
     552+                       "offset calibration failed to complete in 1ms;" 
     553+                       "noisy environment?\n"); 
     554                return false; 
     555        } 
     556  
     557        if (txiqcal_done) 
     558-               ar9003_hw_tx_iq_cal_post_proc(ah); 
     559+               ar9003_hw_tx_iq_cal_post_proc(ah, is_reusable); 
     560+       else if (caldata && caldata->done_txiqcal_once) 
     561+               ar9003_hw_tx_iq_cal_reload(ah); 
     562+ 
     563+#define CL_TAB_ENTRY(reg_base) (reg_base + (4 * j)) 
     564+       if (caldata && (ah->enabled_cals & TX_CL_CAL)) { 
     565+               txclcal_done = !!(REG_READ(ah, AR_PHY_AGC_CONTROL) & 
     566+                                          AR_PHY_AGC_CONTROL_CLC_SUCCESS); 
     567+               if (caldata->done_txclcal_once) { 
     568+                       for (i = 0; i < AR9300_MAX_CHAINS; i++) { 
     569+                               if (!(ah->txchainmask & (1 << i))) 
     570+                                       continue; 
     571+                               for (j = 0; j < MAX_CL_TAB_ENTRY; j++) 
     572+                                       REG_WRITE(ah, CL_TAB_ENTRY(cl_idx[i]), 
     573+                                                 caldata->tx_clcal[i][j]); 
     574+                       } 
     575+               } else if (is_reusable && txclcal_done) { 
     576+                       for (i = 0; i < AR9300_MAX_CHAINS; i++) { 
     577+                               if (!(ah->txchainmask & (1 << i))) 
     578+                                       continue; 
     579+                               for (j = 0; j < MAX_CL_TAB_ENTRY; j++) 
     580+                                       caldata->tx_clcal[i][j] = 
     581+                                               REG_READ(ah, 
     582+                                                 CL_TAB_ENTRY(cl_idx[i])); 
     583+                       } 
     584+                       caldata->done_txclcal_once = true; 
     585+               } 
     586+       } 
     587+#undef CL_TAB_ENTRY 
     588+ 
     589+       if (run_rtt_cal) { 
     590+               struct ath9k_rtt_hist *hist = &ah->caldata->rtt_hist; 
     591+               if (is_reusable && (hist->num_readings < RTT_HIST_MAX)) { 
     592+                       u32 *table; 
     593+ 
     594+                       for (i = 0; i < AR9300_MAX_CHAINS; i++) { 
     595+                               if (!(ah->rxchainmask & (1 << i))) 
     596+                                       continue; 
     597+                               table = &hist->table[i][hist->num_readings][0]; 
     598+                               ar9003_hw_rtt_fill_hist(ah, i, table); 
     599+                       } 
     600+               } 
     601+ 
     602+               ar9003_hw_rtt_disable(ah); 
     603+       } 
     604  
     605        ath9k_hw_loadnf(ah, chan); 
     606        ath9k_hw_start_nfcal(ah, true); 
     607@@ -912,8 +1107,8 @@ static bool ar9003_hw_init_cal(struct at 
     608        if (ah->cal_list_curr) 
     609                ath9k_hw_reset_calibration(ah, ah->cal_list_curr); 
     610  
     611-       if (ah->caldata) 
     612-               ah->caldata->CalValid = 0; 
     613+       if (caldata) 
     614+               caldata->CalValid = 0; 
     615  
     616        return true; 
     617 } 
     618--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c 
     619+++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c 
     620@@ -2995,8 +2995,6 @@ static u32 ath9k_hw_ar9300_get_eeprom(st 
     621                return get_unaligned_be16(eep->macAddr + 4); 
     622        case EEP_REG_0: 
     623                return le16_to_cpu(pBase->regDmn[0]); 
     624-       case EEP_REG_1: 
     625-               return le16_to_cpu(pBase->regDmn[1]); 
     626        case EEP_OP_CAP: 
     627                return pBase->deviceCap; 
     628        case EEP_OP_MODE: 
     629@@ -3021,6 +3019,10 @@ static u32 ath9k_hw_ar9300_get_eeprom(st 
     630                return (pBase->miscConfiguration >> 0x3) & 0x1; 
     631        case EEP_ANT_DIV_CTL1: 
     632                return eep->base_ext1.ant_div_control; 
     633+       case EEP_ANTENNA_GAIN_5G: 
     634+               return eep->modalHeader5G.antennaGain; 
     635+       case EEP_ANTENNA_GAIN_2G: 
     636+               return eep->modalHeader2G.antennaGain; 
     637        default: 
     638                return 0; 
     639        } 
     640@@ -3554,7 +3556,7 @@ static void ar9003_hw_xpa_bias_level_app 
     641  
     642        if (AR_SREV_9485(ah) || AR_SREV_9330(ah) || AR_SREV_9340(ah)) 
     643                REG_RMW_FIELD(ah, AR_CH0_TOP2, AR_CH0_TOP2_XPABIASLVL, bias); 
     644-       else if (AR_SREV_9480(ah)) 
     645+       else if (AR_SREV_9462(ah)) 
     646                REG_RMW_FIELD(ah, AR_CH0_TOP, AR_CH0_TOP_XPABIASLVL, bias); 
     647        else { 
     648                REG_RMW_FIELD(ah, AR_CH0_TOP, AR_CH0_TOP_XPABIASLVL, bias); 
     649@@ -3633,20 +3635,20 @@ static void ar9003_hw_ant_ctrl_apply(str 
     650  
     651        u32 value = ar9003_hw_ant_ctrl_common_get(ah, is2ghz); 
     652  
     653-       if (AR_SREV_9480(ah)) { 
     654-               if (AR_SREV_9480_10(ah)) { 
     655+       if (AR_SREV_9462(ah)) { 
     656+               if (AR_SREV_9462_10(ah)) { 
     657                        value &= ~AR_SWITCH_TABLE_COM_SPDT; 
     658                        value |= 0x00100000; 
     659                } 
     660                REG_RMW_FIELD(ah, AR_PHY_SWITCH_COM, 
     661-                               AR_SWITCH_TABLE_COM_AR9480_ALL, value); 
     662+                               AR_SWITCH_TABLE_COM_AR9462_ALL, value); 
     663        } else 
     664                REG_RMW_FIELD(ah, AR_PHY_SWITCH_COM, 
     665                              AR_SWITCH_TABLE_COM_ALL, value); 
     666  
     667  
     668        /* 
     669-        *   AR9480 defines new switch table for BT/WLAN, 
     670+        *   AR9462 defines new switch table for BT/WLAN, 
     671         *       here's new field name in XXX.ref for both 2G and 5G. 
     672         *   Register: [GLB_CONTROL] GLB_CONTROL (@0x20044) 
     673         *   15:12   R/W     SWITCH_TABLE_COM_SPDT_WLAN_RX 
     674@@ -3658,7 +3660,7 @@ static void ar9003_hw_ant_ctrl_apply(str 
     675         *   7:4 R/W  SWITCH_TABLE_COM_SPDT_WLAN_IDLE 
     676         * SWITCH_TABLE_COM_SPDT_WLAN_IDLE 
     677         */ 
     678-       if (AR_SREV_9480_20_OR_LATER(ah)) { 
     679+       if (AR_SREV_9462_20_OR_LATER(ah)) { 
     680                value = ar9003_switch_com_spdt_get(ah, is2ghz); 
     681                REG_RMW_FIELD(ah, AR_PHY_GLB_CONTROL, 
     682                                AR_SWITCH_TABLE_COM_SPDT_ALL, value); 
     683@@ -3907,7 +3909,7 @@ static void ar9003_hw_internal_regulator 
     684                        REG_WRITE(ah, AR_PHY_PMU2, reg_pmu_set); 
     685                        if (!is_pmu_set(ah, AR_PHY_PMU2, reg_pmu_set)) 
     686                                return; 
     687-               } else if (AR_SREV_9480(ah)) { 
     688+               } else if (AR_SREV_9462(ah)) { 
     689                        reg_val = ath9k_hw_ar9300_get_eeprom(ah, EEP_SWREG); 
     690                        REG_WRITE(ah, AR_PHY_PMU1, reg_val); 
     691                } else { 
     692@@ -3938,7 +3940,7 @@ static void ar9003_hw_internal_regulator 
     693                        while (!REG_READ_FIELD(ah, AR_PHY_PMU2, 
     694                                                AR_PHY_PMU2_PGM)) 
     695                                udelay(10); 
     696-               } else if (AR_SREV_9480(ah)) 
     697+               } else if (AR_SREV_9462(ah)) 
     698                        REG_RMW_FIELD(ah, AR_PHY_PMU1, AR_PHY_PMU1_PWD, 0x1); 
     699                else { 
     700                        reg_val = REG_READ(ah, AR_RTC_SLEEP_CLK) | 
     701@@ -4525,7 +4527,7 @@ static int ar9003_hw_power_control_overr 
     702  
     703        REG_RMW_FIELD(ah, AR_PHY_TPC_19, AR_PHY_TPC_19_ALPHA_THERM, tempSlope); 
     704  
     705-       if (AR_SREV_9480_20(ah)) 
     706+       if (AR_SREV_9462_20(ah)) 
     707                REG_RMW_FIELD(ah, AR_PHY_TPC_19_B1, 
     708                              AR_PHY_TPC_19_B1_ALPHA_THERM, tempSlope); 
     709  
     710@@ -4764,20 +4766,14 @@ static u16 ar9003_hw_get_max_edge_power( 
     711 static void ar9003_hw_set_power_per_rate_table(struct ath_hw *ah, 
     712                                               struct ath9k_channel *chan, 
     713                                               u8 *pPwrArray, u16 cfgCtl, 
     714-                                              u8 twiceAntennaReduction, 
     715-                                              u8 twiceMaxRegulatoryPower, 
     716+                                              u8 antenna_reduction, 
     717                                               u16 powerLimit) 
     718 { 
     719-       struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah); 
     720        struct ath_common *common = ath9k_hw_common(ah); 
     721        struct ar9300_eeprom *pEepData = &ah->eeprom.ar9300_eep; 
     722        u16 twiceMaxEdgePower = MAX_RATE_POWER; 
     723-       static const u16 tpScaleReductionTable[5] = { 
     724-               0, 3, 6, 9, MAX_RATE_POWER 
     725-       }; 
     726        int i; 
     727-       int16_t  twiceLargestAntenna; 
     728-       u16 scaledPower = 0, minCtlPower, maxRegAllowedPower; 
     729+       u16 scaledPower = 0, minCtlPower; 
     730        static const u16 ctlModesFor11a[] = { 
     731                CTL_11A, CTL_5GHT20, CTL_11A_EXT, CTL_5GHT40 
     732        }; 
     733@@ -4795,28 +4791,7 @@ static void ar9003_hw_set_power_per_rate 
     734        bool is2ghz = IS_CHAN_2GHZ(chan); 
     735  
     736        ath9k_hw_get_channel_centers(ah, chan, &centers); 
     737- 
     738-       /* Compute TxPower reduction due to Antenna Gain */ 
     739-       if (is2ghz) 
     740-               twiceLargestAntenna = pEepData->modalHeader2G.antennaGain; 
     741-       else 
     742-               twiceLargestAntenna = pEepData->modalHeader5G.antennaGain; 
     743- 
     744-       twiceLargestAntenna = (int16_t)min((twiceAntennaReduction) - 
     745-                               twiceLargestAntenna, 0); 
     746- 
     747-       /* 
     748-        * scaledPower is the minimum of the user input power level 
     749-        * and the regulatory allowed power level 
     750-        */ 
     751-       maxRegAllowedPower = twiceMaxRegulatoryPower + twiceLargestAntenna; 
     752- 
     753-       if (regulatory->tp_scale != ATH9K_TP_SCALE_MAX) { 
     754-               maxRegAllowedPower -= 
     755-                       (tpScaleReductionTable[(regulatory->tp_scale)] * 2); 
    31756-       } 
    32         ads->ds_txstatus0 = ads->ds_txstatus1 = 0; 
    33         ads->ds_txstatus2 = ads->ds_txstatus3 = 0; 
    34         ads->ds_txstatus4 = ads->ds_txstatus5 = 0; 
    35         ads->ds_txstatus6 = ads->ds_txstatus7 = 0; 
    36         ads->ds_txstatus8 = ads->ds_txstatus9 = 0; 
    37 + 
    38 +       ACCESS_ONCE(ads->ds_link) = i->link; 
    39 +       ACCESS_ONCE(ads->ds_data) = i->buf_addr[0]; 
    40 + 
    41 +       ctl1 = i->buf_len[0] | (i->is_last ? 0 : AR_TxMore); 
    42 +       ctl6 = SM(i->keytype, AR_EncrType); 
    43 + 
    44 +       if (AR_SREV_9285(ah)) { 
    45 +               ads->ds_ctl8 = 0; 
    46 +               ads->ds_ctl9 = 0; 
    47 +               ads->ds_ctl10 = 0; 
    48 +               ads->ds_ctl11 = 0; 
     757- 
     758-       scaledPower = min(powerLimit, maxRegAllowedPower); 
     759+       scaledPower = powerLimit - antenna_reduction; 
     760  
     761        /* 
     762         * Reduce scaled Power by number of chains active to get 
     763@@ -5003,7 +4978,6 @@ static inline u8 mcsidx_to_tgtpwridx(uns 
     764 static void ath9k_hw_ar9300_set_txpower(struct ath_hw *ah, 
     765                                        struct ath9k_channel *chan, u16 cfgCtl, 
     766                                        u8 twiceAntennaReduction, 
     767-                                       u8 twiceMaxRegulatoryPower, 
     768                                        u8 powerLimit, bool test) 
     769 { 
     770        struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah); 
     771@@ -5056,7 +5030,6 @@ static void ath9k_hw_ar9300_set_txpower( 
     772        ar9003_hw_set_power_per_rate_table(ah, chan, 
     773                                           targetPowerValT2, cfgCtl, 
     774                                           twiceAntennaReduction, 
     775-                                          twiceMaxRegulatoryPower, 
     776                                           powerLimit); 
     777  
     778        if (ah->eep_ops->get_eeprom(ah, EEP_PAPRD)) { 
     779--- a/drivers/net/wireless/ath/ath9k/ar9003_hw.c 
     780+++ b/drivers/net/wireless/ath/ath9k/ar9003_hw.c 
     781@@ -22,8 +22,8 @@ 
     782 #include "ar9330_1p1_initvals.h" 
     783 #include "ar9330_1p2_initvals.h" 
     784 #include "ar9580_1p0_initvals.h" 
     785-#include "ar9480_1p0_initvals.h" 
     786-#include "ar9480_2p0_initvals.h" 
     787+#include "ar9462_1p0_initvals.h" 
     788+#include "ar9462_2p0_initvals.h" 
     789  
     790 /* General hardware code for the AR9003 hadware family */ 
     791  
     792@@ -35,13 +35,13 @@ 
     793 static void ar9003_hw_init_mode_regs(struct ath_hw *ah) 
     794 { 
     795 #define PCIE_PLL_ON_CREQ_DIS_L1_2P0 \ 
     796-               ar9480_pciephy_pll_on_clkreq_disable_L1_2p0 
     797+               ar9462_pciephy_pll_on_clkreq_disable_L1_2p0 
     798  
     799-#define AR9480_BB_CTX_COEFJ(x) \ 
     800-               ar9480_##x##_baseband_core_txfir_coeff_japan_2484 
     801+#define AR9462_BB_CTX_COEFJ(x) \ 
     802+               ar9462_##x##_baseband_core_txfir_coeff_japan_2484 
     803  
     804-#define AR9480_BBC_TXIFR_COEFFJ \ 
     805-               ar9480_2p0_baseband_core_txfir_coeff_japan_2484 
     806+#define AR9462_BBC_TXIFR_COEFFJ \ 
     807+               ar9462_2p0_baseband_core_txfir_coeff_japan_2484 
     808        if (AR_SREV_9330_11(ah)) { 
     809                /* mac */ 
     810                INIT_INI_ARRAY(&ah->iniMac[ATH_INI_PRE], NULL, 0, 0); 
     811@@ -264,107 +264,107 @@ static void ar9003_hw_init_mode_regs(str 
     812                                ar9485_1_1_pcie_phy_clkreq_disable_L1, 
     813                                ARRAY_SIZE(ar9485_1_1_pcie_phy_clkreq_disable_L1), 
     814                                2); 
     815-       } else if (AR_SREV_9480_10(ah)) { 
     816+       } else if (AR_SREV_9462_10(ah)) { 
     817                INIT_INI_ARRAY(&ah->iniMac[ATH_INI_PRE], NULL, 0, 0); 
     818-               INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE], ar9480_1p0_mac_core, 
     819-                               ARRAY_SIZE(ar9480_1p0_mac_core), 2); 
     820+               INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE], ar9462_1p0_mac_core, 
     821+                               ARRAY_SIZE(ar9462_1p0_mac_core), 2); 
     822                INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST], 
     823-                               ar9480_1p0_mac_postamble, 
     824-                               ARRAY_SIZE(ar9480_1p0_mac_postamble), 
     825+                               ar9462_1p0_mac_postamble, 
     826+                               ARRAY_SIZE(ar9462_1p0_mac_postamble), 
     827                                5); 
     828  
     829                INIT_INI_ARRAY(&ah->iniBB[ATH_INI_PRE], NULL, 0, 0); 
     830                INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE], 
     831-                               ar9480_1p0_baseband_core, 
     832-                               ARRAY_SIZE(ar9480_1p0_baseband_core), 
     833+                               ar9462_1p0_baseband_core, 
     834+                               ARRAY_SIZE(ar9462_1p0_baseband_core), 
     835                                2); 
     836                INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST], 
     837-                               ar9480_1p0_baseband_postamble, 
     838-                               ARRAY_SIZE(ar9480_1p0_baseband_postamble), 5); 
     839+                               ar9462_1p0_baseband_postamble, 
     840+                               ARRAY_SIZE(ar9462_1p0_baseband_postamble), 5); 
     841  
     842                INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_PRE], NULL, 0, 0); 
     843                INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE], 
     844-                               ar9480_1p0_radio_core, 
     845-                               ARRAY_SIZE(ar9480_1p0_radio_core), 2); 
     846+                               ar9462_1p0_radio_core, 
     847+                               ARRAY_SIZE(ar9462_1p0_radio_core), 2); 
     848                INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_POST], 
     849-                               ar9480_1p0_radio_postamble, 
     850-                               ARRAY_SIZE(ar9480_1p0_radio_postamble), 5); 
     851+                               ar9462_1p0_radio_postamble, 
     852+                               ARRAY_SIZE(ar9462_1p0_radio_postamble), 5); 
     853  
     854                INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE], 
     855-                               ar9480_1p0_soc_preamble, 
     856-                               ARRAY_SIZE(ar9480_1p0_soc_preamble), 2); 
     857+                               ar9462_1p0_soc_preamble, 
     858+                               ARRAY_SIZE(ar9462_1p0_soc_preamble), 2); 
     859                INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_CORE], NULL, 0, 0); 
     860                INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_POST], 
     861-                               ar9480_1p0_soc_postamble, 
     862-                               ARRAY_SIZE(ar9480_1p0_soc_postamble), 5); 
     863+                               ar9462_1p0_soc_postamble, 
     864+                               ARRAY_SIZE(ar9462_1p0_soc_postamble), 5); 
     865  
     866                INIT_INI_ARRAY(&ah->iniModesRxGain, 
     867-                               ar9480_common_rx_gain_table_1p0, 
     868-                               ARRAY_SIZE(ar9480_common_rx_gain_table_1p0), 2); 
     869+                               ar9462_common_rx_gain_table_1p0, 
     870+                               ARRAY_SIZE(ar9462_common_rx_gain_table_1p0), 2); 
     871  
     872                /* Awake -> Sleep Setting */ 
     873                INIT_INI_ARRAY(&ah->iniPcieSerdes, 
     874-                       ar9480_pcie_phy_clkreq_disable_L1_1p0, 
     875-                       ARRAY_SIZE(ar9480_pcie_phy_clkreq_disable_L1_1p0), 
     876+                       ar9462_pcie_phy_clkreq_disable_L1_1p0, 
     877+                       ARRAY_SIZE(ar9462_pcie_phy_clkreq_disable_L1_1p0), 
     878                        2); 
     879  
     880                /* Sleep -> Awake Setting */ 
     881                INIT_INI_ARRAY(&ah->iniPcieSerdesLowPower, 
     882-                       ar9480_pcie_phy_clkreq_disable_L1_1p0, 
     883-                       ARRAY_SIZE(ar9480_pcie_phy_clkreq_disable_L1_1p0), 
     884+                       ar9462_pcie_phy_clkreq_disable_L1_1p0, 
     885+                       ARRAY_SIZE(ar9462_pcie_phy_clkreq_disable_L1_1p0), 
     886                        2); 
     887  
     888                INIT_INI_ARRAY(&ah->iniModesAdditional, 
     889-                               ar9480_modes_fast_clock_1p0, 
     890-                               ARRAY_SIZE(ar9480_modes_fast_clock_1p0), 3); 
     891+                               ar9462_modes_fast_clock_1p0, 
     892+                               ARRAY_SIZE(ar9462_modes_fast_clock_1p0), 3); 
     893                INIT_INI_ARRAY(&ah->iniCckfirJapan2484, 
     894-                               AR9480_BB_CTX_COEFJ(1p0), 
     895-                               ARRAY_SIZE(AR9480_BB_CTX_COEFJ(1p0)), 2); 
     896+                               AR9462_BB_CTX_COEFJ(1p0), 
     897+                               ARRAY_SIZE(AR9462_BB_CTX_COEFJ(1p0)), 2); 
     898  
     899-       } else if (AR_SREV_9480_20(ah)) { 
     900+       } else if (AR_SREV_9462_20(ah)) { 
     901  
     902                INIT_INI_ARRAY(&ah->iniMac[ATH_INI_PRE], NULL, 0, 0); 
     903-               INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE], ar9480_2p0_mac_core, 
     904-                               ARRAY_SIZE(ar9480_2p0_mac_core), 2); 
     905+               INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE], ar9462_2p0_mac_core, 
     906+                               ARRAY_SIZE(ar9462_2p0_mac_core), 2); 
     907                INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST], 
     908-                               ar9480_2p0_mac_postamble, 
     909-                               ARRAY_SIZE(ar9480_2p0_mac_postamble), 5); 
     910+                               ar9462_2p0_mac_postamble, 
     911+                               ARRAY_SIZE(ar9462_2p0_mac_postamble), 5); 
     912  
     913                INIT_INI_ARRAY(&ah->iniBB[ATH_INI_PRE], NULL, 0, 0); 
     914                INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE], 
     915-                               ar9480_2p0_baseband_core, 
     916-                               ARRAY_SIZE(ar9480_2p0_baseband_core), 2); 
     917+                               ar9462_2p0_baseband_core, 
     918+                               ARRAY_SIZE(ar9462_2p0_baseband_core), 2); 
     919                INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST], 
     920-                               ar9480_2p0_baseband_postamble, 
     921-                               ARRAY_SIZE(ar9480_2p0_baseband_postamble), 5); 
     922+                               ar9462_2p0_baseband_postamble, 
     923+                               ARRAY_SIZE(ar9462_2p0_baseband_postamble), 5); 
     924  
     925                INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_PRE], NULL, 0, 0); 
     926                INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE], 
     927-                               ar9480_2p0_radio_core, 
     928-                               ARRAY_SIZE(ar9480_2p0_radio_core), 2); 
     929+                               ar9462_2p0_radio_core, 
     930+                               ARRAY_SIZE(ar9462_2p0_radio_core), 2); 
     931                INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_POST], 
     932-                               ar9480_2p0_radio_postamble, 
     933-                               ARRAY_SIZE(ar9480_2p0_radio_postamble), 5); 
     934+                               ar9462_2p0_radio_postamble, 
     935+                               ARRAY_SIZE(ar9462_2p0_radio_postamble), 5); 
     936                INIT_INI_ARRAY(&ah->ini_radio_post_sys2ant, 
     937-                               ar9480_2p0_radio_postamble_sys2ant, 
     938-                               ARRAY_SIZE(ar9480_2p0_radio_postamble_sys2ant), 
     939+                               ar9462_2p0_radio_postamble_sys2ant, 
     940+                               ARRAY_SIZE(ar9462_2p0_radio_postamble_sys2ant), 
     941                                5); 
     942  
     943                INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE], 
     944-                               ar9480_2p0_soc_preamble, 
     945-                               ARRAY_SIZE(ar9480_2p0_soc_preamble), 2); 
     946+                               ar9462_2p0_soc_preamble, 
     947+                               ARRAY_SIZE(ar9462_2p0_soc_preamble), 2); 
     948                INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_CORE], NULL, 0, 0); 
     949                INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_POST], 
     950-                               ar9480_2p0_soc_postamble, 
     951-                               ARRAY_SIZE(ar9480_2p0_soc_postamble), 5); 
     952+                               ar9462_2p0_soc_postamble, 
     953+                               ARRAY_SIZE(ar9462_2p0_soc_postamble), 5); 
     954  
     955                INIT_INI_ARRAY(&ah->iniModesRxGain, 
     956-                               ar9480_common_rx_gain_table_2p0, 
     957-                               ARRAY_SIZE(ar9480_common_rx_gain_table_2p0), 2); 
     958+                               ar9462_common_rx_gain_table_2p0, 
     959+                               ARRAY_SIZE(ar9462_common_rx_gain_table_2p0), 2); 
     960  
     961                INIT_INI_ARRAY(&ah->ini_BTCOEX_MAX_TXPWR, 
     962-                               ar9480_2p0_BTCOEX_MAX_TXPWR_table, 
     963-                               ARRAY_SIZE(ar9480_2p0_BTCOEX_MAX_TXPWR_table), 
     964+                               ar9462_2p0_BTCOEX_MAX_TXPWR_table, 
     965+                               ARRAY_SIZE(ar9462_2p0_BTCOEX_MAX_TXPWR_table), 
     966                                2); 
     967  
     968                /* Awake -> Sleep Setting */ 
     969@@ -380,15 +380,15 @@ static void ar9003_hw_init_mode_regs(str 
     970  
     971                /* Fast clock modal settings */ 
     972                INIT_INI_ARRAY(&ah->iniModesAdditional, 
     973-                               ar9480_modes_fast_clock_2p0, 
     974-                               ARRAY_SIZE(ar9480_modes_fast_clock_2p0), 3); 
     975+                               ar9462_modes_fast_clock_2p0, 
     976+                               ARRAY_SIZE(ar9462_modes_fast_clock_2p0), 3); 
     977  
     978                INIT_INI_ARRAY(&ah->iniCckfirJapan2484, 
     979-                               AR9480_BB_CTX_COEFJ(2p0), 
     980-                               ARRAY_SIZE(AR9480_BB_CTX_COEFJ(2p0)), 2); 
     981+                               AR9462_BB_CTX_COEFJ(2p0), 
     982+                               ARRAY_SIZE(AR9462_BB_CTX_COEFJ(2p0)), 2); 
     983  
     984-               INIT_INI_ARRAY(&ah->ini_japan2484, AR9480_BBC_TXIFR_COEFFJ, 
     985-                               ARRAY_SIZE(AR9480_BBC_TXIFR_COEFFJ), 2); 
     986+               INIT_INI_ARRAY(&ah->ini_japan2484, AR9462_BBC_TXIFR_COEFFJ, 
     987+                               ARRAY_SIZE(AR9462_BBC_TXIFR_COEFFJ), 2); 
     988  
     989        } else if (AR_SREV_9580(ah)) { 
     990                /* mac */ 
     991@@ -537,15 +537,15 @@ static void ar9003_tx_gain_table_mode0(s 
     992                        ar9580_1p0_lowest_ob_db_tx_gain_table, 
     993                        ARRAY_SIZE(ar9580_1p0_lowest_ob_db_tx_gain_table), 
     994                        5); 
     995-       else if (AR_SREV_9480_10(ah)) 
     996+       else if (AR_SREV_9462_10(ah)) 
     997                INIT_INI_ARRAY(&ah->iniModesTxGain, 
     998-                       ar9480_modes_low_ob_db_tx_gain_table_1p0, 
     999-                       ARRAY_SIZE(ar9480_modes_low_ob_db_tx_gain_table_1p0), 
     1000+                       ar9462_modes_low_ob_db_tx_gain_table_1p0, 
     1001+                       ARRAY_SIZE(ar9462_modes_low_ob_db_tx_gain_table_1p0), 
     1002                        5); 
     1003-       else if (AR_SREV_9480_20(ah)) 
     1004+       else if (AR_SREV_9462_20(ah)) 
     1005                INIT_INI_ARRAY(&ah->iniModesTxGain, 
     1006-                       ar9480_modes_low_ob_db_tx_gain_table_2p0, 
     1007-                       ARRAY_SIZE(ar9480_modes_low_ob_db_tx_gain_table_2p0), 
     1008+                       ar9462_modes_low_ob_db_tx_gain_table_2p0, 
     1009+                       ARRAY_SIZE(ar9462_modes_low_ob_db_tx_gain_table_2p0), 
     1010                        5); 
     1011        else 
     1012                INIT_INI_ARRAY(&ah->iniModesTxGain, 
     1013@@ -581,15 +581,15 @@ static void ar9003_tx_gain_table_mode1(s 
     1014                        ar9580_1p0_high_ob_db_tx_gain_table, 
     1015                        ARRAY_SIZE(ar9580_1p0_high_ob_db_tx_gain_table), 
     1016                        5); 
     1017-       else if (AR_SREV_9480_10(ah)) 
     1018+       else if (AR_SREV_9462_10(ah)) 
     1019                INIT_INI_ARRAY(&ah->iniModesTxGain, 
     1020-                       ar9480_modes_high_ob_db_tx_gain_table_1p0, 
     1021-                       ARRAY_SIZE(ar9480_modes_high_ob_db_tx_gain_table_1p0), 
     1022+                       ar9462_modes_high_ob_db_tx_gain_table_1p0, 
     1023+                       ARRAY_SIZE(ar9462_modes_high_ob_db_tx_gain_table_1p0), 
     1024                        5); 
     1025-       else if (AR_SREV_9480_20(ah)) 
     1026+       else if (AR_SREV_9462_20(ah)) 
     1027                INIT_INI_ARRAY(&ah->iniModesTxGain, 
     1028-                       ar9480_modes_high_ob_db_tx_gain_table_2p0, 
     1029-                       ARRAY_SIZE(ar9480_modes_high_ob_db_tx_gain_table_2p0), 
     1030+                       ar9462_modes_high_ob_db_tx_gain_table_2p0, 
     1031+                       ARRAY_SIZE(ar9462_modes_high_ob_db_tx_gain_table_2p0), 
     1032                        5); 
     1033        else 
     1034                INIT_INI_ARRAY(&ah->iniModesTxGain, 
     1035@@ -712,15 +712,15 @@ static void ar9003_rx_gain_table_mode0(s 
     1036                                ar9580_1p0_rx_gain_table, 
     1037                                ARRAY_SIZE(ar9580_1p0_rx_gain_table), 
     1038                                2); 
     1039-       else if (AR_SREV_9480_10(ah)) 
     1040+       else if (AR_SREV_9462_10(ah)) 
     1041                INIT_INI_ARRAY(&ah->iniModesRxGain, 
     1042-                               ar9480_common_rx_gain_table_1p0, 
     1043-                               ARRAY_SIZE(ar9480_common_rx_gain_table_1p0), 
     1044+                               ar9462_common_rx_gain_table_1p0, 
     1045+                               ARRAY_SIZE(ar9462_common_rx_gain_table_1p0), 
     1046                                2); 
     1047-       else if (AR_SREV_9480_20(ah)) 
     1048+       else if (AR_SREV_9462_20(ah)) 
     1049                INIT_INI_ARRAY(&ah->iniModesRxGain, 
     1050-                               ar9480_common_rx_gain_table_2p0, 
     1051-                               ARRAY_SIZE(ar9480_common_rx_gain_table_2p0), 
     1052+                               ar9462_common_rx_gain_table_2p0, 
     1053+                               ARRAY_SIZE(ar9462_common_rx_gain_table_2p0), 
     1054                                2); 
     1055        else 
     1056                INIT_INI_ARRAY(&ah->iniModesRxGain, 
     1057@@ -751,15 +751,15 @@ static void ar9003_rx_gain_table_mode1(s 
     1058                        ar9485Common_wo_xlna_rx_gain_1_1, 
     1059                        ARRAY_SIZE(ar9485Common_wo_xlna_rx_gain_1_1), 
     1060                        2); 
     1061-       else if (AR_SREV_9480_10(ah)) 
     1062+       else if (AR_SREV_9462_10(ah)) 
     1063                INIT_INI_ARRAY(&ah->iniModesRxGain, 
     1064-                       ar9480_common_wo_xlna_rx_gain_table_1p0, 
     1065-                       ARRAY_SIZE(ar9480_common_wo_xlna_rx_gain_table_1p0), 
     1066+                       ar9462_common_wo_xlna_rx_gain_table_1p0, 
     1067+                       ARRAY_SIZE(ar9462_common_wo_xlna_rx_gain_table_1p0), 
     1068                        2); 
     1069-       else if (AR_SREV_9480_20(ah)) 
     1070+       else if (AR_SREV_9462_20(ah)) 
     1071                INIT_INI_ARRAY(&ah->iniModesRxGain, 
     1072-                       ar9480_common_wo_xlna_rx_gain_table_2p0, 
     1073-                       ARRAY_SIZE(ar9480_common_wo_xlna_rx_gain_table_2p0), 
     1074+                       ar9462_common_wo_xlna_rx_gain_table_2p0, 
     1075+                       ARRAY_SIZE(ar9462_common_wo_xlna_rx_gain_table_2p0), 
     1076                        2); 
     1077        else if (AR_SREV_9580(ah)) 
     1078                INIT_INI_ARRAY(&ah->iniModesRxGain, 
     1079@@ -775,14 +775,14 @@ static void ar9003_rx_gain_table_mode1(s 
     1080  
     1081 static void ar9003_rx_gain_table_mode2(struct ath_hw *ah) 
     1082 { 
     1083-       if (AR_SREV_9480_10(ah)) 
     1084+       if (AR_SREV_9462_10(ah)) 
     1085                INIT_INI_ARRAY(&ah->iniModesRxGain, 
     1086-                       ar9480_common_mixed_rx_gain_table_1p0, 
     1087-                       ARRAY_SIZE(ar9480_common_mixed_rx_gain_table_1p0), 2); 
     1088-       else if (AR_SREV_9480_20(ah)) 
     1089+                       ar9462_common_mixed_rx_gain_table_1p0, 
     1090+                       ARRAY_SIZE(ar9462_common_mixed_rx_gain_table_1p0), 2); 
     1091+       else if (AR_SREV_9462_20(ah)) 
     1092                INIT_INI_ARRAY(&ah->iniModesRxGain, 
     1093-                       ar9480_common_mixed_rx_gain_table_2p0, 
     1094-                       ARRAY_SIZE(ar9480_common_mixed_rx_gain_table_2p0), 2); 
     1095+                       ar9462_common_mixed_rx_gain_table_2p0, 
     1096+                       ARRAY_SIZE(ar9462_common_mixed_rx_gain_table_2p0), 2); 
     1097 } 
     1098  
     1099 static void ar9003_rx_gain_table_apply(struct ath_hw *ah) 
     1100--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c 
     1101+++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c 
     1102@@ -525,8 +525,8 @@ int ath9k_hw_process_rxdesc_edma(struct  
     1103                        rxs->rs_status |= ATH9K_RXERR_DECRYPT; 
     1104                else if (rxsp->status11 & AR_MichaelErr) 
     1105                        rxs->rs_status |= ATH9K_RXERR_MIC; 
     1106-               else if (rxsp->status11 & AR_KeyMiss) 
     1107-                       rxs->rs_status |= ATH9K_RXERR_DECRYPT; 
     1108+               if (rxsp->status11 & AR_KeyMiss) 
     1109+                       rxs->rs_status |= ATH9K_RXERR_KEYMISS; 
     1110        } 
     1111  
     1112        return 0; 
     1113--- a/drivers/net/wireless/ath/ath9k/ar9003_paprd.c 
     1114+++ b/drivers/net/wireless/ath/ath9k/ar9003_paprd.c 
     1115@@ -19,7 +19,6 @@ 
     1116  
     1117 void ar9003_paprd_enable(struct ath_hw *ah, bool val) 
     1118 { 
     1119-       struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah); 
     1120        struct ath9k_channel *chan = ah->curchan; 
     1121        struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep; 
     1122  
     1123@@ -54,13 +53,7 @@ void ar9003_paprd_enable(struct ath_hw * 
     1124  
     1125        if (val) { 
     1126                ah->paprd_table_write_done = true; 
     1127- 
     1128-               ah->eep_ops->set_txpower(ah, chan, 
     1129-                               ath9k_regd_get_ctl(regulatory, chan), 
     1130-                               chan->chan->max_antenna_gain * 2, 
     1131-                               chan->chan->max_power * 2, 
     1132-                               min((u32) MAX_RATE_POWER, 
     1133-                               (u32) regulatory->power_limit), false); 
     1134+               ath9k_hw_apply_txpower(ah, chan); 
     1135        } 
     1136  
     1137        REG_RMW_FIELD(ah, AR_PHY_PAPRD_CTRL0_B0, 
     1138@@ -207,7 +200,7 @@ static int ar9003_paprd_setup_single_tab 
     1139                      AR_PHY_PAPRD_TRAINER_CNTL1_CF_PAPRD_AGC2_SETTLING, 28); 
     1140        REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL1, 
     1141                      AR_PHY_PAPRD_TRAINER_CNTL1_CF_CF_PAPRD_TRAIN_ENABLE, 1); 
     1142-       val = AR_SREV_9480(ah) ? 0x91 : 147; 
     1143+       val = AR_SREV_9462(ah) ? 0x91 : 147; 
     1144        REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL2, 
     1145                      AR_PHY_PAPRD_TRAINER_CNTL2_CF_PAPRD_INIT_RX_BB_GAIN, val); 
     1146        REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL3, 
     1147@@ -218,7 +211,7 @@ static int ar9003_paprd_setup_single_tab 
     1148                      AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_NUM_CORR_STAGES, 7); 
     1149        REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL3, 
     1150                      AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_MIN_LOOPBACK_DEL, 1); 
     1151-       if (AR_SREV_9485(ah) || AR_SREV_9480(ah)) 
     1152+       if (AR_SREV_9485(ah) || AR_SREV_9462(ah)) 
     1153                REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL3, 
     1154                              AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_QUICK_DROP, 
     1155                              -3); 
     1156@@ -226,7 +219,7 @@ static int ar9003_paprd_setup_single_tab 
     1157                REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL3, 
     1158                              AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_QUICK_DROP, 
     1159                              -6); 
     1160-       val = AR_SREV_9480(ah) ? -10 : -15; 
     1161+       val = AR_SREV_9462(ah) ? -10 : -15; 
     1162        REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL3, 
     1163                      AR_PHY_PAPRD_TRAINER_CNTL3_CF_PAPRD_ADC_DESIRED_SIZE, 
     1164                      val); 
     1165--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c 
     1166+++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c 
     1167@@ -559,7 +559,7 @@ static void ar9003_hw_set_chain_masks(st 
     1168  
     1169        if ((ah->caps.hw_caps & ATH9K_HW_CAP_APM) && (tx == 0x7)) 
     1170                REG_WRITE(ah, AR_SELFGEN_MASK, 0x3); 
     1171-       else if (AR_SREV_9480(ah)) 
     1172+       else if (AR_SREV_9462(ah)) 
     1173                /* xxx only when MCI support is enabled */ 
     1174                REG_WRITE(ah, AR_SELFGEN_MASK, 0x3); 
     1175        else 
     1176@@ -631,9 +631,7 @@ static void ar9003_hw_prog_ini(struct at 
     1177 static int ar9003_hw_process_ini(struct ath_hw *ah, 
     1178                                 struct ath9k_channel *chan) 
     1179 { 
     1180-       struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah); 
     1181        unsigned int regWrites = 0, i; 
     1182-       struct ieee80211_channel *channel = chan->chan; 
     1183        u32 modesIndex; 
     1184  
     1185        switch (chan->chanmode) { 
     1186@@ -664,7 +662,7 @@ static int ar9003_hw_process_ini(struct  
     1187                ar9003_hw_prog_ini(ah, &ah->iniMac[i], modesIndex); 
     1188                ar9003_hw_prog_ini(ah, &ah->iniBB[i], modesIndex); 
     1189                ar9003_hw_prog_ini(ah, &ah->iniRadio[i], modesIndex); 
     1190-               if (i == ATH_INI_POST && AR_SREV_9480_20(ah)) 
     1191+               if (i == ATH_INI_POST && AR_SREV_9462_20(ah)) 
     1192                        ar9003_hw_prog_ini(ah, 
     1193                                           &ah->ini_radio_post_sys2ant, 
     1194                                           modesIndex); 
     1195@@ -687,20 +685,27 @@ static int ar9003_hw_process_ini(struct  
     1196        if (AR_SREV_9340(ah) && !ah->is_clk_25mhz) 
     1197                REG_WRITE_ARRAY(&ah->iniModesAdditional_40M, 1, regWrites); 
     1198  
     1199-       if (AR_SREV_9480(ah)) 
     1200+       if (AR_SREV_9462(ah)) 
     1201                ar9003_hw_prog_ini(ah, &ah->ini_BTCOEX_MAX_TXPWR, 1); 
     1202  
     1203+       ah->modes_index = modesIndex; 
     1204        ar9003_hw_override_ini(ah); 
     1205        ar9003_hw_set_channel_regs(ah, chan); 
     1206        ar9003_hw_set_chain_masks(ah, ah->rxchainmask, ah->txchainmask); 
     1207+       ath9k_hw_apply_txpower(ah, chan); 
     1208  
     1209-       /* Set TX power */ 
     1210-       ah->eep_ops->set_txpower(ah, chan, 
     1211-                                ath9k_regd_get_ctl(regulatory, chan), 
     1212-                                channel->max_antenna_gain * 2, 
     1213-                                channel->max_power * 2, 
     1214-                                min((u32) MAX_RATE_POWER, 
     1215-                                (u32) regulatory->power_limit), false); 
     1216+       if (AR_SREV_9462(ah)) { 
     1217+               if (REG_READ_FIELD(ah, AR_PHY_TX_IQCAL_CONTROL_0, 
     1218+                               AR_PHY_TX_IQCAL_CONTROL_0_ENABLE_TXIQ_CAL)) 
     1219+                       ah->enabled_cals |= TX_IQ_CAL; 
     1220+               else 
     1221+                       ah->enabled_cals &= ~TX_IQ_CAL; 
     1222+ 
     1223+               if (REG_READ(ah, AR_PHY_CL_CAL_CTL) & AR_PHY_CL_CAL_ENABLE) 
     1224+                       ah->enabled_cals |= TX_CL_CAL; 
     1225+               else 
     1226+                       ah->enabled_cals &= ~TX_CL_CAL; 
    491227+       } 
    50 + 
    51 +       if ((i->is_first || i->is_last) && 
    52 +           i->aggr != AGGR_BUF_MIDDLE && i->aggr != AGGR_BUF_LAST) { 
    53 +               ACCESS_ONCE(ads->ds_ctl2) = set11nTries(i->rates, 0) 
    54 +                       | set11nTries(i->rates, 1) 
    55 +                       | set11nTries(i->rates, 2) 
    56 +                       | set11nTries(i->rates, 3) 
    57 +                       | (i->dur_update ? AR_DurUpdateEna : 0) 
    58 +                       | SM(0, AR_BurstDur); 
    59 + 
    60 +               ACCESS_ONCE(ads->ds_ctl3) = set11nRate(i->rates, 0) 
    61 +                       | set11nRate(i->rates, 1) 
    62 +                       | set11nRate(i->rates, 2) 
    63 +                       | set11nRate(i->rates, 3); 
    64 +       } else { 
    65 +               ACCESS_ONCE(ads->ds_ctl2) = 0; 
    66 +               ACCESS_ONCE(ads->ds_ctl3) = 0; 
    67 +       } 
    68 + 
    69 +       if (!i->is_first) { 
    70 +               ACCESS_ONCE(ads->ds_ctl0) = 0; 
    71 +               ACCESS_ONCE(ads->ds_ctl1) = ctl1; 
    72 +               ACCESS_ONCE(ads->ds_ctl6) = ctl6; 
    73 +               return; 
    74 +       } 
    75 + 
    76 +       ctl1 |= (i->keyix != ATH9K_TXKEYIX_INVALID ? SM(i->keyix, AR_DestIdx) : 0) 
    77 +               | SM(i->type, AR_FrameType) 
    78 +               | (i->flags & ATH9K_TXDESC_NOACK ? AR_NoAck : 0) 
    79 +               | (i->flags & ATH9K_TXDESC_EXT_ONLY ? AR_ExtOnly : 0) 
    80 +               | (i->flags & ATH9K_TXDESC_EXT_AND_CTL ? AR_ExtAndCtl : 0); 
    81 + 
    82 +       switch (i->aggr) { 
    83 +       case AGGR_BUF_FIRST: 
    84 +               ctl6 |= SM(i->aggr_len, AR_AggrLen); 
    85 +               /* fall through */ 
    86 +       case AGGR_BUF_MIDDLE: 
    87 +               ctl1 |= AR_IsAggr | AR_MoreAggr; 
    88 +               ctl6 |= SM(i->ndelim, AR_PadDelim); 
    89 +               break; 
    90 +       case AGGR_BUF_LAST: 
    91 +               ctl1 |= AR_IsAggr; 
    92 +               break; 
    93 +       case AGGR_BUF_NONE: 
    94 +               break; 
    95 +       } 
    96 + 
    97 +       ACCESS_ONCE(ads->ds_ctl0) = (i->pkt_len & AR_FrameLen) 
    98 +               | (i->flags & ATH9K_TXDESC_VMF ? AR_VirtMoreFrag : 0) 
    99 +               | SM(i->txpower, AR_XmitPower) 
    100 +               | (i->flags & ATH9K_TXDESC_VEOL ? AR_VEOL : 0) 
    101 +               | (i->flags & ATH9K_TXDESC_INTREQ ? AR_TxIntrReq : 0) 
    102 +               | (i->keyix != ATH9K_TXKEYIX_INVALID ? AR_DestIdxValid : 0) 
    103 +               | (i->flags & ATH9K_TXDESC_CLRDMASK ? AR_ClrDestMask : 0) 
    104 +               | (i->flags & ATH9K_TXDESC_RTSENA ? AR_RTSEnable : 
    105 +                  (i->flags & ATH9K_TXDESC_CTSENA ? AR_CTSEnable : 0)); 
    106 + 
    107 +       ACCESS_ONCE(ads->ds_ctl1) = ctl1; 
    108 +       ACCESS_ONCE(ads->ds_ctl6) = ctl6; 
    109 + 
    110 +       if (i->aggr == AGGR_BUF_MIDDLE || i->aggr == AGGR_BUF_LAST) 
    111 +               return; 
    112 + 
    113 +       ACCESS_ONCE(ads->ds_ctl4) = set11nPktDurRTSCTS(i->rates, 0) 
    114 +               | set11nPktDurRTSCTS(i->rates, 1); 
    115 + 
    116 +       ACCESS_ONCE(ads->ds_ctl5) = set11nPktDurRTSCTS(i->rates, 2) 
    117 +               | set11nPktDurRTSCTS(i->rates, 3); 
    118 + 
    119 +       ACCESS_ONCE(ads->ds_ctl7) = set11nRateFlags(i->rates, 0) 
    120 +               | set11nRateFlags(i->rates, 1) 
    121 +               | set11nRateFlags(i->rates, 2) 
    122 +               | set11nRateFlags(i->rates, 3) 
    123 +               | SM(i->rtscts_rate, AR_RTSCTSRate); 
    124  } 
    125   
    126  static int ar9002_hw_proc_txdesc(struct ath_hw *ah, void *ds, 
    127 @@ -271,145 +342,6 @@ static int ar9002_hw_proc_txdesc(struct  
     1228  
    1281229        return 0; 
    1291230 } 
    130   
    131 -static void ar9002_hw_set11n_txdesc(struct ath_hw *ah, void *ds, 
    132 -                                   u32 pktLen, enum ath9k_pkt_type type, 
    133 -                                   u32 txPower, u8 keyIx, 
    134 -                                   enum ath9k_key_type keyType, u32 flags) 
    135 -{ 
    136 -       struct ar5416_desc *ads = AR5416DESC(ds); 
     1231@@ -1256,6 +1261,73 @@ static void ar9003_hw_antdiv_comb_conf_s 
     1232        REG_WRITE(ah, AR_PHY_MC_GAIN_CTRL, regval); 
     1233 } 
     1234  
     1235+static int ar9003_hw_fast_chan_change(struct ath_hw *ah, 
     1236+                                     struct ath9k_channel *chan, 
     1237+                                     u8 *ini_reloaded) 
     1238+{ 
     1239+       unsigned int regWrites = 0; 
     1240+       u32 modesIndex; 
     1241+ 
     1242+       switch (chan->chanmode) { 
     1243+       case CHANNEL_A: 
     1244+       case CHANNEL_A_HT20: 
     1245+               modesIndex = 1; 
     1246+               break; 
     1247+       case CHANNEL_A_HT40PLUS: 
     1248+       case CHANNEL_A_HT40MINUS: 
     1249+               modesIndex = 2; 
     1250+               break; 
     1251+       case CHANNEL_G: 
     1252+       case CHANNEL_G_HT20: 
     1253+       case CHANNEL_B: 
     1254+               modesIndex = 4; 
     1255+               break; 
     1256+       case CHANNEL_G_HT40PLUS: 
     1257+       case CHANNEL_G_HT40MINUS: 
     1258+               modesIndex = 3; 
     1259+               break; 
     1260+ 
     1261+       default: 
     1262+               return -EINVAL; 
     1263+       } 
     1264+ 
     1265+       if (modesIndex == ah->modes_index) { 
     1266+               *ini_reloaded = false; 
     1267+               goto set_rfmode; 
     1268+       } 
     1269+ 
     1270+       ar9003_hw_prog_ini(ah, &ah->iniSOC[ATH_INI_POST], modesIndex); 
     1271+       ar9003_hw_prog_ini(ah, &ah->iniMac[ATH_INI_POST], modesIndex); 
     1272+       ar9003_hw_prog_ini(ah, &ah->iniBB[ATH_INI_POST], modesIndex); 
     1273+       ar9003_hw_prog_ini(ah, &ah->iniRadio[ATH_INI_POST], modesIndex); 
     1274+       if (AR_SREV_9462_20(ah)) 
     1275+               ar9003_hw_prog_ini(ah, 
     1276+                               &ah->ini_radio_post_sys2ant, 
     1277+                               modesIndex); 
     1278+ 
     1279+       REG_WRITE_ARRAY(&ah->iniModesTxGain, modesIndex, regWrites); 
     1280+ 
     1281+       /* 
     1282+        * For 5GHz channels requiring Fast Clock, apply 
     1283+        * different modal values. 
     1284+        */ 
     1285+       if (IS_CHAN_A_FAST_CLOCK(ah, chan)) 
     1286+               REG_WRITE_ARRAY(&ah->iniModesAdditional, modesIndex, regWrites); 
     1287+ 
     1288+       if (AR_SREV_9330(ah)) 
     1289+               REG_WRITE_ARRAY(&ah->iniModesAdditional, 1, regWrites); 
     1290+ 
     1291+       if (AR_SREV_9340(ah) && !ah->is_clk_25mhz) 
     1292+               REG_WRITE_ARRAY(&ah->iniModesAdditional_40M, 1, regWrites); 
     1293+ 
     1294+       ah->modes_index = modesIndex; 
     1295+       *ini_reloaded = true; 
     1296+ 
     1297+set_rfmode: 
     1298+       ar9003_hw_set_rfmode(ah, chan); 
     1299+       return 0; 
     1300+} 
     1301+ 
     1302 void ar9003_hw_attach_phy_ops(struct ath_hw *ah) 
     1303 { 
     1304        struct ath_hw_private_ops *priv_ops = ath9k_hw_private_ops(ah); 
     1305@@ -1284,6 +1356,7 @@ void ar9003_hw_attach_phy_ops(struct ath 
     1306        priv_ops->do_getnf = ar9003_hw_do_getnf; 
     1307        priv_ops->ani_cache_ini_regs = ar9003_hw_ani_cache_ini_regs; 
     1308        priv_ops->set_radar_params = ar9003_hw_set_radar_params; 
     1309+       priv_ops->fast_chan_change = ar9003_hw_fast_chan_change; 
     1310  
     1311        ops->antdiv_comb_conf_get = ar9003_hw_antdiv_comb_conf_get; 
     1312        ops->antdiv_comb_conf_set = ar9003_hw_antdiv_comb_conf_set; 
     1313--- a/drivers/net/wireless/ath/ath9k/ar9003_phy.h 
     1314+++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.h 
     1315@@ -325,10 +325,10 @@ 
     1316  
     1317 #define AR_PHY_RX_OCGAIN        (AR_AGC_BASE + 0x200) 
     1318  
     1319-#define AR_PHY_CCA_NOM_VAL_9300_2GHZ          -110 
     1320-#define AR_PHY_CCA_NOM_VAL_9300_5GHZ          -115 
     1321-#define AR_PHY_CCA_MIN_GOOD_VAL_9300_2GHZ     -125 
     1322-#define AR_PHY_CCA_MIN_GOOD_VAL_9300_5GHZ     -125 
     1323+#define AR_PHY_CCA_NOM_VAL_9300_2GHZ          (AR_SREV_9462(ah) ? -127 : -110) 
     1324+#define AR_PHY_CCA_NOM_VAL_9300_5GHZ          (AR_SREV_9462(ah) ? -127 : -115) 
     1325+#define AR_PHY_CCA_MIN_GOOD_VAL_9300_2GHZ     (AR_SREV_9462(ah) ? -127 : -125) 
     1326+#define AR_PHY_CCA_MIN_GOOD_VAL_9300_5GHZ     (AR_SREV_9462(ah) ? -127 : -125) 
     1327 #define AR_PHY_CCA_MAX_GOOD_VAL_9300_2GHZ     -95 
     1328 #define AR_PHY_CCA_MAX_GOOD_VAL_9300_5GHZ     -100 
     1329  
     1330@@ -572,6 +572,8 @@ 
     1331  
     1332 #define AR_PHY_TXGAIN_TABLE      (AR_SM_BASE + 0x300) 
     1333  
     1334+#define AR_PHY_TX_IQCAL_CONTROL_0   (AR_SM_BASE + AR_SREV_9485(ah) ? \ 
     1335+                                                0x3c4 : 0x444) 
     1336 #define AR_PHY_TX_IQCAL_CONTROL_1   (AR_SM_BASE + AR_SREV_9485(ah) ? \ 
     1337                                                 0x3c8 : 0x448) 
     1338 #define AR_PHY_TX_IQCAL_START       (AR_SM_BASE + AR_SREV_9485(ah) ? \ 
     1339@@ -582,8 +584,6 @@ 
     1340                                             (AR_SREV_9485(ah) ? \ 
     1341                                              0x3d0 : 0x450) + ((_i) << 2)) 
     1342 #define AR_PHY_RTT_CTRL                        (AR_SM_BASE + 0x380) 
     1343-#define AR_PHY_RTT_TABLE_SW_INTF_B     (AR_SM_BASE + 0x384) 
     1344-#define AR_PHY_RTT_TABLE_SW_INTF_1_B0  (AR_SM_BASE + 0x388) 
     1345  
     1346 #define AR_PHY_WATCHDOG_STATUS      (AR_SM_BASE + 0x5c0) 
     1347 #define AR_PHY_WATCHDOG_CTL_1       (AR_SM_BASE + 0x5c4) 
     1348@@ -608,9 +608,9 @@ 
     1349 #define AR_PHY_AIC_CTRL_1_B0   (AR_SM_BASE + 0x4b4) 
     1350 #define AR_PHY_AIC_CTRL_2_B0   (AR_SM_BASE + 0x4b8) 
     1351 #define AR_PHY_AIC_CTRL_3_B0   (AR_SM_BASE + 0x4bc) 
     1352-#define AR_PHY_AIC_STAT_0_B0   (AR_SM_BASE + (AR_SREV_9480_10(ah) ? \ 
     1353+#define AR_PHY_AIC_STAT_0_B0   (AR_SM_BASE + (AR_SREV_9462_10(ah) ? \ 
     1354                                        0x4c0 : 0x4c4)) 
     1355-#define AR_PHY_AIC_STAT_1_B0   (AR_SM_BASE + (AR_SREV_9480_10(ah) ? \ 
     1356+#define AR_PHY_AIC_STAT_1_B0   (AR_SM_BASE + (AR_SREV_9462_10(ah) ? \ 
     1357                                        0x4c4 : 0x4c8)) 
     1358 #define AR_PHY_AIC_CTRL_4_B0   (AR_SM_BASE + 0x4c0) 
     1359 #define AR_PHY_AIC_STAT_2_B0   (AR_SM_BASE + 0x4cc) 
     1360@@ -625,7 +625,7 @@ 
     1361 #define AR_PHY_65NM_CH0_RXTX4       0x1610c 
     1362  
     1363 #define AR_CH0_TOP     (AR_SREV_9300(ah) ? 0x16288 : \ 
     1364-                               ((AR_SREV_9480(ah) ? 0x1628c : 0x16280))) 
     1365+                               ((AR_SREV_9462(ah) ? 0x1628c : 0x16280))) 
     1366 #define AR_CH0_TOP_XPABIASLVL (0x300) 
     1367 #define AR_CH0_TOP_XPABIASLVL_S (8) 
     1368  
     1369@@ -638,8 +638,8 @@ 
     1370  
     1371 #define AR_SWITCH_TABLE_COM_ALL (0xffff) 
     1372 #define AR_SWITCH_TABLE_COM_ALL_S (0) 
     1373-#define AR_SWITCH_TABLE_COM_AR9480_ALL (0xffffff) 
     1374-#define AR_SWITCH_TABLE_COM_AR9480_ALL_S (0) 
     1375+#define AR_SWITCH_TABLE_COM_AR9462_ALL (0xffffff) 
     1376+#define AR_SWITCH_TABLE_COM_AR9462_ALL_S (0) 
     1377 #define AR_SWITCH_TABLE_COM_SPDT (0x00f00000) 
     1378 #define AR_SWITCH_TABLE_COM_SPDT_ALL (0x0000fff0) 
     1379 #define AR_SWITCH_TABLE_COM_SPDT_ALL_S (4) 
     1380@@ -679,11 +679,11 @@ 
     1381 #define AR_CH0_XTAL_CAPOUTDAC  0x00fe0000 
     1382 #define AR_CH0_XTAL_CAPOUTDAC_S        17 
     1383  
     1384-#define AR_PHY_PMU1            (AR_SREV_9480(ah) ? 0x16340 : 0x16c40) 
     1385+#define AR_PHY_PMU1            (AR_SREV_9462(ah) ? 0x16340 : 0x16c40) 
     1386 #define AR_PHY_PMU1_PWD                0x1 
     1387 #define AR_PHY_PMU1_PWD_S      0 
     1388  
     1389-#define AR_PHY_PMU2            (AR_SREV_9480(ah) ? 0x16344 : 0x16c44) 
     1390+#define AR_PHY_PMU2            (AR_SREV_9462(ah) ? 0x16344 : 0x16c44) 
     1391 #define AR_PHY_PMU2_PGM                0x00200000 
     1392 #define AR_PHY_PMU2_PGM_S      21 
     1393  
     1394@@ -823,6 +823,22 @@ 
     1395 #define AR_PHY_SPECTRAL_SCAN_SHORT_REPEAT   0x01000000 
     1396 #define AR_PHY_SPECTRAL_SCAN_SHORT_REPEAT_S 24 
     1397 #define AR_PHY_CHANNEL_STATUS_RX_CLEAR      0x00000004 
     1398+#define AR_PHY_RTT_CTRL_ENA_RADIO_RETENTION     0x00000001 
     1399+#define AR_PHY_RTT_CTRL_ENA_RADIO_RETENTION_S   0 
     1400+#define AR_PHY_RTT_CTRL_RESTORE_MASK            0x0000007E 
     1401+#define AR_PHY_RTT_CTRL_RESTORE_MASK_S          1 
     1402+#define AR_PHY_RTT_CTRL_FORCE_RADIO_RESTORE     0x00000080 
     1403+#define AR_PHY_RTT_CTRL_FORCE_RADIO_RESTORE_S   7 
     1404+#define AR_PHY_RTT_SW_RTT_TABLE_ACCESS          0x00000001 
     1405+#define AR_PHY_RTT_SW_RTT_TABLE_ACCESS_S        0 
     1406+#define AR_PHY_RTT_SW_RTT_TABLE_WRITE           0x00000002 
     1407+#define AR_PHY_RTT_SW_RTT_TABLE_WRITE_S         1 
     1408+#define AR_PHY_RTT_SW_RTT_TABLE_ADDR            0x0000001C 
     1409+#define AR_PHY_RTT_SW_RTT_TABLE_ADDR_S          2 
     1410+#define AR_PHY_RTT_SW_RTT_TABLE_DATA            0xFFFFFFF0 
     1411+#define AR_PHY_RTT_SW_RTT_TABLE_DATA_S          4 
     1412+#define AR_PHY_TX_IQCAL_CONTROL_0_ENABLE_TXIQ_CAL                   0x80000000 
     1413+#define AR_PHY_TX_IQCAL_CONTROL_0_ENABLE_TXIQ_CAL_S                         31 
     1414 #define AR_PHY_TX_IQCAL_CONTROL_1_IQCORR_I_Q_COFF_DELPT             0x01fc0000 
     1415 #define AR_PHY_TX_IQCAL_CONTROL_1_IQCORR_I_Q_COFF_DELPT_S                   18 
     1416 #define AR_PHY_TX_IQCAL_START_DO_CAL       0x00000001 
     1417@@ -905,9 +921,9 @@ 
     1418 #define AR_PHY_AIC_CTRL_0_B1   (AR_SM1_BASE + 0x4b0) 
     1419 #define AR_PHY_AIC_CTRL_1_B1   (AR_SM1_BASE + 0x4b4) 
     1420 #define AR_PHY_AIC_CTRL_2_B1   (AR_SM1_BASE + 0x4b8) 
     1421-#define AR_PHY_AIC_STAT_0_B1   (AR_SM1_BASE + (AR_SREV_9480_10(ah) ? \ 
     1422+#define AR_PHY_AIC_STAT_0_B1   (AR_SM1_BASE + (AR_SREV_9462_10(ah) ? \ 
     1423                                        0x4c0 : 0x4c4)) 
     1424-#define AR_PHY_AIC_STAT_1_B1   (AR_SM1_BASE + (AR_SREV_9480_10(ah) ? \ 
     1425+#define AR_PHY_AIC_STAT_1_B1   (AR_SM1_BASE + (AR_SREV_9462_10(ah) ? \ 
     1426                                        0x4c4 : 0x4c8)) 
     1427 #define AR_PHY_AIC_CTRL_4_B1   (AR_SM1_BASE + 0x4c0) 
     1428 #define AR_PHY_AIC_STAT_2_B1   (AR_SM1_BASE + 0x4cc) 
     1429@@ -915,6 +931,10 @@ 
     1430 #define AR_PHY_AIC_SRAM_ADDR_B1        (AR_SM1_BASE + 0x5f0) 
     1431 #define AR_PHY_AIC_SRAM_DATA_B1        (AR_SM1_BASE + 0x5f4) 
     1432  
     1433+#define AR_PHY_RTT_TABLE_SW_INTF_B(i)  (0x384 + (i) ? \ 
     1434+                                       AR_SM1_BASE : AR_SM_BASE) 
     1435+#define AR_PHY_RTT_TABLE_SW_INTF_1_B(i)        (0x388 + (i) ? \ 
     1436+                                       AR_SM1_BASE : AR_SM_BASE) 
     1437 /* 
     1438  * Channel 2 Register Map 
     1439  */ 
     1440@@ -981,7 +1001,7 @@ 
     1441 #define AR_GLB_BASE    0x20000 
     1442 #define AR_PHY_GLB_CONTROL     (AR_GLB_BASE + 0x44) 
     1443 #define AR_GLB_SCRATCH(_ah)    (AR_GLB_BASE + \ 
     1444-                                       (AR_SREV_9480_20(_ah) ? 0x4c : 0x50)) 
     1445+                                       (AR_SREV_9462_20(_ah) ? 0x4c : 0x50)) 
     1446 #define AR_GLB_STATUS          (AR_GLB_BASE + 0x48) 
     1447  
     1448 /* 
     1449--- /dev/null 
     1450+++ b/drivers/net/wireless/ath/ath9k/ar9003_rtt.c 
     1451@@ -0,0 +1,153 @@ 
     1452+/* 
     1453+ * Copyright (c) 2010-2011 Atheros Communications Inc. 
     1454+ * 
     1455+ * Permission to use, copy, modify, and/or distribute this software for any 
     1456+ * purpose with or without fee is hereby granted, provided that the above 
     1457+ * copyright notice and this permission notice appear in all copies. 
     1458+ * 
     1459+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 
     1460+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 
     1461+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 
     1462+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
     1463+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
     1464+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 
     1465+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
     1466+ */ 
     1467+ 
     1468+#include "hw.h" 
     1469+#include "ar9003_phy.h" 
     1470+ 
     1471+#define RTT_RESTORE_TIMEOUT          1000 
     1472+#define RTT_ACCESS_TIMEOUT           100 
     1473+#define RTT_BAD_VALUE                0x0bad0bad 
     1474+ 
     1475+/* 
     1476+ * RTT (Radio Retention Table) hardware implementation information 
     1477+ * 
     1478+ * There is an internal table (i.e. the rtt) for each chain (or bank). 
     1479+ * Each table contains 6 entries and each entry is corresponding to 
     1480+ * a specific calibration parameter as depicted below. 
     1481+ *  0~2 - DC offset DAC calibration: loop, low, high (offsetI/Q_...) 
     1482+ *  3   - Filter cal (filterfc) 
     1483+ *  4   - RX gain settings 
     1484+ *  5   - Peak detector offset calibration (agc_caldac) 
     1485+ */ 
     1486+ 
     1487+void ar9003_hw_rtt_enable(struct ath_hw *ah) 
     1488+{ 
     1489+       REG_WRITE(ah, AR_PHY_RTT_CTRL, 1); 
     1490+} 
     1491+ 
     1492+void ar9003_hw_rtt_disable(struct ath_hw *ah) 
     1493+{ 
     1494+       REG_WRITE(ah, AR_PHY_RTT_CTRL, 0); 
     1495+} 
     1496+ 
     1497+void ar9003_hw_rtt_set_mask(struct ath_hw *ah, u32 rtt_mask) 
     1498+{ 
     1499+       REG_RMW_FIELD(ah, AR_PHY_RTT_CTRL, 
     1500+                     AR_PHY_RTT_CTRL_RESTORE_MASK, rtt_mask); 
     1501+} 
     1502+ 
     1503+bool ar9003_hw_rtt_force_restore(struct ath_hw *ah) 
     1504+{ 
     1505+       if (!ath9k_hw_wait(ah, AR_PHY_RTT_CTRL, 
     1506+                          AR_PHY_RTT_CTRL_FORCE_RADIO_RESTORE, 
     1507+                          0, RTT_RESTORE_TIMEOUT)) 
     1508+               return false; 
     1509+ 
     1510+       REG_RMW_FIELD(ah, AR_PHY_RTT_CTRL, 
     1511+                     AR_PHY_RTT_CTRL_FORCE_RADIO_RESTORE, 1); 
     1512+ 
     1513+       if (!ath9k_hw_wait(ah, AR_PHY_RTT_CTRL, 
     1514+                          AR_PHY_RTT_CTRL_FORCE_RADIO_RESTORE, 
     1515+                          0, RTT_RESTORE_TIMEOUT)) 
     1516+               return false; 
     1517+ 
     1518+       return true; 
     1519+} 
     1520+ 
     1521+static void ar9003_hw_rtt_load_hist_entry(struct ath_hw *ah, u8 chain, 
     1522+               u32 index, u32 data28) 
     1523+{ 
     1524+       u32 val; 
     1525+ 
     1526+       val = SM(data28, AR_PHY_RTT_SW_RTT_TABLE_DATA); 
     1527+       REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_1_B(chain), val); 
     1528+ 
     1529+       val = SM(0, AR_PHY_RTT_SW_RTT_TABLE_ACCESS) | 
     1530+             SM(1, AR_PHY_RTT_SW_RTT_TABLE_WRITE) | 
     1531+             SM(index, AR_PHY_RTT_SW_RTT_TABLE_ADDR); 
     1532+       REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val); 
     1533+       udelay(1); 
     1534+ 
     1535+       val |= SM(1, AR_PHY_RTT_SW_RTT_TABLE_ACCESS); 
     1536+       REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val); 
     1537+       udelay(1); 
     1538+ 
     1539+       if (!ath9k_hw_wait(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), 
     1540+                          AR_PHY_RTT_SW_RTT_TABLE_ACCESS, 0, 
     1541+                          RTT_ACCESS_TIMEOUT)) 
     1542+               return; 
     1543+ 
     1544+       val &= ~SM(1, AR_PHY_RTT_SW_RTT_TABLE_WRITE); 
     1545+       REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val); 
     1546+       udelay(1); 
     1547+ 
     1548+       ath9k_hw_wait(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), 
     1549+                     AR_PHY_RTT_SW_RTT_TABLE_ACCESS, 0, 
     1550+                     RTT_ACCESS_TIMEOUT); 
     1551+} 
     1552+ 
     1553+void ar9003_hw_rtt_load_hist(struct ath_hw *ah, u8 chain, u32 *table) 
     1554+{ 
     1555+       int i; 
     1556+ 
     1557+       for (i = 0; i < MAX_RTT_TABLE_ENTRY; i++) 
     1558+               ar9003_hw_rtt_load_hist_entry(ah, chain, i, table[i]); 
     1559+} 
     1560+ 
     1561+static int ar9003_hw_rtt_fill_hist_entry(struct ath_hw *ah, u8 chain, u32 index) 
     1562+{ 
     1563+       u32 val; 
     1564+ 
     1565+       val = SM(0, AR_PHY_RTT_SW_RTT_TABLE_ACCESS) | 
     1566+             SM(0, AR_PHY_RTT_SW_RTT_TABLE_WRITE) | 
     1567+             SM(index, AR_PHY_RTT_SW_RTT_TABLE_ADDR); 
     1568+ 
     1569+       REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val); 
     1570+       udelay(1); 
     1571+ 
     1572+       val |= SM(1, AR_PHY_RTT_SW_RTT_TABLE_ACCESS); 
     1573+       REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val); 
     1574+       udelay(1); 
     1575+ 
     1576+       if (!ath9k_hw_wait(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), 
     1577+                          AR_PHY_RTT_SW_RTT_TABLE_ACCESS, 0, 
     1578+                          RTT_ACCESS_TIMEOUT)) 
     1579+               return RTT_BAD_VALUE; 
     1580+ 
     1581+       val = REG_READ(ah, AR_PHY_RTT_TABLE_SW_INTF_1_B(chain)); 
     1582+ 
     1583+       return val; 
     1584+} 
     1585+ 
     1586+void ar9003_hw_rtt_fill_hist(struct ath_hw *ah, u8 chain, u32 *table) 
     1587+{ 
     1588+       int i; 
     1589+ 
     1590+       for (i = 0; i < MAX_RTT_TABLE_ENTRY; i++) 
     1591+               table[i] = ar9003_hw_rtt_fill_hist_entry(ah, chain, i); 
     1592+} 
     1593+ 
     1594+void ar9003_hw_rtt_clear_hist(struct ath_hw *ah) 
     1595+{ 
     1596+       int i, j; 
     1597+ 
     1598+       for (i = 0; i < AR9300_MAX_CHAINS; i++) { 
     1599+               if (!(ah->rxchainmask & (1 << i))) 
     1600+                       continue; 
     1601+               for (j = 0; j < MAX_RTT_TABLE_ENTRY; j++) 
     1602+                       ar9003_hw_rtt_load_hist_entry(ah, i, j, 0); 
     1603+       } 
     1604+} 
     1605--- /dev/null 
     1606+++ b/drivers/net/wireless/ath/ath9k/ar9003_rtt.h 
     1607@@ -0,0 +1,28 @@ 
     1608+/* 
     1609+ * Copyright (c) 2010-2011 Atheros Communications Inc. 
     1610+ * 
     1611+ * Permission to use, copy, modify, and/or distribute this software for any 
     1612+ * purpose with or without fee is hereby granted, provided that the above 
     1613+ * copyright notice and this permission notice appear in all copies. 
     1614+ * 
     1615+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 
     1616+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 
     1617+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 
     1618+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
     1619+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
     1620+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 
     1621+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
     1622+ */ 
     1623+ 
     1624+#ifndef AR9003_RTT_H 
     1625+#define AR9003_RTT_H 
     1626+ 
     1627+void ar9003_hw_rtt_enable(struct ath_hw *ah); 
     1628+void ar9003_hw_rtt_disable(struct ath_hw *ah); 
     1629+void ar9003_hw_rtt_set_mask(struct ath_hw *ah, u32 rtt_mask); 
     1630+bool ar9003_hw_rtt_force_restore(struct ath_hw *ah); 
     1631+void ar9003_hw_rtt_load_hist(struct ath_hw *ah, u8 chain, u32 *table); 
     1632+void ar9003_hw_rtt_fill_hist(struct ath_hw *ah, u8 chain, u32 *table); 
     1633+void ar9003_hw_rtt_clear_hist(struct ath_hw *ah); 
     1634+ 
     1635+#endif 
     1636--- /dev/null 
     1637+++ b/drivers/net/wireless/ath/ath9k/ar9462_1p0_initvals.h 
     1638@@ -0,0 +1,1833 @@ 
     1639+/* 
     1640+ * Copyright (c) 2010 Atheros Communications Inc. 
     1641+ * 
     1642+ * Permission to use, copy, modify, and/or distribute this software for any 
     1643+ * purpose with or without fee is hereby granted, provided that the above 
     1644+ * copyright notice and this permission notice appear in all copies. 
     1645+ * 
     1646+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 
     1647+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 
     1648+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 
     1649+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
     1650+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
     1651+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 
     1652+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
     1653+ */ 
     1654+ 
     1655+#ifndef INITVALS_9462_1P0_H 
     1656+#define INITVALS_9462_1P0_H 
     1657+ 
     1658+/* AR9462 1.0 */ 
     1659+ 
     1660+static const u32 ar9462_1p0_mac_core[][2] = { 
     1661+       /* Addr      allmodes  */ 
     1662+       {0x00000008, 0x00000000}, 
     1663+       {0x00000030, 0x00060085}, 
     1664+       {0x00000034, 0x00000005}, 
     1665+       {0x00000040, 0x00000000}, 
     1666+       {0x00000044, 0x00000000}, 
     1667+       {0x00000048, 0x00000008}, 
     1668+       {0x0000004c, 0x00000010}, 
     1669+       {0x00000050, 0x00000000}, 
     1670+       {0x00001040, 0x002ffc0f}, 
     1671+       {0x00001044, 0x002ffc0f}, 
     1672+       {0x00001048, 0x002ffc0f}, 
     1673+       {0x0000104c, 0x002ffc0f}, 
     1674+       {0x00001050, 0x002ffc0f}, 
     1675+       {0x00001054, 0x002ffc0f}, 
     1676+       {0x00001058, 0x002ffc0f}, 
     1677+       {0x0000105c, 0x002ffc0f}, 
     1678+       {0x00001060, 0x002ffc0f}, 
     1679+       {0x00001064, 0x002ffc0f}, 
     1680+       {0x000010f0, 0x00000100}, 
     1681+       {0x00001270, 0x00000000}, 
     1682+       {0x000012b0, 0x00000000}, 
     1683+       {0x000012f0, 0x00000000}, 
     1684+       {0x0000143c, 0x00000000}, 
     1685+       {0x0000147c, 0x00000000}, 
     1686+       {0x00001810, 0x0f000003}, 
     1687+       {0x00008000, 0x00000000}, 
     1688+       {0x00008004, 0x00000000}, 
     1689+       {0x00008008, 0x00000000}, 
     1690+       {0x0000800c, 0x00000000}, 
     1691+       {0x00008018, 0x00000000}, 
     1692+       {0x00008020, 0x00000000}, 
     1693+       {0x00008038, 0x00000000}, 
     1694+       {0x0000803c, 0x00080000}, 
     1695+       {0x00008040, 0x00000000}, 
     1696+       {0x00008044, 0x00000000}, 
     1697+       {0x00008048, 0x00000000}, 
     1698+       {0x0000804c, 0xffffffff}, 
     1699+       {0x00008050, 0xffffffff}, 
     1700+       {0x00008054, 0x00000000}, 
     1701+       {0x00008058, 0x00000000}, 
     1702+       {0x0000805c, 0x000fc78f}, 
     1703+       {0x00008060, 0x0000000f}, 
     1704+       {0x00008064, 0x00000000}, 
     1705+       {0x00008070, 0x00000310}, 
     1706+       {0x00008074, 0x00000020}, 
     1707+       {0x00008078, 0x00000000}, 
     1708+       {0x0000809c, 0x0000000f}, 
     1709+       {0x000080a0, 0x00000000}, 
     1710+       {0x000080a4, 0x02ff0000}, 
     1711+       {0x000080a8, 0x0e070605}, 
     1712+       {0x000080ac, 0x0000000d}, 
     1713+       {0x000080b0, 0x00000000}, 
     1714+       {0x000080b4, 0x00000000}, 
     1715+       {0x000080b8, 0x00000000}, 
     1716+       {0x000080bc, 0x00000000}, 
     1717+       {0x000080c0, 0x2a800000}, 
     1718+       {0x000080c4, 0x06900168}, 
     1719+       {0x000080c8, 0x13881c20}, 
     1720+       {0x000080cc, 0x01f40000}, 
     1721+       {0x000080d0, 0x00252500}, 
     1722+       {0x000080d4, 0x00a00005}, 
     1723+       {0x000080d8, 0x00400002}, 
     1724+       {0x000080dc, 0x00000000}, 
     1725+       {0x000080e0, 0xffffffff}, 
     1726+       {0x000080e4, 0x0000ffff}, 
     1727+       {0x000080e8, 0x3f3f3f3f}, 
     1728+       {0x000080ec, 0x00000000}, 
     1729+       {0x000080f0, 0x00000000}, 
     1730+       {0x000080f4, 0x00000000}, 
     1731+       {0x000080fc, 0x00020000}, 
     1732+       {0x00008100, 0x00000000}, 
     1733+       {0x00008108, 0x00000052}, 
     1734+       {0x0000810c, 0x00000000}, 
     1735+       {0x00008110, 0x00000000}, 
     1736+       {0x00008114, 0x000007ff}, 
     1737+       {0x00008118, 0x000000aa}, 
     1738+       {0x0000811c, 0x00003210}, 
     1739+       {0x00008124, 0x00000000}, 
     1740+       {0x00008128, 0x00000000}, 
     1741+       {0x0000812c, 0x00000000}, 
     1742+       {0x00008130, 0x00000000}, 
     1743+       {0x00008134, 0x00000000}, 
     1744+       {0x00008138, 0x00000000}, 
     1745+       {0x0000813c, 0x0000ffff}, 
     1746+       {0x00008144, 0xffffffff}, 
     1747+       {0x00008168, 0x00000000}, 
     1748+       {0x0000816c, 0x00000000}, 
     1749+       {0x00008170, 0x18486e00}, 
     1750+       {0x00008174, 0x33332210}, 
     1751+       {0x00008178, 0x00000000}, 
     1752+       {0x0000817c, 0x00020000}, 
     1753+       {0x000081c4, 0x33332210}, 
     1754+       {0x000081c8, 0x00000000}, 
     1755+       {0x000081cc, 0x00000000}, 
     1756+       {0x000081d4, 0x00000000}, 
     1757+       {0x000081ec, 0x00000000}, 
     1758+       {0x000081f0, 0x00000000}, 
     1759+       {0x000081f4, 0x00000000}, 
     1760+       {0x000081f8, 0x00000000}, 
     1761+       {0x000081fc, 0x00000000}, 
     1762+       {0x00008240, 0x00100000}, 
     1763+       {0x00008244, 0x0010f400}, 
     1764+       {0x00008248, 0x00000800}, 
     1765+       {0x0000824c, 0x0001e800}, 
     1766+       {0x00008250, 0x00000000}, 
     1767+       {0x00008254, 0x00000000}, 
     1768+       {0x00008258, 0x00000000}, 
     1769+       {0x0000825c, 0x40000000}, 
     1770+       {0x00008260, 0x00080922}, 
     1771+       {0x00008264, 0x99c00010}, 
     1772+       {0x00008268, 0xffffffff}, 
     1773+       {0x0000826c, 0x0000ffff}, 
     1774+       {0x00008270, 0x00000000}, 
     1775+       {0x00008274, 0x40000000}, 
     1776+       {0x00008278, 0x003e4180}, 
     1777+       {0x0000827c, 0x00000004}, 
     1778+       {0x00008284, 0x0000002c}, 
     1779+       {0x00008288, 0x0000002c}, 
     1780+       {0x0000828c, 0x000000ff}, 
     1781+       {0x00008294, 0x00000000}, 
     1782+       {0x00008298, 0x00000000}, 
     1783+       {0x0000829c, 0x00000000}, 
     1784+       {0x00008300, 0x00000140}, 
     1785+       {0x00008314, 0x00000000}, 
     1786+       {0x0000831c, 0x0000010d}, 
     1787+       {0x00008328, 0x00000000}, 
     1788+       {0x0000832c, 0x0000001f}, 
     1789+       {0x00008330, 0x00000302}, 
     1790+       {0x00008334, 0x00000700}, 
     1791+       {0x00008338, 0xffff0000}, 
     1792+       {0x0000833c, 0x02400000}, 
     1793+       {0x00008340, 0x000107ff}, 
     1794+       {0x00008344, 0xaa48105b}, 
     1795+       {0x00008348, 0x008f0000}, 
     1796+       {0x0000835c, 0x00000000}, 
     1797+       {0x00008360, 0xffffffff}, 
     1798+       {0x00008364, 0xffffffff}, 
     1799+       {0x00008368, 0x00000000}, 
     1800+       {0x00008370, 0x00000000}, 
     1801+       {0x00008374, 0x000000ff}, 
     1802+       {0x00008378, 0x00000000}, 
     1803+       {0x0000837c, 0x00000000}, 
     1804+       {0x00008380, 0xffffffff}, 
     1805+       {0x00008384, 0xffffffff}, 
     1806+       {0x00008390, 0xffffffff}, 
     1807+       {0x00008394, 0xffffffff}, 
     1808+       {0x00008398, 0x00000000}, 
     1809+       {0x0000839c, 0x00000000}, 
     1810+       {0x000083a4, 0x0000fa14}, 
     1811+       {0x000083a8, 0x000f0c00}, 
     1812+       {0x000083ac, 0x33332210}, 
     1813+       {0x000083b0, 0x33332210}, 
     1814+       {0x000083b4, 0x33332210}, 
     1815+       {0x000083b8, 0x33332210}, 
     1816+       {0x000083bc, 0x00000000}, 
     1817+       {0x000083c0, 0x00000000}, 
     1818+       {0x000083c4, 0x00000000}, 
     1819+       {0x000083c8, 0x00000000}, 
     1820+       {0x000083cc, 0x00000200}, 
     1821+       {0x000083d0, 0x000301ff}, 
     1822+}; 
     1823+ 
     1824+static const u32 ar9462_1p0_baseband_core_txfir_coeff_japan_2484[][2] = { 
     1825+       /* Addr      allmodes  */ 
     1826+       {0x0000a398, 0x00000000}, 
     1827+       {0x0000a39c, 0x6f7f0301}, 
     1828+       {0x0000a3a0, 0xca9228ee}, 
     1829+}; 
     1830+ 
     1831+static const u32 ar9462_1p0_sys3ant[][2] = { 
     1832+       /* Addr      allmodes  */ 
     1833+       {0x00063280, 0x00040807}, 
     1834+       {0x00063284, 0x104ccccc}, 
     1835+}; 
     1836+ 
     1837+static const u32 ar9462_pcie_phy_clkreq_enable_L1_1p0[][2] = { 
     1838+       /* Addr      allmodes  */ 
     1839+       {0x00018c00, 0x10053e5e}, 
     1840+       {0x00018c04, 0x000801d8}, 
     1841+       {0x00018c08, 0x0000580c}, 
     1842+}; 
     1843+ 
     1844+static const u32 ar9462_1p0_mac_core_emulation[][2] = { 
     1845+       /* Addr      allmodes  */ 
     1846+       {0x00000030, 0x00060085}, 
     1847+       {0x00000044, 0x00000008}, 
     1848+       {0x0000805c, 0xffffc7ff}, 
     1849+       {0x00008344, 0xaa4a105b}, 
     1850+}; 
     1851+ 
     1852+static const u32 ar9462_common_rx_gain_table_ar9280_2p0_1p0[][2] = { 
     1853+       /* Addr      allmodes  */ 
     1854+       {0x0000a000, 0x02000101}, 
     1855+       {0x0000a004, 0x02000102}, 
     1856+       {0x0000a008, 0x02000103}, 
     1857+       {0x0000a00c, 0x02000104}, 
     1858+       {0x0000a010, 0x02000200}, 
     1859+       {0x0000a014, 0x02000201}, 
     1860+       {0x0000a018, 0x02000202}, 
     1861+       {0x0000a01c, 0x02000203}, 
     1862+       {0x0000a020, 0x02000204}, 
     1863+       {0x0000a024, 0x02000205}, 
     1864+       {0x0000a028, 0x02000208}, 
     1865+       {0x0000a02c, 0x02000302}, 
     1866+       {0x0000a030, 0x02000303}, 
     1867+       {0x0000a034, 0x02000304}, 
     1868+       {0x0000a038, 0x02000400}, 
     1869+       {0x0000a03c, 0x02010300}, 
     1870+       {0x0000a040, 0x02010301}, 
     1871+       {0x0000a044, 0x02010302}, 
     1872+       {0x0000a048, 0x02000500}, 
     1873+       {0x0000a04c, 0x02010400}, 
     1874+       {0x0000a050, 0x02020300}, 
     1875+       {0x0000a054, 0x02020301}, 
     1876+       {0x0000a058, 0x02020302}, 
     1877+       {0x0000a05c, 0x02020303}, 
     1878+       {0x0000a060, 0x02020400}, 
     1879+       {0x0000a064, 0x02030300}, 
     1880+       {0x0000a068, 0x02030301}, 
     1881+       {0x0000a06c, 0x02030302}, 
     1882+       {0x0000a070, 0x02030303}, 
     1883+       {0x0000a074, 0x02030400}, 
     1884+       {0x0000a078, 0x02040300}, 
     1885+       {0x0000a07c, 0x02040301}, 
     1886+       {0x0000a080, 0x02040302}, 
     1887+       {0x0000a084, 0x02040303}, 
     1888+       {0x0000a088, 0x02030500}, 
     1889+       {0x0000a08c, 0x02040400}, 
     1890+       {0x0000a090, 0x02050203}, 
     1891+       {0x0000a094, 0x02050204}, 
     1892+       {0x0000a098, 0x02050205}, 
     1893+       {0x0000a09c, 0x02040500}, 
     1894+       {0x0000a0a0, 0x02050301}, 
     1895+       {0x0000a0a4, 0x02050302}, 
     1896+       {0x0000a0a8, 0x02050303}, 
     1897+       {0x0000a0ac, 0x02050400}, 
     1898+       {0x0000a0b0, 0x02050401}, 
     1899+       {0x0000a0b4, 0x02050402}, 
     1900+       {0x0000a0b8, 0x02050403}, 
     1901+       {0x0000a0bc, 0x02050500}, 
     1902+       {0x0000a0c0, 0x02050501}, 
     1903+       {0x0000a0c4, 0x02050502}, 
     1904+       {0x0000a0c8, 0x02050503}, 
     1905+       {0x0000a0cc, 0x02050504}, 
     1906+       {0x0000a0d0, 0x02050600}, 
     1907+       {0x0000a0d4, 0x02050601}, 
     1908+       {0x0000a0d8, 0x02050602}, 
     1909+       {0x0000a0dc, 0x02050603}, 
     1910+       {0x0000a0e0, 0x02050604}, 
     1911+       {0x0000a0e4, 0x02050700}, 
     1912+       {0x0000a0e8, 0x02050701}, 
     1913+       {0x0000a0ec, 0x02050702}, 
     1914+       {0x0000a0f0, 0x02050703}, 
     1915+       {0x0000a0f4, 0x02050704}, 
     1916+       {0x0000a0f8, 0x02050705}, 
     1917+       {0x0000a0fc, 0x02050708}, 
     1918+       {0x0000a100, 0x02050709}, 
     1919+       {0x0000a104, 0x0205070a}, 
     1920+       {0x0000a108, 0x0205070b}, 
     1921+       {0x0000a10c, 0x0205070c}, 
     1922+       {0x0000a110, 0x0205070d}, 
     1923+       {0x0000a114, 0x02050710}, 
     1924+       {0x0000a118, 0x02050711}, 
     1925+       {0x0000a11c, 0x02050712}, 
     1926+       {0x0000a120, 0x02050713}, 
     1927+       {0x0000a124, 0x02050714}, 
     1928+       {0x0000a128, 0x02050715}, 
     1929+       {0x0000a12c, 0x02050730}, 
     1930+       {0x0000a130, 0x02050731}, 
     1931+       {0x0000a134, 0x02050732}, 
     1932+       {0x0000a138, 0x02050733}, 
     1933+       {0x0000a13c, 0x02050734}, 
     1934+       {0x0000a140, 0x02050735}, 
     1935+       {0x0000a144, 0x02050750}, 
     1936+       {0x0000a148, 0x02050751}, 
     1937+       {0x0000a14c, 0x02050752}, 
     1938+       {0x0000a150, 0x02050753}, 
     1939+       {0x0000a154, 0x02050754}, 
     1940+       {0x0000a158, 0x02050755}, 
     1941+       {0x0000a15c, 0x02050770}, 
     1942+       {0x0000a160, 0x02050771}, 
     1943+       {0x0000a164, 0x02050772}, 
     1944+       {0x0000a168, 0x02050773}, 
     1945+       {0x0000a16c, 0x02050774}, 
     1946+       {0x0000a170, 0x02050775}, 
     1947+       {0x0000a174, 0x00000776}, 
     1948+       {0x0000a178, 0x00000776}, 
     1949+       {0x0000a17c, 0x00000776}, 
     1950+       {0x0000a180, 0x00000776}, 
     1951+       {0x0000a184, 0x00000776}, 
     1952+       {0x0000a188, 0x00000776}, 
     1953+       {0x0000a18c, 0x00000776}, 
     1954+       {0x0000a190, 0x00000776}, 
     1955+       {0x0000a194, 0x00000776}, 
     1956+       {0x0000a198, 0x00000776}, 
     1957+       {0x0000a19c, 0x00000776}, 
     1958+       {0x0000a1a0, 0x00000776}, 
     1959+       {0x0000a1a4, 0x00000776}, 
     1960+       {0x0000a1a8, 0x00000776}, 
     1961+       {0x0000a1ac, 0x00000776}, 
     1962+       {0x0000a1b0, 0x00000776}, 
     1963+       {0x0000a1b4, 0x00000776}, 
     1964+       {0x0000a1b8, 0x00000776}, 
     1965+       {0x0000a1bc, 0x00000776}, 
     1966+       {0x0000a1c0, 0x00000776}, 
     1967+       {0x0000a1c4, 0x00000776}, 
     1968+       {0x0000a1c8, 0x00000776}, 
     1969+       {0x0000a1cc, 0x00000776}, 
     1970+       {0x0000a1d0, 0x00000776}, 
     1971+       {0x0000a1d4, 0x00000776}, 
     1972+       {0x0000a1d8, 0x00000776}, 
     1973+       {0x0000a1dc, 0x00000776}, 
     1974+       {0x0000a1e0, 0x00000776}, 
     1975+       {0x0000a1e4, 0x00000776}, 
     1976+       {0x0000a1e8, 0x00000776}, 
     1977+       {0x0000a1ec, 0x00000776}, 
     1978+       {0x0000a1f0, 0x00000776}, 
     1979+       {0x0000a1f4, 0x00000776}, 
     1980+       {0x0000a1f8, 0x00000776}, 
     1981+       {0x0000a1fc, 0x00000776}, 
     1982+       {0x0000b000, 0x02000101}, 
     1983+       {0x0000b004, 0x02000102}, 
     1984+       {0x0000b008, 0x02000103}, 
     1985+       {0x0000b00c, 0x02000104}, 
     1986+       {0x0000b010, 0x02000200}, 
     1987+       {0x0000b014, 0x02000201}, 
     1988+       {0x0000b018, 0x02000202}, 
     1989+       {0x0000b01c, 0x02000203}, 
     1990+       {0x0000b020, 0x02000204}, 
     1991+       {0x0000b024, 0x02000205}, 
     1992+       {0x0000b028, 0x02000208}, 
     1993+       {0x0000b02c, 0x02000302}, 
     1994+       {0x0000b030, 0x02000303}, 
     1995+       {0x0000b034, 0x02000304}, 
     1996+       {0x0000b038, 0x02000400}, 
     1997+       {0x0000b03c, 0x02010300}, 
     1998+       {0x0000b040, 0x02010301}, 
     1999+       {0x0000b044, 0x02010302}, 
     2000+       {0x0000b048, 0x02000500}, 
     2001+       {0x0000b04c, 0x02010400}, 
     2002+       {0x0000b050, 0x02020300}, 
     2003+       {0x0000b054, 0x02020301}, 
     2004+       {0x0000b058, 0x02020302}, 
     2005+       {0x0000b05c, 0x02020303}, 
     2006+       {0x0000b060, 0x02020400}, 
     2007+       {0x0000b064, 0x02030300}, 
     2008+       {0x0000b068, 0x02030301}, 
     2009+       {0x0000b06c, 0x02030302}, 
     2010+       {0x0000b070, 0x02030303}, 
     2011+       {0x0000b074, 0x02030400}, 
     2012+       {0x0000b078, 0x02040300}, 
     2013+       {0x0000b07c, 0x02040301}, 
     2014+       {0x0000b080, 0x02040302}, 
     2015+       {0x0000b084, 0x02040303}, 
     2016+       {0x0000b088, 0x02030500}, 
     2017+       {0x0000b08c, 0x02040400}, 
     2018+       {0x0000b090, 0x02050203}, 
     2019+       {0x0000b094, 0x02050204}, 
     2020+       {0x0000b098, 0x02050205}, 
     2021+       {0x0000b09c, 0x02040500}, 
     2022+       {0x0000b0a0, 0x02050301}, 
     2023+       {0x0000b0a4, 0x02050302}, 
     2024+       {0x0000b0a8, 0x02050303}, 
     2025+       {0x0000b0ac, 0x02050400}, 
     2026+       {0x0000b0b0, 0x02050401}, 
     2027+       {0x0000b0b4, 0x02050402}, 
     2028+       {0x0000b0b8, 0x02050403}, 
     2029+       {0x0000b0bc, 0x02050500}, 
     2030+       {0x0000b0c0, 0x02050501}, 
     2031+       {0x0000b0c4, 0x02050502}, 
     2032+       {0x0000b0c8, 0x02050503}, 
     2033+       {0x0000b0cc, 0x02050504}, 
     2034+       {0x0000b0d0, 0x02050600}, 
     2035+       {0x0000b0d4, 0x02050601}, 
     2036+       {0x0000b0d8, 0x02050602}, 
     2037+       {0x0000b0dc, 0x02050603}, 
     2038+       {0x0000b0e0, 0x02050604}, 
     2039+       {0x0000b0e4, 0x02050700}, 
     2040+       {0x0000b0e8, 0x02050701}, 
     2041+       {0x0000b0ec, 0x02050702}, 
     2042+       {0x0000b0f0, 0x02050703}, 
     2043+       {0x0000b0f4, 0x02050704}, 
     2044+       {0x0000b0f8, 0x02050705}, 
     2045+       {0x0000b0fc, 0x02050708}, 
     2046+       {0x0000b100, 0x02050709}, 
     2047+       {0x0000b104, 0x0205070a}, 
     2048+       {0x0000b108, 0x0205070b}, 
     2049+       {0x0000b10c, 0x0205070c}, 
     2050+       {0x0000b110, 0x0205070d}, 
     2051+       {0x0000b114, 0x02050710}, 
     2052+       {0x0000b118, 0x02050711}, 
     2053+       {0x0000b11c, 0x02050712}, 
     2054+       {0x0000b120, 0x02050713}, 
     2055+       {0x0000b124, 0x02050714}, 
     2056+       {0x0000b128, 0x02050715}, 
     2057+       {0x0000b12c, 0x02050730}, 
     2058+       {0x0000b130, 0x02050731}, 
     2059+       {0x0000b134, 0x02050732}, 
     2060+       {0x0000b138, 0x02050733}, 
     2061+       {0x0000b13c, 0x02050734}, 
     2062+       {0x0000b140, 0x02050735}, 
     2063+       {0x0000b144, 0x02050750}, 
     2064+       {0x0000b148, 0x02050751}, 
     2065+       {0x0000b14c, 0x02050752}, 
     2066+       {0x0000b150, 0x02050753}, 
     2067+       {0x0000b154, 0x02050754}, 
     2068+       {0x0000b158, 0x02050755}, 
     2069+       {0x0000b15c, 0x02050770}, 
     2070+       {0x0000b160, 0x02050771}, 
     2071+       {0x0000b164, 0x02050772}, 
     2072+       {0x0000b168, 0x02050773}, 
     2073+       {0x0000b16c, 0x02050774}, 
     2074+       {0x0000b170, 0x02050775}, 
     2075+       {0x0000b174, 0x00000776}, 
     2076+       {0x0000b178, 0x00000776}, 
     2077+       {0x0000b17c, 0x00000776}, 
     2078+       {0x0000b180, 0x00000776}, 
     2079+       {0x0000b184, 0x00000776}, 
     2080+       {0x0000b188, 0x00000776}, 
     2081+       {0x0000b18c, 0x00000776}, 
     2082+       {0x0000b190, 0x00000776}, 
     2083+       {0x0000b194, 0x00000776}, 
     2084+       {0x0000b198, 0x00000776}, 
     2085+       {0x0000b19c, 0x00000776}, 
     2086+       {0x0000b1a0, 0x00000776}, 
     2087+       {0x0000b1a4, 0x00000776}, 
     2088+       {0x0000b1a8, 0x00000776}, 
     2089+       {0x0000b1ac, 0x00000776}, 
     2090+       {0x0000b1b0, 0x00000776}, 
     2091+       {0x0000b1b4, 0x00000776}, 
     2092+       {0x0000b1b8, 0x00000776}, 
     2093+       {0x0000b1bc, 0x00000776}, 
     2094+       {0x0000b1c0, 0x00000776}, 
     2095+       {0x0000b1c4, 0x00000776}, 
     2096+       {0x0000b1c8, 0x00000776}, 
     2097+       {0x0000b1cc, 0x00000776}, 
     2098+       {0x0000b1d0, 0x00000776}, 
     2099+       {0x0000b1d4, 0x00000776}, 
     2100+       {0x0000b1d8, 0x00000776}, 
     2101+       {0x0000b1dc, 0x00000776}, 
     2102+       {0x0000b1e0, 0x00000776}, 
     2103+       {0x0000b1e4, 0x00000776}, 
     2104+       {0x0000b1e8, 0x00000776}, 
     2105+       {0x0000b1ec, 0x00000776}, 
     2106+       {0x0000b1f0, 0x00000776}, 
     2107+       {0x0000b1f4, 0x00000776}, 
     2108+       {0x0000b1f8, 0x00000776}, 
     2109+       {0x0000b1fc, 0x00000776}, 
     2110+}; 
     2111+ 
     2112+static const u32 ar9200_ar9280_2p0_radio_core_1p0[][2] = { 
     2113+       /* Addr      allmodes  */ 
     2114+       {0x00007800, 0x00040000}, 
     2115+       {0x00007804, 0xdb005012}, 
     2116+       {0x00007808, 0x04924914}, 
     2117+       {0x0000780c, 0x21084210}, 
     2118+       {0x00007810, 0x6d801300}, 
     2119+       {0x00007814, 0x0019beff}, 
     2120+       {0x00007818, 0x07e41000}, 
     2121+       {0x0000781c, 0x00392000}, 
     2122+       {0x00007820, 0x92592480}, 
     2123+       {0x00007824, 0x00040000}, 
     2124+       {0x00007828, 0xdb005012}, 
     2125+       {0x0000782c, 0x04924914}, 
     2126+       {0x00007830, 0x21084210}, 
     2127+       {0x00007834, 0x6d801300}, 
     2128+       {0x00007838, 0x0019beff}, 
     2129+       {0x0000783c, 0x07e40000}, 
     2130+       {0x00007840, 0x00392000}, 
     2131+       {0x00007844, 0x92592480}, 
     2132+       {0x00007848, 0x00100000}, 
     2133+       {0x0000784c, 0x773f0567}, 
     2134+       {0x00007850, 0x54214514}, 
     2135+       {0x00007854, 0x12035828}, 
     2136+       {0x00007858, 0x92592692}, 
     2137+       {0x0000785c, 0x00000000}, 
     2138+       {0x00007860, 0x56400000}, 
     2139+       {0x00007864, 0x0a8e370e}, 
     2140+       {0x00007868, 0xc0102850}, 
     2141+       {0x0000786c, 0x812d4000}, 
     2142+       {0x00007870, 0x807ec400}, 
     2143+       {0x00007874, 0x001b6db0}, 
     2144+       {0x00007878, 0x00376b63}, 
     2145+       {0x0000787c, 0x06db6db6}, 
     2146+       {0x00007880, 0x006d8000}, 
     2147+       {0x00007884, 0xffeffffe}, 
     2148+       {0x00007888, 0xffeffffe}, 
     2149+       {0x0000788c, 0x00010000}, 
     2150+       {0x00007890, 0x02060aeb}, 
     2151+       {0x00007894, 0x5a108000}, 
     2152+}; 
     2153+ 
     2154+static const u32 ar9462_1p0_baseband_postamble_emulation[][5] = { 
     2155+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     2156+       {0x00009e18, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     2157+       {0x00009e3c, 0xcf946221, 0xcf946221, 0xcf946221, 0xcf946221}, 
     2158+       {0x00009e44, 0x005c0000, 0x005c0000, 0x005c0000, 0x005c0000}, 
     2159+       {0x0000a258, 0x02020200, 0x02020200, 0x02020200, 0x02020200}, 
     2160+       {0x0000a25c, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, 
     2161+       {0x0000a28c, 0x00011111, 0x00011111, 0x00011111, 0x00011111}, 
     2162+       {0x0000a2c4, 0x00148d18, 0x00148d18, 0x00148d20, 0x00148d20}, 
     2163+       {0x0000a2d8, 0xf999a800, 0xf999a800, 0xf999a80c, 0xf999a80c}, 
     2164+       {0x0000a50c, 0x0000c00a, 0x0000c00a, 0x0000c00a, 0x0000c00a}, 
     2165+       {0x0000a538, 0x00038e8c, 0x00038e8c, 0x00038e8c, 0x00038e8c}, 
     2166+       {0x0000a53c, 0x0003cecc, 0x0003cecc, 0x0003cecc, 0x0003cecc}, 
     2167+       {0x0000a540, 0x00040ed4, 0x00040ed4, 0x00040ed4, 0x00040ed4}, 
     2168+       {0x0000a544, 0x00044edc, 0x00044edc, 0x00044edc, 0x00044edc}, 
     2169+       {0x0000a548, 0x00048ede, 0x00048ede, 0x00048ede, 0x00048ede}, 
     2170+       {0x0000a54c, 0x0004cf1e, 0x0004cf1e, 0x0004cf1e, 0x0004cf1e}, 
     2171+       {0x0000a550, 0x00050f5e, 0x00050f5e, 0x00050f5e, 0x00050f5e}, 
     2172+       {0x0000a554, 0x00054f9e, 0x00054f9e, 0x00054f9e, 0x00054f9e}, 
     2173+       {0x0000ae18, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     2174+}; 
     2175+ 
     2176+static const u32 ar9462_pcie_phy_pll_on_clkreq_disable_L1_1p0[][2] = { 
     2177+       /* Addr      allmodes  */ 
     2178+       {0x00018c00, 0x10012e5e}, 
     2179+       {0x00018c04, 0x000801d8}, 
     2180+       {0x00018c08, 0x0000580c}, 
     2181+}; 
     2182+ 
     2183+static const u32 ar9462_common_rx_gain_table_1p0[][2] = { 
     2184+       /* Addr      allmodes  */ 
     2185+       {0x0000a000, 0x00010000}, 
     2186+       {0x0000a004, 0x00030002}, 
     2187+       {0x0000a008, 0x00050004}, 
     2188+       {0x0000a00c, 0x00810080}, 
     2189+       {0x0000a010, 0x00830082}, 
     2190+       {0x0000a014, 0x01810180}, 
     2191+       {0x0000a018, 0x01830182}, 
     2192+       {0x0000a01c, 0x01850184}, 
     2193+       {0x0000a020, 0x01890188}, 
     2194+       {0x0000a024, 0x018b018a}, 
     2195+       {0x0000a028, 0x018d018c}, 
     2196+       {0x0000a02c, 0x01910190}, 
     2197+       {0x0000a030, 0x01930192}, 
     2198+       {0x0000a034, 0x01950194}, 
     2199+       {0x0000a038, 0x038a0196}, 
     2200+       {0x0000a03c, 0x038c038b}, 
     2201+       {0x0000a040, 0x0390038d}, 
     2202+       {0x0000a044, 0x03920391}, 
     2203+       {0x0000a048, 0x03940393}, 
     2204+       {0x0000a04c, 0x03960395}, 
     2205+       {0x0000a050, 0x00000000}, 
     2206+       {0x0000a054, 0x00000000}, 
     2207+       {0x0000a058, 0x00000000}, 
     2208+       {0x0000a05c, 0x00000000}, 
     2209+       {0x0000a060, 0x00000000}, 
     2210+       {0x0000a064, 0x00000000}, 
     2211+       {0x0000a068, 0x00000000}, 
     2212+       {0x0000a06c, 0x00000000}, 
     2213+       {0x0000a070, 0x00000000}, 
     2214+       {0x0000a074, 0x00000000}, 
     2215+       {0x0000a078, 0x00000000}, 
     2216+       {0x0000a07c, 0x00000000}, 
     2217+       {0x0000a080, 0x22222229}, 
     2218+       {0x0000a084, 0x1d1d1d1d}, 
     2219+       {0x0000a088, 0x1d1d1d1d}, 
     2220+       {0x0000a08c, 0x1d1d1d1d}, 
     2221+       {0x0000a090, 0x171d1d1d}, 
     2222+       {0x0000a094, 0x11111717}, 
     2223+       {0x0000a098, 0x00030311}, 
     2224+       {0x0000a09c, 0x00000000}, 
     2225+       {0x0000a0a0, 0x00000000}, 
     2226+       {0x0000a0a4, 0x00000000}, 
     2227+       {0x0000a0a8, 0x00000000}, 
     2228+       {0x0000a0ac, 0x00000000}, 
     2229+       {0x0000a0b0, 0x00000000}, 
     2230+       {0x0000a0b4, 0x00000000}, 
     2231+       {0x0000a0b8, 0x00000000}, 
     2232+       {0x0000a0bc, 0x00000000}, 
     2233+       {0x0000a0c0, 0x001f0000}, 
     2234+       {0x0000a0c4, 0x01000101}, 
     2235+       {0x0000a0c8, 0x011e011f}, 
     2236+       {0x0000a0cc, 0x011c011d}, 
     2237+       {0x0000a0d0, 0x02030204}, 
     2238+       {0x0000a0d4, 0x02010202}, 
     2239+       {0x0000a0d8, 0x021f0200}, 
     2240+       {0x0000a0dc, 0x0302021e}, 
     2241+       {0x0000a0e0, 0x03000301}, 
     2242+       {0x0000a0e4, 0x031e031f}, 
     2243+       {0x0000a0e8, 0x0402031d}, 
     2244+       {0x0000a0ec, 0x04000401}, 
     2245+       {0x0000a0f0, 0x041e041f}, 
     2246+       {0x0000a0f4, 0x0502041d}, 
     2247+       {0x0000a0f8, 0x05000501}, 
     2248+       {0x0000a0fc, 0x051e051f}, 
     2249+       {0x0000a100, 0x06010602}, 
     2250+       {0x0000a104, 0x061f0600}, 
     2251+       {0x0000a108, 0x061d061e}, 
     2252+       {0x0000a10c, 0x07020703}, 
     2253+       {0x0000a110, 0x07000701}, 
     2254+       {0x0000a114, 0x00000000}, 
     2255+       {0x0000a118, 0x00000000}, 
     2256+       {0x0000a11c, 0x00000000}, 
     2257+       {0x0000a120, 0x00000000}, 
     2258+       {0x0000a124, 0x00000000}, 
     2259+       {0x0000a128, 0x00000000}, 
     2260+       {0x0000a12c, 0x00000000}, 
     2261+       {0x0000a130, 0x00000000}, 
     2262+       {0x0000a134, 0x00000000}, 
     2263+       {0x0000a138, 0x00000000}, 
     2264+       {0x0000a13c, 0x00000000}, 
     2265+       {0x0000a140, 0x001f0000}, 
     2266+       {0x0000a144, 0x01000101}, 
     2267+       {0x0000a148, 0x011e011f}, 
     2268+       {0x0000a14c, 0x011c011d}, 
     2269+       {0x0000a150, 0x02030204}, 
     2270+       {0x0000a154, 0x02010202}, 
     2271+       {0x0000a158, 0x021f0200}, 
     2272+       {0x0000a15c, 0x0302021e}, 
     2273+       {0x0000a160, 0x03000301}, 
     2274+       {0x0000a164, 0x031e031f}, 
     2275+       {0x0000a168, 0x0402031d}, 
     2276+       {0x0000a16c, 0x04000401}, 
     2277+       {0x0000a170, 0x041e041f}, 
     2278+       {0x0000a174, 0x0502041d}, 
     2279+       {0x0000a178, 0x05000501}, 
     2280+       {0x0000a17c, 0x051e051f}, 
     2281+       {0x0000a180, 0x06010602}, 
     2282+       {0x0000a184, 0x061f0600}, 
     2283+       {0x0000a188, 0x061d061e}, 
     2284+       {0x0000a18c, 0x07020703}, 
     2285+       {0x0000a190, 0x07000701}, 
     2286+       {0x0000a194, 0x00000000}, 
     2287+       {0x0000a198, 0x00000000}, 
     2288+       {0x0000a19c, 0x00000000}, 
     2289+       {0x0000a1a0, 0x00000000}, 
     2290+       {0x0000a1a4, 0x00000000}, 
     2291+       {0x0000a1a8, 0x00000000}, 
     2292+       {0x0000a1ac, 0x00000000}, 
     2293+       {0x0000a1b0, 0x00000000}, 
     2294+       {0x0000a1b4, 0x00000000}, 
     2295+       {0x0000a1b8, 0x00000000}, 
     2296+       {0x0000a1bc, 0x00000000}, 
     2297+       {0x0000a1c0, 0x00000000}, 
     2298+       {0x0000a1c4, 0x00000000}, 
     2299+       {0x0000a1c8, 0x00000000}, 
     2300+       {0x0000a1cc, 0x00000000}, 
     2301+       {0x0000a1d0, 0x00000000}, 
     2302+       {0x0000a1d4, 0x00000000}, 
     2303+       {0x0000a1d8, 0x00000000}, 
     2304+       {0x0000a1dc, 0x00000000}, 
     2305+       {0x0000a1e0, 0x00000000}, 
     2306+       {0x0000a1e4, 0x00000000}, 
     2307+       {0x0000a1e8, 0x00000000}, 
     2308+       {0x0000a1ec, 0x00000000}, 
     2309+       {0x0000a1f0, 0x00000396}, 
     2310+       {0x0000a1f4, 0x00000396}, 
     2311+       {0x0000a1f8, 0x00000396}, 
     2312+       {0x0000a1fc, 0x00000196}, 
     2313+       {0x0000b000, 0x00010000}, 
     2314+       {0x0000b004, 0x00030002}, 
     2315+       {0x0000b008, 0x00050004}, 
     2316+       {0x0000b00c, 0x00810080}, 
     2317+       {0x0000b010, 0x00830082}, 
     2318+       {0x0000b014, 0x01810180}, 
     2319+       {0x0000b018, 0x01830182}, 
     2320+       {0x0000b01c, 0x01850184}, 
     2321+       {0x0000b020, 0x02810280}, 
     2322+       {0x0000b024, 0x02830282}, 
     2323+       {0x0000b028, 0x02850284}, 
     2324+       {0x0000b02c, 0x02890288}, 
     2325+       {0x0000b030, 0x028b028a}, 
     2326+       {0x0000b034, 0x0388028c}, 
     2327+       {0x0000b038, 0x038a0389}, 
     2328+       {0x0000b03c, 0x038c038b}, 
     2329+       {0x0000b040, 0x0390038d}, 
     2330+       {0x0000b044, 0x03920391}, 
     2331+       {0x0000b048, 0x03940393}, 
     2332+       {0x0000b04c, 0x03960395}, 
     2333+       {0x0000b050, 0x00000000}, 
     2334+       {0x0000b054, 0x00000000}, 
     2335+       {0x0000b058, 0x00000000}, 
     2336+       {0x0000b05c, 0x00000000}, 
     2337+       {0x0000b060, 0x00000000}, 
     2338+       {0x0000b064, 0x00000000}, 
     2339+       {0x0000b068, 0x00000000}, 
     2340+       {0x0000b06c, 0x00000000}, 
     2341+       {0x0000b070, 0x00000000}, 
     2342+       {0x0000b074, 0x00000000}, 
     2343+       {0x0000b078, 0x00000000}, 
     2344+       {0x0000b07c, 0x00000000}, 
     2345+       {0x0000b080, 0x2a2d2f32}, 
     2346+       {0x0000b084, 0x21232328}, 
     2347+       {0x0000b088, 0x19191c1e}, 
     2348+       {0x0000b08c, 0x12141417}, 
     2349+       {0x0000b090, 0x07070e0e}, 
     2350+       {0x0000b094, 0x03030305}, 
     2351+       {0x0000b098, 0x00000003}, 
     2352+       {0x0000b09c, 0x00000000}, 
     2353+       {0x0000b0a0, 0x00000000}, 
     2354+       {0x0000b0a4, 0x00000000}, 
     2355+       {0x0000b0a8, 0x00000000}, 
     2356+       {0x0000b0ac, 0x00000000}, 
     2357+       {0x0000b0b0, 0x00000000}, 
     2358+       {0x0000b0b4, 0x00000000}, 
     2359+       {0x0000b0b8, 0x00000000}, 
     2360+       {0x0000b0bc, 0x00000000}, 
     2361+       {0x0000b0c0, 0x003f0020}, 
     2362+       {0x0000b0c4, 0x00400041}, 
     2363+       {0x0000b0c8, 0x0140005f}, 
     2364+       {0x0000b0cc, 0x0160015f}, 
     2365+       {0x0000b0d0, 0x017e017f}, 
     2366+       {0x0000b0d4, 0x02410242}, 
     2367+       {0x0000b0d8, 0x025f0240}, 
     2368+       {0x0000b0dc, 0x027f0260}, 
     2369+       {0x0000b0e0, 0x0341027e}, 
     2370+       {0x0000b0e4, 0x035f0340}, 
     2371+       {0x0000b0e8, 0x037f0360}, 
     2372+       {0x0000b0ec, 0x04400441}, 
     2373+       {0x0000b0f0, 0x0460045f}, 
     2374+       {0x0000b0f4, 0x0541047f}, 
     2375+       {0x0000b0f8, 0x055f0540}, 
     2376+       {0x0000b0fc, 0x057f0560}, 
     2377+       {0x0000b100, 0x06400641}, 
     2378+       {0x0000b104, 0x0660065f}, 
     2379+       {0x0000b108, 0x067e067f}, 
     2380+       {0x0000b10c, 0x07410742}, 
     2381+       {0x0000b110, 0x075f0740}, 
     2382+       {0x0000b114, 0x077f0760}, 
     2383+       {0x0000b118, 0x07800781}, 
     2384+       {0x0000b11c, 0x07a0079f}, 
     2385+       {0x0000b120, 0x07c107bf}, 
     2386+       {0x0000b124, 0x000007c0}, 
     2387+       {0x0000b128, 0x00000000}, 
     2388+       {0x0000b12c, 0x00000000}, 
     2389+       {0x0000b130, 0x00000000}, 
     2390+       {0x0000b134, 0x00000000}, 
     2391+       {0x0000b138, 0x00000000}, 
     2392+       {0x0000b13c, 0x00000000}, 
     2393+       {0x0000b140, 0x003f0020}, 
     2394+       {0x0000b144, 0x00400041}, 
     2395+       {0x0000b148, 0x0140005f}, 
     2396+       {0x0000b14c, 0x0160015f}, 
     2397+       {0x0000b150, 0x017e017f}, 
     2398+       {0x0000b154, 0x02410242}, 
     2399+       {0x0000b158, 0x025f0240}, 
     2400+       {0x0000b15c, 0x027f0260}, 
     2401+       {0x0000b160, 0x0341027e}, 
     2402+       {0x0000b164, 0x035f0340}, 
     2403+       {0x0000b168, 0x037f0360}, 
     2404+       {0x0000b16c, 0x04400441}, 
     2405+       {0x0000b170, 0x0460045f}, 
     2406+       {0x0000b174, 0x0541047f}, 
     2407+       {0x0000b178, 0x055f0540}, 
     2408+       {0x0000b17c, 0x057f0560}, 
     2409+       {0x0000b180, 0x06400641}, 
     2410+       {0x0000b184, 0x0660065f}, 
     2411+       {0x0000b188, 0x067e067f}, 
     2412+       {0x0000b18c, 0x07410742}, 
     2413+       {0x0000b190, 0x075f0740}, 
     2414+       {0x0000b194, 0x077f0760}, 
     2415+       {0x0000b198, 0x07800781}, 
     2416+       {0x0000b19c, 0x07a0079f}, 
     2417+       {0x0000b1a0, 0x07c107bf}, 
     2418+       {0x0000b1a4, 0x000007c0}, 
     2419+       {0x0000b1a8, 0x00000000}, 
     2420+       {0x0000b1ac, 0x00000000}, 
     2421+       {0x0000b1b0, 0x00000000}, 
     2422+       {0x0000b1b4, 0x00000000}, 
     2423+       {0x0000b1b8, 0x00000000}, 
     2424+       {0x0000b1bc, 0x00000000}, 
     2425+       {0x0000b1c0, 0x00000000}, 
     2426+       {0x0000b1c4, 0x00000000}, 
     2427+       {0x0000b1c8, 0x00000000}, 
     2428+       {0x0000b1cc, 0x00000000}, 
     2429+       {0x0000b1d0, 0x00000000}, 
     2430+       {0x0000b1d4, 0x00000000}, 
     2431+       {0x0000b1d8, 0x00000000}, 
     2432+       {0x0000b1dc, 0x00000000}, 
     2433+       {0x0000b1e0, 0x00000000}, 
     2434+       {0x0000b1e4, 0x00000000}, 
     2435+       {0x0000b1e8, 0x00000000}, 
     2436+       {0x0000b1ec, 0x00000000}, 
     2437+       {0x0000b1f0, 0x00000396}, 
     2438+       {0x0000b1f4, 0x00000396}, 
     2439+       {0x0000b1f8, 0x00000396}, 
     2440+       {0x0000b1fc, 0x00000196}, 
     2441+}; 
     2442+ 
     2443+static const u32 ar9462_modes_high_ob_db_tx_gain_table_1p0[][5] = { 
     2444+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     2445+       {0x0000a2dc, 0x01feee00, 0x01feee00, 0x03aaa352, 0x03aaa352}, 
     2446+       {0x0000a2e0, 0x0000f000, 0x0000f000, 0x03ccc584, 0x03ccc584}, 
     2447+       {0x0000a2e4, 0x01ff0000, 0x01ff0000, 0x03f0f800, 0x03f0f800}, 
     2448+       {0x0000a2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000}, 
     2449+       {0x0000a410, 0x000050d9, 0x000050d9, 0x000050d9, 0x000050d9}, 
     2450+       {0x0000a500, 0x00002220, 0x00002220, 0x00000000, 0x00000000}, 
     2451+       {0x0000a504, 0x06002223, 0x06002223, 0x04000002, 0x04000002}, 
     2452+       {0x0000a508, 0x0a022220, 0x0a022220, 0x08000004, 0x08000004}, 
     2453+       {0x0000a50c, 0x0f022223, 0x0f022223, 0x0b000200, 0x0b000200}, 
     2454+       {0x0000a510, 0x14022620, 0x14022620, 0x0f000202, 0x0f000202}, 
     2455+       {0x0000a514, 0x18022622, 0x18022622, 0x11000400, 0x11000400}, 
     2456+       {0x0000a518, 0x1b022822, 0x1b022822, 0x15000402, 0x15000402}, 
     2457+       {0x0000a51c, 0x20022842, 0x20022842, 0x19000404, 0x19000404}, 
     2458+       {0x0000a520, 0x22022c41, 0x22022c41, 0x1b000603, 0x1b000603}, 
     2459+       {0x0000a524, 0x28023042, 0x28023042, 0x1f000a02, 0x1f000a02}, 
     2460+       {0x0000a528, 0x2c023044, 0x2c023044, 0x23000a04, 0x23000a04}, 
     2461+       {0x0000a52c, 0x2f023644, 0x2f023644, 0x26000a20, 0x26000a20}, 
     2462+       {0x0000a530, 0x34025643, 0x34025643, 0x2a000e20, 0x2a000e20}, 
     2463+       {0x0000a534, 0x38025a44, 0x38025a44, 0x2e000e22, 0x2e000e22}, 
     2464+       {0x0000a538, 0x3b025e45, 0x3b025e45, 0x31000e24, 0x31000e24}, 
     2465+       {0x0000a53c, 0x41025e4a, 0x41025e4a, 0x34001640, 0x34001640}, 
     2466+       {0x0000a540, 0x48025e6c, 0x48025e6c, 0x38001660, 0x38001660}, 
     2467+       {0x0000a544, 0x4e025e8e, 0x4e025e8e, 0x3b001861, 0x3b001861}, 
     2468+       {0x0000a548, 0x53025eb2, 0x53025eb2, 0x3e001a81, 0x3e001a81}, 
     2469+       {0x0000a54c, 0x59025eb2, 0x59025eb2, 0x42001a83, 0x42001a83}, 
     2470+       {0x0000a550, 0x5f025ef6, 0x5f025ef6, 0x44001c84, 0x44001c84}, 
     2471+       {0x0000a554, 0x62025f56, 0x62025f56, 0x48001ce3, 0x48001ce3}, 
     2472+       {0x0000a558, 0x66027f56, 0x66027f56, 0x4c001ce5, 0x4c001ce5}, 
     2473+       {0x0000a55c, 0x6a029f56, 0x6a029f56, 0x50001ce9, 0x50001ce9}, 
     2474+       {0x0000a560, 0x70049f56, 0x70049f56, 0x54001ceb, 0x54001ceb}, 
     2475+       {0x0000a564, 0x7504ff56, 0x7504ff56, 0x56001eec, 0x56001eec}, 
     2476+       {0x0000a568, 0x7504ff56, 0x7504ff56, 0x56001eec, 0x56001eec}, 
     2477+       {0x0000a56c, 0x7504ff56, 0x7504ff56, 0x56001eec, 0x56001eec}, 
     2478+       {0x0000a570, 0x7504ff56, 0x7504ff56, 0x56001eec, 0x56001eec}, 
     2479+       {0x0000a574, 0x7504ff56, 0x7504ff56, 0x56001eec, 0x56001eec}, 
     2480+       {0x0000a578, 0x7504ff56, 0x7504ff56, 0x56001eec, 0x56001eec}, 
     2481+       {0x0000a57c, 0x7504ff56, 0x7504ff56, 0x56001eec, 0x56001eec}, 
     2482+       {0x0000a600, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     2483+       {0x0000a604, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     2484+       {0x0000a608, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     2485+       {0x0000a60c, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     2486+       {0x0000a610, 0x00804000, 0x00804000, 0x00000000, 0x00000000}, 
     2487+       {0x0000a614, 0x00804201, 0x00804201, 0x01404000, 0x01404000}, 
     2488+       {0x0000a618, 0x0280c802, 0x0280c802, 0x01404501, 0x01404501}, 
     2489+       {0x0000a61c, 0x0280ca03, 0x0280ca03, 0x02008501, 0x02008501}, 
     2490+       {0x0000a620, 0x04c15104, 0x04c15104, 0x0280ca03, 0x0280ca03}, 
     2491+       {0x0000a624, 0x04c15305, 0x04c15305, 0x03010c04, 0x03010c04}, 
     2492+       {0x0000a628, 0x04c15305, 0x04c15305, 0x04014c04, 0x04014c04}, 
     2493+       {0x0000a62c, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005}, 
     2494+       {0x0000a630, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005}, 
     2495+       {0x0000a634, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005}, 
     2496+       {0x0000a638, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005}, 
     2497+       {0x0000a63c, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005}, 
     2498+       {0x0000b2dc, 0x01feee00, 0x01feee00, 0x03aaa352, 0x03aaa352}, 
     2499+       {0x0000b2e0, 0x0000f000, 0x0000f000, 0x03ccc584, 0x03ccc584}, 
     2500+       {0x0000b2e4, 0x01ff0000, 0x01ff0000, 0x03f0f800, 0x03f0f800}, 
     2501+       {0x0000b2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000}, 
     2502+       {0x00016044, 0x056d82e4, 0x056d82e4, 0x056d82e4, 0x056d82e4}, 
     2503+       {0x00016048, 0x8db49060, 0x8db49060, 0x8db49060, 0x8db49060}, 
     2504+       {0x00016444, 0x056d82e4, 0x056d82e4, 0x056d82e4, 0x056d82e4}, 
     2505+       {0x00016448, 0x8db49000, 0x8db49000, 0x8db49000, 0x8db49000}, 
     2506+}; 
     2507+ 
     2508+static const u32 ar9462_common_wo_xlna_rx_gain_table_1p0[][2] = { 
     2509+       /* Addr      allmodes  */ 
     2510+       {0x0000a000, 0x00010000}, 
     2511+       {0x0000a004, 0x00030002}, 
     2512+       {0x0000a008, 0x00050004}, 
     2513+       {0x0000a00c, 0x00810080}, 
     2514+       {0x0000a010, 0x00830082}, 
     2515+       {0x0000a014, 0x01810180}, 
     2516+       {0x0000a018, 0x01830182}, 
     2517+       {0x0000a01c, 0x01850184}, 
     2518+       {0x0000a020, 0x01890188}, 
     2519+       {0x0000a024, 0x018b018a}, 
     2520+       {0x0000a028, 0x018d018c}, 
     2521+       {0x0000a02c, 0x03820190}, 
     2522+       {0x0000a030, 0x03840383}, 
     2523+       {0x0000a034, 0x03880385}, 
     2524+       {0x0000a038, 0x038a0389}, 
     2525+       {0x0000a03c, 0x038c038b}, 
     2526+       {0x0000a040, 0x0390038d}, 
     2527+       {0x0000a044, 0x03920391}, 
     2528+       {0x0000a048, 0x03940393}, 
     2529+       {0x0000a04c, 0x03960395}, 
     2530+       {0x0000a050, 0x00000000}, 
     2531+       {0x0000a054, 0x00000000}, 
     2532+       {0x0000a058, 0x00000000}, 
     2533+       {0x0000a05c, 0x00000000}, 
     2534+       {0x0000a060, 0x00000000}, 
     2535+       {0x0000a064, 0x00000000}, 
     2536+       {0x0000a068, 0x00000000}, 
     2537+       {0x0000a06c, 0x00000000}, 
     2538+       {0x0000a070, 0x00000000}, 
     2539+       {0x0000a074, 0x00000000}, 
     2540+       {0x0000a078, 0x00000000}, 
     2541+       {0x0000a07c, 0x00000000}, 
     2542+       {0x0000a080, 0x29292929}, 
     2543+       {0x0000a084, 0x29292929}, 
     2544+       {0x0000a088, 0x29292929}, 
     2545+       {0x0000a08c, 0x29292929}, 
     2546+       {0x0000a090, 0x22292929}, 
     2547+       {0x0000a094, 0x1d1d2222}, 
     2548+       {0x0000a098, 0x0c111117}, 
     2549+       {0x0000a09c, 0x00030303}, 
     2550+       {0x0000a0a0, 0x00000000}, 
     2551+       {0x0000a0a4, 0x00000000}, 
     2552+       {0x0000a0a8, 0x00000000}, 
     2553+       {0x0000a0ac, 0x00000000}, 
     2554+       {0x0000a0b0, 0x00000000}, 
     2555+       {0x0000a0b4, 0x00000000}, 
     2556+       {0x0000a0b8, 0x00000000}, 
     2557+       {0x0000a0bc, 0x00000000}, 
     2558+       {0x0000a0c0, 0x001f0000}, 
     2559+       {0x0000a0c4, 0x01000101}, 
     2560+       {0x0000a0c8, 0x011e011f}, 
     2561+       {0x0000a0cc, 0x011c011d}, 
     2562+       {0x0000a0d0, 0x02030204}, 
     2563+       {0x0000a0d4, 0x02010202}, 
     2564+       {0x0000a0d8, 0x021f0200}, 
     2565+       {0x0000a0dc, 0x0302021e}, 
     2566+       {0x0000a0e0, 0x03000301}, 
     2567+       {0x0000a0e4, 0x031e031f}, 
     2568+       {0x0000a0e8, 0x0402031d}, 
     2569+       {0x0000a0ec, 0x04000401}, 
     2570+       {0x0000a0f0, 0x041e041f}, 
     2571+       {0x0000a0f4, 0x0502041d}, 
     2572+       {0x0000a0f8, 0x05000501}, 
     2573+       {0x0000a0fc, 0x051e051f}, 
     2574+       {0x0000a100, 0x06010602}, 
     2575+       {0x0000a104, 0x061f0600}, 
     2576+       {0x0000a108, 0x061d061e}, 
     2577+       {0x0000a10c, 0x07020703}, 
     2578+       {0x0000a110, 0x07000701}, 
     2579+       {0x0000a114, 0x00000000}, 
     2580+       {0x0000a118, 0x00000000}, 
     2581+       {0x0000a11c, 0x00000000}, 
     2582+       {0x0000a120, 0x00000000}, 
     2583+       {0x0000a124, 0x00000000}, 
     2584+       {0x0000a128, 0x00000000}, 
     2585+       {0x0000a12c, 0x00000000}, 
     2586+       {0x0000a130, 0x00000000}, 
     2587+       {0x0000a134, 0x00000000}, 
     2588+       {0x0000a138, 0x00000000}, 
     2589+       {0x0000a13c, 0x00000000}, 
     2590+       {0x0000a140, 0x001f0000}, 
     2591+       {0x0000a144, 0x01000101}, 
     2592+       {0x0000a148, 0x011e011f}, 
     2593+       {0x0000a14c, 0x011c011d}, 
     2594+       {0x0000a150, 0x02030204}, 
     2595+       {0x0000a154, 0x02010202}, 
     2596+       {0x0000a158, 0x021f0200}, 
     2597+       {0x0000a15c, 0x0302021e}, 
     2598+       {0x0000a160, 0x03000301}, 
     2599+       {0x0000a164, 0x031e031f}, 
     2600+       {0x0000a168, 0x0402031d}, 
     2601+       {0x0000a16c, 0x04000401}, 
     2602+       {0x0000a170, 0x041e041f}, 
     2603+       {0x0000a174, 0x0502041d}, 
     2604+       {0x0000a178, 0x05000501}, 
     2605+       {0x0000a17c, 0x051e051f}, 
     2606+       {0x0000a180, 0x06010602}, 
     2607+       {0x0000a184, 0x061f0600}, 
     2608+       {0x0000a188, 0x061d061e}, 
     2609+       {0x0000a18c, 0x07020703}, 
     2610+       {0x0000a190, 0x07000701}, 
     2611+       {0x0000a194, 0x00000000}, 
     2612+       {0x0000a198, 0x00000000}, 
     2613+       {0x0000a19c, 0x00000000}, 
     2614+       {0x0000a1a0, 0x00000000}, 
     2615+       {0x0000a1a4, 0x00000000}, 
     2616+       {0x0000a1a8, 0x00000000}, 
     2617+       {0x0000a1ac, 0x00000000}, 
     2618+       {0x0000a1b0, 0x00000000}, 
     2619+       {0x0000a1b4, 0x00000000}, 
     2620+       {0x0000a1b8, 0x00000000}, 
     2621+       {0x0000a1bc, 0x00000000}, 
     2622+       {0x0000a1c0, 0x00000000}, 
     2623+       {0x0000a1c4, 0x00000000}, 
     2624+       {0x0000a1c8, 0x00000000}, 
     2625+       {0x0000a1cc, 0x00000000}, 
     2626+       {0x0000a1d0, 0x00000000}, 
     2627+       {0x0000a1d4, 0x00000000}, 
     2628+       {0x0000a1d8, 0x00000000}, 
     2629+       {0x0000a1dc, 0x00000000}, 
     2630+       {0x0000a1e0, 0x00000000}, 
     2631+       {0x0000a1e4, 0x00000000}, 
     2632+       {0x0000a1e8, 0x00000000}, 
     2633+       {0x0000a1ec, 0x00000000}, 
     2634+       {0x0000a1f0, 0x00000396}, 
     2635+       {0x0000a1f4, 0x00000396}, 
     2636+       {0x0000a1f8, 0x00000396}, 
     2637+       {0x0000a1fc, 0x00000196}, 
     2638+       {0x0000b000, 0x00010000}, 
     2639+       {0x0000b004, 0x00030002}, 
     2640+       {0x0000b008, 0x00050004}, 
     2641+       {0x0000b00c, 0x00810080}, 
     2642+       {0x0000b010, 0x00830082}, 
     2643+       {0x0000b014, 0x01810180}, 
     2644+       {0x0000b018, 0x01830182}, 
     2645+       {0x0000b01c, 0x01850184}, 
     2646+       {0x0000b020, 0x02810280}, 
     2647+       {0x0000b024, 0x02830282}, 
     2648+       {0x0000b028, 0x02850284}, 
     2649+       {0x0000b02c, 0x02890288}, 
     2650+       {0x0000b030, 0x028b028a}, 
     2651+       {0x0000b034, 0x0388028c}, 
     2652+       {0x0000b038, 0x038a0389}, 
     2653+       {0x0000b03c, 0x038c038b}, 
     2654+       {0x0000b040, 0x0390038d}, 
     2655+       {0x0000b044, 0x03920391}, 
     2656+       {0x0000b048, 0x03940393}, 
     2657+       {0x0000b04c, 0x03960395}, 
     2658+       {0x0000b050, 0x00000000}, 
     2659+       {0x0000b054, 0x00000000}, 
     2660+       {0x0000b058, 0x00000000}, 
     2661+       {0x0000b05c, 0x00000000}, 
     2662+       {0x0000b060, 0x00000000}, 
     2663+       {0x0000b064, 0x00000000}, 
     2664+       {0x0000b068, 0x00000000}, 
     2665+       {0x0000b06c, 0x00000000}, 
     2666+       {0x0000b070, 0x00000000}, 
     2667+       {0x0000b074, 0x00000000}, 
     2668+       {0x0000b078, 0x00000000}, 
     2669+       {0x0000b07c, 0x00000000}, 
     2670+       {0x0000b080, 0x32323232}, 
     2671+       {0x0000b084, 0x2f2f3232}, 
     2672+       {0x0000b088, 0x23282a2d}, 
     2673+       {0x0000b08c, 0x1c1e2123}, 
     2674+       {0x0000b090, 0x14171919}, 
     2675+       {0x0000b094, 0x0e0e1214}, 
     2676+       {0x0000b098, 0x03050707}, 
     2677+       {0x0000b09c, 0x00030303}, 
     2678+       {0x0000b0a0, 0x00000000}, 
     2679+       {0x0000b0a4, 0x00000000}, 
     2680+       {0x0000b0a8, 0x00000000}, 
     2681+       {0x0000b0ac, 0x00000000}, 
     2682+       {0x0000b0b0, 0x00000000}, 
     2683+       {0x0000b0b4, 0x00000000}, 
     2684+       {0x0000b0b8, 0x00000000}, 
     2685+       {0x0000b0bc, 0x00000000}, 
     2686+       {0x0000b0c0, 0x003f0020}, 
     2687+       {0x0000b0c4, 0x00400041}, 
     2688+       {0x0000b0c8, 0x0140005f}, 
     2689+       {0x0000b0cc, 0x0160015f}, 
     2690+       {0x0000b0d0, 0x017e017f}, 
     2691+       {0x0000b0d4, 0x02410242}, 
     2692+       {0x0000b0d8, 0x025f0240}, 
     2693+       {0x0000b0dc, 0x027f0260}, 
     2694+       {0x0000b0e0, 0x0341027e}, 
     2695+       {0x0000b0e4, 0x035f0340}, 
     2696+       {0x0000b0e8, 0x037f0360}, 
     2697+       {0x0000b0ec, 0x04400441}, 
     2698+       {0x0000b0f0, 0x0460045f}, 
     2699+       {0x0000b0f4, 0x0541047f}, 
     2700+       {0x0000b0f8, 0x055f0540}, 
     2701+       {0x0000b0fc, 0x057f0560}, 
     2702+       {0x0000b100, 0x06400641}, 
     2703+       {0x0000b104, 0x0660065f}, 
     2704+       {0x0000b108, 0x067e067f}, 
     2705+       {0x0000b10c, 0x07410742}, 
     2706+       {0x0000b110, 0x075f0740}, 
     2707+       {0x0000b114, 0x077f0760}, 
     2708+       {0x0000b118, 0x07800781}, 
     2709+       {0x0000b11c, 0x07a0079f}, 
     2710+       {0x0000b120, 0x07c107bf}, 
     2711+       {0x0000b124, 0x000007c0}, 
     2712+       {0x0000b128, 0x00000000}, 
     2713+       {0x0000b12c, 0x00000000}, 
     2714+       {0x0000b130, 0x00000000}, 
     2715+       {0x0000b134, 0x00000000}, 
     2716+       {0x0000b138, 0x00000000}, 
     2717+       {0x0000b13c, 0x00000000}, 
     2718+       {0x0000b140, 0x003f0020}, 
     2719+       {0x0000b144, 0x00400041}, 
     2720+       {0x0000b148, 0x0140005f}, 
     2721+       {0x0000b14c, 0x0160015f}, 
     2722+       {0x0000b150, 0x017e017f}, 
     2723+       {0x0000b154, 0x02410242}, 
     2724+       {0x0000b158, 0x025f0240}, 
     2725+       {0x0000b15c, 0x027f0260}, 
     2726+       {0x0000b160, 0x0341027e}, 
     2727+       {0x0000b164, 0x035f0340}, 
     2728+       {0x0000b168, 0x037f0360}, 
     2729+       {0x0000b16c, 0x04400441}, 
     2730+       {0x0000b170, 0x0460045f}, 
     2731+       {0x0000b174, 0x0541047f}, 
     2732+       {0x0000b178, 0x055f0540}, 
     2733+       {0x0000b17c, 0x057f0560}, 
     2734+       {0x0000b180, 0x06400641}, 
     2735+       {0x0000b184, 0x0660065f}, 
     2736+       {0x0000b188, 0x067e067f}, 
     2737+       {0x0000b18c, 0x07410742}, 
     2738+       {0x0000b190, 0x075f0740}, 
     2739+       {0x0000b194, 0x077f0760}, 
     2740+       {0x0000b198, 0x07800781}, 
     2741+       {0x0000b19c, 0x07a0079f}, 
     2742+       {0x0000b1a0, 0x07c107bf}, 
     2743+       {0x0000b1a4, 0x000007c0}, 
     2744+       {0x0000b1a8, 0x00000000}, 
     2745+       {0x0000b1ac, 0x00000000}, 
     2746+       {0x0000b1b0, 0x00000000}, 
     2747+       {0x0000b1b4, 0x00000000}, 
     2748+       {0x0000b1b8, 0x00000000}, 
     2749+       {0x0000b1bc, 0x00000000}, 
     2750+       {0x0000b1c0, 0x00000000}, 
     2751+       {0x0000b1c4, 0x00000000}, 
     2752+       {0x0000b1c8, 0x00000000}, 
     2753+       {0x0000b1cc, 0x00000000}, 
     2754+       {0x0000b1d0, 0x00000000}, 
     2755+       {0x0000b1d4, 0x00000000}, 
     2756+       {0x0000b1d8, 0x00000000}, 
     2757+       {0x0000b1dc, 0x00000000}, 
     2758+       {0x0000b1e0, 0x00000000}, 
     2759+       {0x0000b1e4, 0x00000000}, 
     2760+       {0x0000b1e8, 0x00000000}, 
     2761+       {0x0000b1ec, 0x00000000}, 
     2762+       {0x0000b1f0, 0x00000396}, 
     2763+       {0x0000b1f4, 0x00000396}, 
     2764+       {0x0000b1f8, 0x00000396}, 
     2765+       {0x0000b1fc, 0x00000196}, 
     2766+}; 
     2767+ 
     2768+static const u32 ar9462_1p0_mac_postamble[][5] = { 
     2769+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     2770+       {0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160}, 
     2771+       {0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c}, 
     2772+       {0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38}, 
     2773+       {0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00}, 
     2774+       {0x0000801c, 0x128d8027, 0x128d804f, 0x12e00057, 0x12e0002b}, 
     2775+       {0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810}, 
     2776+       {0x000081d0, 0x00003210, 0x00003210, 0x0000320a, 0x0000320a}, 
     2777+       {0x00008318, 0x00003e80, 0x00007d00, 0x00006880, 0x00003440}, 
     2778+}; 
     2779+ 
     2780+static const u32 ar9462_1p0_mac_postamble_emulation[][5] = { 
     2781+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     2782+       {0x00008014, 0x10f810f8, 0x10f810f8, 0x10f810f8, 0x10f810f8}, 
     2783+       {0x0000801c, 0x0e8d8017, 0x0e8d8017, 0x0e8d8017, 0x0e8d8017}, 
     2784+}; 
     2785+ 
     2786+static const u32 ar9462_1p0_tx_gain_table_baseband_postamble_emulation[][5] = { 
     2787+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     2788+       {0x0000a410, 0x000000d5, 0x000000d5, 0x000000d5, 0x000000d5}, 
     2789+       {0x0000a500, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     2790+       {0x0000a504, 0x00004002, 0x00004002, 0x00004002, 0x00004002}, 
     2791+       {0x0000a508, 0x00008004, 0x00008004, 0x00008004, 0x00008004}, 
     2792+       {0x0000a510, 0x0001000c, 0x0001000c, 0x0001000c, 0x0001000c}, 
     2793+       {0x0000a514, 0x0001420b, 0x0001420b, 0x0001420b, 0x0001420b}, 
     2794+       {0x0000a518, 0x0001824a, 0x0001824a, 0x0001824a, 0x0001824a}, 
     2795+       {0x0000a51c, 0x0001c44a, 0x0001c44a, 0x0001c44a, 0x0001c44a}, 
     2796+       {0x0000a520, 0x0002064a, 0x0002064a, 0x0002064a, 0x0002064a}, 
     2797+       {0x0000a524, 0x0002484a, 0x0002484a, 0x0002484a, 0x0002484a}, 
     2798+       {0x0000a528, 0x00028a4a, 0x00028a4a, 0x00028a4a, 0x00028a4a}, 
     2799+       {0x0000a52c, 0x0002cc4a, 0x0002cc4a, 0x0002cc4a, 0x0002cc4a}, 
     2800+       {0x0000a530, 0x00030e4a, 0x00030e4a, 0x00030e4a, 0x00030e4a}, 
     2801+       {0x0000a534, 0x00034e8a, 0x00034e8a, 0x00034e8a, 0x00034e8a}, 
     2802+}; 
     2803+ 
     2804+static const u32 ar9462_1p0_radio_postamble[][5] = { 
     2805+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     2806+       {0x0001609c, 0x0b8ee524, 0x0b8ee524, 0x0b8ee524, 0x0b8ee524}, 
     2807+       {0x000160ac, 0xa4646c08, 0xa4646c08, 0x24646c08, 0x24646c08}, 
     2808+       {0x000160b0, 0x01d67f70, 0x01d67f70, 0x01d67f70, 0x01d67f70}, 
     2809+       {0x0001610c, 0x48000000, 0x40000000, 0x40000000, 0x40000000}, 
     2810+       {0x00016140, 0x10804008, 0x10804008, 0x50804008, 0x50804008}, 
     2811+       {0x0001650c, 0x48000000, 0x40000000, 0x40000000, 0x40000000}, 
     2812+       {0x00016540, 0x10804008, 0x10804008, 0x50804008, 0x50804008}, 
     2813+}; 
     2814+ 
     2815+static const u32 ar9462_1p0_soc_postamble_emulation[][5] = { 
     2816+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     2817+       {0x00007010, 0x00001133, 0x00001133, 0x00001133, 0x00001133}, 
     2818+}; 
     2819+ 
     2820+static const u32 ar9462_1p0_baseband_core[][2] = { 
     2821+       /* Addr      allmodes  */ 
     2822+       {0x00009800, 0xafe68e30}, 
     2823+       {0x00009804, 0xfd14e000}, 
     2824+       {0x00009808, 0x9c0a9f6b}, 
     2825+       {0x0000980c, 0x04900000}, 
     2826+       {0x00009814, 0x9280c00a}, 
     2827+       {0x00009818, 0x00000000}, 
     2828+       {0x0000981c, 0x00020028}, 
     2829+       {0x00009834, 0x6400a290}, 
     2830+       {0x00009838, 0x0108ecff}, 
     2831+       {0x0000983c, 0x0d000600}, 
     2832+       {0x00009880, 0x201fff00}, 
     2833+       {0x00009884, 0x00001042}, 
     2834+       {0x000098a4, 0x00200400}, 
     2835+       {0x000098b0, 0x32840bbe}, 
     2836+       {0x000098d0, 0x004b6a8e}, 
     2837+       {0x000098d4, 0x00000820}, 
     2838+       {0x000098dc, 0x00000000}, 
     2839+       {0x000098e4, 0x01ffffff}, 
     2840+       {0x000098e8, 0x01ffffff}, 
     2841+       {0x000098ec, 0x01ffffff}, 
     2842+       {0x000098f0, 0x00000000}, 
     2843+       {0x000098f4, 0x00000000}, 
     2844+       {0x00009c04, 0xff55ff55}, 
     2845+       {0x00009c08, 0x0320ff55}, 
     2846+       {0x00009c0c, 0x00000000}, 
     2847+       {0x00009c10, 0x00000000}, 
     2848+       {0x00009c14, 0x00046384}, 
     2849+       {0x00009c18, 0x05b6b440}, 
     2850+       {0x00009c1c, 0x00b6b440}, 
     2851+       {0x00009d00, 0xc080a333}, 
     2852+       {0x00009d04, 0x40206c10}, 
     2853+       {0x00009d08, 0x009c4060}, 
     2854+       {0x00009d0c, 0x9883800a}, 
     2855+       {0x00009d10, 0x01834061}, 
     2856+       {0x00009d14, 0x00c0040b}, 
     2857+       {0x00009d18, 0x00000000}, 
     2858+       {0x00009e08, 0x0038230c}, 
     2859+       {0x00009e24, 0x990bb514}, 
     2860+       {0x00009e28, 0x0c6f0000}, 
     2861+       {0x00009e30, 0x06336f77}, 
     2862+       {0x00009e34, 0x6af6532f}, 
     2863+       {0x00009e38, 0x0cc80c00}, 
     2864+       {0x00009e40, 0x0d261820}, 
     2865+       {0x00009e4c, 0x00001004}, 
     2866+       {0x00009e50, 0x00ff03f1}, 
     2867+       {0x00009e54, 0x64c355c7}, 
     2868+       {0x00009e58, 0xfd897735}, 
     2869+       {0x00009e5c, 0xe9198724}, 
     2870+       {0x00009fc0, 0x803e4788}, 
     2871+       {0x00009fc4, 0x0001efb5}, 
     2872+       {0x00009fcc, 0x40000014}, 
     2873+       {0x00009fd0, 0x01193b93}, 
     2874+       {0x0000a20c, 0x00000000}, 
     2875+       {0x0000a220, 0x00000000}, 
     2876+       {0x0000a224, 0x00000000}, 
     2877+       {0x0000a228, 0x10002310}, 
     2878+       {0x0000a23c, 0x00000000}, 
     2879+       {0x0000a244, 0x0c000000}, 
     2880+       {0x0000a2a0, 0x00000001}, 
     2881+       {0x0000a2c0, 0x00000001}, 
     2882+       {0x0000a2c8, 0x00000000}, 
     2883+       {0x0000a2cc, 0x18c43433}, 
     2884+       {0x0000a2d4, 0x00000000}, 
     2885+       {0x0000a2ec, 0x00000000}, 
     2886+       {0x0000a2f0, 0x00000000}, 
     2887+       {0x0000a2f4, 0x00000000}, 
     2888+       {0x0000a2f8, 0x00000000}, 
     2889+       {0x0000a344, 0x00000000}, 
     2890+       {0x0000a34c, 0x00000000}, 
     2891+       {0x0000a350, 0x0000a000}, 
     2892+       {0x0000a364, 0x00000000}, 
     2893+       {0x0000a370, 0x00000000}, 
     2894+       {0x0000a390, 0x00000001}, 
     2895+       {0x0000a394, 0x00000444}, 
     2896+       {0x0000a398, 0x001f0e0f}, 
     2897+       {0x0000a39c, 0x0075393f}, 
     2898+       {0x0000a3a0, 0xb79f6427}, 
     2899+       {0x0000a3a4, 0x00000000}, 
     2900+       {0x0000a3a8, 0xaaaaaaaa}, 
     2901+       {0x0000a3ac, 0x3c466478}, 
     2902+       {0x0000a3c0, 0x20202020}, 
     2903+       {0x0000a3c4, 0x22222220}, 
     2904+       {0x0000a3c8, 0x20200020}, 
     2905+       {0x0000a3cc, 0x20202020}, 
     2906+       {0x0000a3d0, 0x20202020}, 
     2907+       {0x0000a3d4, 0x20202020}, 
     2908+       {0x0000a3d8, 0x20202020}, 
     2909+       {0x0000a3dc, 0x20202020}, 
     2910+       {0x0000a3e0, 0x20202020}, 
     2911+       {0x0000a3e4, 0x20202020}, 
     2912+       {0x0000a3e8, 0x20202020}, 
     2913+       {0x0000a3ec, 0x20202020}, 
     2914+       {0x0000a3f0, 0x00000000}, 
     2915+       {0x0000a3f4, 0x00000006}, 
     2916+       {0x0000a3f8, 0x0c9bd380}, 
     2917+       {0x0000a3fc, 0x000f0f01}, 
     2918+       {0x0000a400, 0x8fa91f01}, 
     2919+       {0x0000a404, 0x00000000}, 
     2920+       {0x0000a408, 0x0e79e5c6}, 
     2921+       {0x0000a40c, 0x00820820}, 
     2922+       {0x0000a414, 0x1ce739ce}, 
     2923+       {0x0000a418, 0x2d001dce}, 
     2924+       {0x0000a41c, 0x1ce739ce}, 
     2925+       {0x0000a420, 0x000001ce}, 
     2926+       {0x0000a424, 0x1ce739ce}, 
     2927+       {0x0000a428, 0x000001ce}, 
     2928+       {0x0000a42c, 0x1ce739ce}, 
     2929+       {0x0000a430, 0x1ce739ce}, 
     2930+       {0x0000a434, 0x00000000}, 
     2931+       {0x0000a438, 0x00001801}, 
     2932+       {0x0000a43c, 0x00100000}, 
     2933+       {0x0000a440, 0x00000000}, 
     2934+       {0x0000a444, 0x00000000}, 
     2935+       {0x0000a448, 0x05000080}, 
     2936+       {0x0000a44c, 0x00000001}, 
     2937+       {0x0000a450, 0x00010000}, 
     2938+       {0x0000a458, 0x00000000}, 
     2939+       {0x0000a644, 0xbfad9d74}, 
     2940+       {0x0000a648, 0x0048060a}, 
     2941+       {0x0000a64c, 0x00003c37}, 
     2942+       {0x0000a670, 0x03020100}, 
     2943+       {0x0000a674, 0x09080504}, 
     2944+       {0x0000a678, 0x0d0c0b0a}, 
     2945+       {0x0000a67c, 0x13121110}, 
     2946+       {0x0000a680, 0x31301514}, 
     2947+       {0x0000a684, 0x35343332}, 
     2948+       {0x0000a688, 0x00000036}, 
     2949+       {0x0000a690, 0x00000838}, 
     2950+       {0x0000a6b0, 0x0000000a}, 
     2951+       {0x0000a6b4, 0x28f12c01}, 
     2952+       {0x0000a7c0, 0x00000000}, 
     2953+       {0x0000a7c4, 0xfffffffc}, 
     2954+       {0x0000a7c8, 0x00000000}, 
     2955+       {0x0000a7cc, 0x00000000}, 
     2956+       {0x0000a7d0, 0x00000000}, 
     2957+       {0x0000a7d4, 0x00000004}, 
     2958+       {0x0000a7dc, 0x00000001}, 
     2959+       {0x0000a8d0, 0x004b6a8e}, 
     2960+       {0x0000a8d4, 0x00000820}, 
     2961+       {0x0000a8dc, 0x00000000}, 
     2962+       {0x0000a8f0, 0x00000000}, 
     2963+       {0x0000a8f4, 0x00000000}, 
     2964+       {0x0000b2d0, 0x00000080}, 
     2965+       {0x0000b2d4, 0x00000000}, 
     2966+       {0x0000b2ec, 0x00000000}, 
     2967+       {0x0000b2f0, 0x00000000}, 
     2968+       {0x0000b2f4, 0x00000000}, 
     2969+       {0x0000b2f8, 0x00000000}, 
     2970+       {0x0000b408, 0x0e79e5c0}, 
     2971+       {0x0000b40c, 0x00820820}, 
     2972+       {0x0000b420, 0x00000000}, 
     2973+       {0x0000b6b0, 0x0000000a}, 
     2974+       {0x0000b6b4, 0x00c00001}, 
     2975+}; 
     2976+ 
     2977+static const u32 ar9462_1p0_baseband_postamble[][5] = { 
     2978+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     2979+       {0x00009810, 0xd00a8005, 0xd00a8005, 0xd00a8011, 0xd00a8011}, 
     2980+       {0x00009820, 0x206a022e, 0x206a022e, 0x206a012e, 0x206a012e}, 
     2981+       {0x00009824, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0}, 
     2982+       {0x00009828, 0x06903081, 0x06903081, 0x06903881, 0x06903881}, 
     2983+       {0x0000982c, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4}, 
     2984+       {0x00009830, 0x0000059c, 0x0000059c, 0x0000119c, 0x0000119c}, 
     2985+       {0x00009c00, 0x000000c4, 0x000000c4, 0x000000c4, 0x000000c4}, 
     2986+       {0x00009e00, 0x0372111a, 0x0372111a, 0x037216a0, 0x037216a0}, 
     2987+       {0x00009e04, 0x001c2020, 0x001c2020, 0x001c2020, 0x001c2020}, 
     2988+       {0x00009e0c, 0x6c4000e2, 0x6d4000e2, 0x6d4000e2, 0x6c4000e2}, 
     2989+       {0x00009e10, 0x7ec88d2e, 0x7ec88d2e, 0x7ec84d2e, 0x7ec84d2e}, 
     2990+       {0x00009e14, 0x37b95d5e, 0x37b9605e, 0x3379605e, 0x33795d5e}, 
     2991+       {0x00009e18, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     2992+       {0x00009e1c, 0x0001cf9c, 0x0001cf9c, 0x00021f9c, 0x00021f9c}, 
     2993+       {0x00009e20, 0x000003b5, 0x000003b5, 0x000003ce, 0x000003ce}, 
     2994+       {0x00009e2c, 0x0000001c, 0x0000001c, 0x00000021, 0x00000021}, 
     2995+       {0x00009e3c, 0xcf946220, 0xcf946220, 0xcfd5c782, 0xcfd5c782}, 
     2996+       {0x00009e44, 0x02321e27, 0x02321e27, 0x02291e27, 0x02291e27}, 
     2997+       {0x00009e48, 0x5030201a, 0x5030201a, 0x50302012, 0x50302012}, 
     2998+       {0x00009fc8, 0x0003f000, 0x0003f000, 0x0001a000, 0x0001a000}, 
     2999+       {0x0000a204, 0x0131b7c0, 0x0131b7c4, 0x0131b7c4, 0x0131b7c0}, 
     3000+       {0x0000a208, 0x00000104, 0x00000104, 0x00000004, 0x00000004}, 
     3001+       {0x0000a22c, 0x01026a2f, 0x01026a27, 0x01026a2f, 0x01026a2f}, 
     3002+       {0x0000a230, 0x0000400a, 0x00004014, 0x00004016, 0x0000400b}, 
     3003+       {0x0000a234, 0x00000fff, 0x10000fff, 0x10000fff, 0x00000fff}, 
     3004+       {0x0000a238, 0xffb81018, 0xffb81018, 0xffb81018, 0xffb81018}, 
     3005+       {0x0000a250, 0x00000000, 0x00000000, 0x00000210, 0x00000108}, 
     3006+       {0x0000a254, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898}, 
     3007+       {0x0000a258, 0x02020002, 0x02020002, 0x02020002, 0x02020002}, 
     3008+       {0x0000a25c, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e}, 
     3009+       {0x0000a260, 0x0a021501, 0x0a021501, 0x3a021501, 0x3a021501}, 
     3010+       {0x0000a264, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, 
     3011+       {0x0000a280, 0x00000007, 0x00000007, 0x0000000b, 0x0000000b}, 
     3012+       {0x0000a284, 0x00000000, 0x00000000, 0x00000150, 0x00000150}, 
     3013+       {0x0000a288, 0x00000110, 0x00000110, 0x00100110, 0x00100110}, 
     3014+       {0x0000a28c, 0x00022222, 0x00022222, 0x00022222, 0x00022222}, 
     3015+       {0x0000a2c4, 0x00158d18, 0x00158d18, 0x00158d18, 0x00158d18}, 
     3016+       {0x0000a2d0, 0x00041981, 0x00041981, 0x00041981, 0x00041982}, 
     3017+       {0x0000a2d8, 0x7999a83b, 0x7999a83b, 0x7999a83b, 0x7999a83b}, 
     3018+       {0x0000a358, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     3019+       {0x0000a830, 0x0000019c, 0x0000019c, 0x0000019c, 0x0000019c}, 
     3020+       {0x0000ae04, 0x001c0000, 0x001c0000, 0x001c0000, 0x00100000}, 
     3021+       {0x0000ae18, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     3022+       {0x0000ae1c, 0x0000019c, 0x0000019c, 0x0000019c, 0x0000019c}, 
     3023+       {0x0000ae20, 0x000001b5, 0x000001b5, 0x000001ce, 0x000001ce}, 
     3024+       {0x0000b284, 0x00000000, 0x00000000, 0x00000550, 0x00000550}, 
     3025+}; 
     3026+ 
     3027+static const u32 ar9462_modes_fast_clock_1p0[][3] = { 
     3028+       /* Addr      5G_HT20     5G_HT40   */ 
     3029+       {0x00001030, 0x00000268, 0x000004d0}, 
     3030+       {0x00001070, 0x0000018c, 0x00000318}, 
     3031+       {0x000010b0, 0x00000fd0, 0x00001fa0}, 
     3032+       {0x00008014, 0x044c044c, 0x08980898}, 
     3033+       {0x0000801c, 0x148ec02b, 0x148ec057}, 
     3034+       {0x00008318, 0x000044c0, 0x00008980}, 
     3035+       {0x00009e00, 0x0372131c, 0x0372131c}, 
     3036+       {0x0000a230, 0x0000400b, 0x00004016}, 
     3037+       {0x0000a254, 0x00000898, 0x00001130}, 
     3038+}; 
     3039+ 
     3040+static const u32 ar9462_modes_low_ob_db_tx_gain_table_1p0[][5] = { 
     3041+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     3042+       {0x0000a2dc, 0x0380c7fc, 0x0380c7fc, 0x03aaa352, 0x03aaa352}, 
     3043+       {0x0000a2e0, 0x0000f800, 0x0000f800, 0x03ccc584, 0x03ccc584}, 
     3044+       {0x0000a2e4, 0x03ff0000, 0x03ff0000, 0x03f0f800, 0x03f0f800}, 
     3045+       {0x0000a2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000}, 
     3046+       {0x0000a410, 0x000050d9, 0x000050d9, 0x000050d9, 0x000050d9}, 
     3047+       {0x0000a500, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     3048+       {0x0000a504, 0x06000003, 0x06000003, 0x04000002, 0x04000002}, 
     3049+       {0x0000a508, 0x0a000020, 0x0a000020, 0x08000004, 0x08000004}, 
     3050+       {0x0000a50c, 0x10000023, 0x10000023, 0x0b000200, 0x0b000200}, 
     3051+       {0x0000a510, 0x16000220, 0x16000220, 0x0f000202, 0x0f000202}, 
     3052+       {0x0000a514, 0x1c000223, 0x1c000223, 0x12000400, 0x12000400}, 
     3053+       {0x0000a518, 0x21020220, 0x21020220, 0x16000402, 0x16000402}, 
     3054+       {0x0000a51c, 0x27020223, 0x27020223, 0x19000404, 0x19000404}, 
     3055+       {0x0000a520, 0x2b022220, 0x2b022220, 0x1c000603, 0x1c000603}, 
     3056+       {0x0000a524, 0x2f022222, 0x2f022222, 0x21000a02, 0x21000a02}, 
     3057+       {0x0000a528, 0x34022225, 0x34022225, 0x25000a04, 0x25000a04}, 
     3058+       {0x0000a52c, 0x3a02222a, 0x3a02222a, 0x28000a20, 0x28000a20}, 
     3059+       {0x0000a530, 0x3e02222c, 0x3e02222c, 0x2c000e20, 0x2c000e20}, 
     3060+       {0x0000a534, 0x4202242a, 0x4202242a, 0x30000e22, 0x30000e22}, 
     3061+       {0x0000a538, 0x4702244a, 0x4702244a, 0x34000e24, 0x34000e24}, 
     3062+       {0x0000a53c, 0x4b02244c, 0x4b02244c, 0x38001640, 0x38001640}, 
     3063+       {0x0000a540, 0x4e02246c, 0x4e02246c, 0x3c001660, 0x3c001660}, 
     3064+       {0x0000a544, 0x5302266c, 0x5302266c, 0x3f001861, 0x3f001861}, 
     3065+       {0x0000a548, 0x5702286c, 0x5702286c, 0x43001a81, 0x43001a81}, 
     3066+       {0x0000a54c, 0x5c04286b, 0x5c04286b, 0x47001a83, 0x47001a83}, 
     3067+       {0x0000a550, 0x61042a6c, 0x61042a6c, 0x4a001c84, 0x4a001c84}, 
     3068+       {0x0000a554, 0x66062a6c, 0x66062a6c, 0x4e001ce3, 0x4e001ce3}, 
     3069+       {0x0000a558, 0x6b062e6c, 0x6b062e6c, 0x52001ce5, 0x52001ce5}, 
     3070+       {0x0000a55c, 0x7006308c, 0x7006308c, 0x56001ce9, 0x56001ce9}, 
     3071+       {0x0000a560, 0x730a308a, 0x730a308a, 0x5a001ceb, 0x5a001ceb}, 
     3072+       {0x0000a564, 0x770a308c, 0x770a308c, 0x5d001eec, 0x5d001eec}, 
     3073+       {0x0000a568, 0x770a308c, 0x770a308c, 0x5d001eec, 0x5d001eec}, 
     3074+       {0x0000a56c, 0x770a308c, 0x770a308c, 0x5d001eec, 0x5d001eec}, 
     3075+       {0x0000a570, 0x770a308c, 0x770a308c, 0x5d001eec, 0x5d001eec}, 
     3076+       {0x0000a574, 0x770a308c, 0x770a308c, 0x5d001eec, 0x5d001eec}, 
     3077+       {0x0000a578, 0x770a308c, 0x770a308c, 0x5d001eec, 0x5d001eec}, 
     3078+       {0x0000a57c, 0x770a308c, 0x770a308c, 0x5d001eec, 0x5d001eec}, 
     3079+       {0x0000a600, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     3080+       {0x0000a604, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     3081+       {0x0000a608, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     3082+       {0x0000a60c, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     3083+       {0x0000a610, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     3084+       {0x0000a614, 0x01404000, 0x01404000, 0x01404000, 0x01404000}, 
     3085+       {0x0000a618, 0x01404501, 0x01404501, 0x01404501, 0x01404501}, 
     3086+       {0x0000a61c, 0x02008802, 0x02008802, 0x02008501, 0x02008501}, 
     3087+       {0x0000a620, 0x0300cc03, 0x0300cc03, 0x0280ca03, 0x0280ca03}, 
     3088+       {0x0000a624, 0x0300cc03, 0x0300cc03, 0x03010c04, 0x03010c04}, 
     3089+       {0x0000a628, 0x0300cc03, 0x0300cc03, 0x04014c04, 0x04014c04}, 
     3090+       {0x0000a62c, 0x03810c03, 0x03810c03, 0x04015005, 0x04015005}, 
     3091+       {0x0000a630, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005}, 
     3092+       {0x0000a634, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005}, 
     3093+       {0x0000a638, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005}, 
     3094+       {0x0000a63c, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005}, 
     3095+       {0x0000b2dc, 0x0380c7fc, 0x0380c7fc, 0x03aaa352, 0x03aaa352}, 
     3096+       {0x0000b2e0, 0x0000f800, 0x0000f800, 0x03ccc584, 0x03ccc584}, 
     3097+       {0x0000b2e4, 0x03ff0000, 0x03ff0000, 0x03f0f800, 0x03f0f800}, 
     3098+       {0x0000b2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000}, 
     3099+       {0x00016044, 0x012482d4, 0x012482d4, 0x012482d4, 0x012482d4}, 
     3100+       {0x00016048, 0x64992060, 0x64992060, 0x64992060, 0x64992060}, 
     3101+       {0x00016444, 0x012482d4, 0x012482d4, 0x012482d4, 0x012482d4}, 
     3102+       {0x00016448, 0x64992000, 0x64992000, 0x64992000, 0x64992000}, 
     3103+}; 
     3104+ 
     3105+static const u32 ar9462_1p0_soc_postamble[][5] = { 
     3106+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     3107+       {0x00007010, 0x00002233, 0x00002233, 0x00002233, 0x00002233}, 
     3108+}; 
     3109+ 
     3110+static const u32 ar9462_common_mixed_rx_gain_table_1p0[][2] = { 
     3111+       /* Addr      allmodes  */ 
     3112+       {0x0000a000, 0x00010000}, 
     3113+       {0x0000a004, 0x00030002}, 
     3114+       {0x0000a008, 0x00050004}, 
     3115+       {0x0000a00c, 0x00810080}, 
     3116+       {0x0000a010, 0x00830082}, 
     3117+       {0x0000a014, 0x01810180}, 
     3118+       {0x0000a018, 0x01830182}, 
     3119+       {0x0000a01c, 0x01850184}, 
     3120+       {0x0000a020, 0x01890188}, 
     3121+       {0x0000a024, 0x018b018a}, 
     3122+       {0x0000a028, 0x018d018c}, 
     3123+       {0x0000a02c, 0x03820190}, 
     3124+       {0x0000a030, 0x03840383}, 
     3125+       {0x0000a034, 0x03880385}, 
     3126+       {0x0000a038, 0x038a0389}, 
     3127+       {0x0000a03c, 0x038c038b}, 
     3128+       {0x0000a040, 0x0390038d}, 
     3129+       {0x0000a044, 0x03920391}, 
     3130+       {0x0000a048, 0x03940393}, 
     3131+       {0x0000a04c, 0x03960395}, 
     3132+       {0x0000a050, 0x00000000}, 
     3133+       {0x0000a054, 0x00000000}, 
     3134+       {0x0000a058, 0x00000000}, 
     3135+       {0x0000a05c, 0x00000000}, 
     3136+       {0x0000a060, 0x00000000}, 
     3137+       {0x0000a064, 0x00000000}, 
     3138+       {0x0000a068, 0x00000000}, 
     3139+       {0x0000a06c, 0x00000000}, 
     3140+       {0x0000a070, 0x00000000}, 
     3141+       {0x0000a074, 0x00000000}, 
     3142+       {0x0000a078, 0x00000000}, 
     3143+       {0x0000a07c, 0x00000000}, 
     3144+       {0x0000a080, 0x29292929}, 
     3145+       {0x0000a084, 0x29292929}, 
     3146+       {0x0000a088, 0x29292929}, 
     3147+       {0x0000a08c, 0x29292929}, 
     3148+       {0x0000a090, 0x22292929}, 
     3149+       {0x0000a094, 0x1d1d2222}, 
     3150+       {0x0000a098, 0x0c111117}, 
     3151+       {0x0000a09c, 0x00030303}, 
     3152+       {0x0000a0a0, 0x00000000}, 
     3153+       {0x0000a0a4, 0x00000000}, 
     3154+       {0x0000a0a8, 0x00000000}, 
     3155+       {0x0000a0ac, 0x00000000}, 
     3156+       {0x0000a0b0, 0x00000000}, 
     3157+       {0x0000a0b4, 0x00000000}, 
     3158+       {0x0000a0b8, 0x00000000}, 
     3159+       {0x0000a0bc, 0x00000000}, 
     3160+       {0x0000a0c0, 0x001f0000}, 
     3161+       {0x0000a0c4, 0x01000101}, 
     3162+       {0x0000a0c8, 0x011e011f}, 
     3163+       {0x0000a0cc, 0x011c011d}, 
     3164+       {0x0000a0d0, 0x02030204}, 
     3165+       {0x0000a0d4, 0x02010202}, 
     3166+       {0x0000a0d8, 0x021f0200}, 
     3167+       {0x0000a0dc, 0x0302021e}, 
     3168+       {0x0000a0e0, 0x03000301}, 
     3169+       {0x0000a0e4, 0x031e031f}, 
     3170+       {0x0000a0e8, 0x0402031d}, 
     3171+       {0x0000a0ec, 0x04000401}, 
     3172+       {0x0000a0f0, 0x041e041f}, 
     3173+       {0x0000a0f4, 0x0502041d}, 
     3174+       {0x0000a0f8, 0x05000501}, 
     3175+       {0x0000a0fc, 0x051e051f}, 
     3176+       {0x0000a100, 0x06010602}, 
     3177+       {0x0000a104, 0x061f0600}, 
     3178+       {0x0000a108, 0x061d061e}, 
     3179+       {0x0000a10c, 0x07020703}, 
     3180+       {0x0000a110, 0x07000701}, 
     3181+       {0x0000a114, 0x00000000}, 
     3182+       {0x0000a118, 0x00000000}, 
     3183+       {0x0000a11c, 0x00000000}, 
     3184+       {0x0000a120, 0x00000000}, 
     3185+       {0x0000a124, 0x00000000}, 
     3186+       {0x0000a128, 0x00000000}, 
     3187+       {0x0000a12c, 0x00000000}, 
     3188+       {0x0000a130, 0x00000000}, 
     3189+       {0x0000a134, 0x00000000}, 
     3190+       {0x0000a138, 0x00000000}, 
     3191+       {0x0000a13c, 0x00000000}, 
     3192+       {0x0000a140, 0x001f0000}, 
     3193+       {0x0000a144, 0x01000101}, 
     3194+       {0x0000a148, 0x011e011f}, 
     3195+       {0x0000a14c, 0x011c011d}, 
     3196+       {0x0000a150, 0x02030204}, 
     3197+       {0x0000a154, 0x02010202}, 
     3198+       {0x0000a158, 0x021f0200}, 
     3199+       {0x0000a15c, 0x0302021e}, 
     3200+       {0x0000a160, 0x03000301}, 
     3201+       {0x0000a164, 0x031e031f}, 
     3202+       {0x0000a168, 0x0402031d}, 
     3203+       {0x0000a16c, 0x04000401}, 
     3204+       {0x0000a170, 0x041e041f}, 
     3205+       {0x0000a174, 0x0502041d}, 
     3206+       {0x0000a178, 0x05000501}, 
     3207+       {0x0000a17c, 0x051e051f}, 
     3208+       {0x0000a180, 0x06010602}, 
     3209+       {0x0000a184, 0x061f0600}, 
     3210+       {0x0000a188, 0x061d061e}, 
     3211+       {0x0000a18c, 0x07020703}, 
     3212+       {0x0000a190, 0x07000701}, 
     3213+       {0x0000a194, 0x00000000}, 
     3214+       {0x0000a198, 0x00000000}, 
     3215+       {0x0000a19c, 0x00000000}, 
     3216+       {0x0000a1a0, 0x00000000}, 
     3217+       {0x0000a1a4, 0x00000000}, 
     3218+       {0x0000a1a8, 0x00000000}, 
     3219+       {0x0000a1ac, 0x00000000}, 
     3220+       {0x0000a1b0, 0x00000000}, 
     3221+       {0x0000a1b4, 0x00000000}, 
     3222+       {0x0000a1b8, 0x00000000}, 
     3223+       {0x0000a1bc, 0x00000000}, 
     3224+       {0x0000a1c0, 0x00000000}, 
     3225+       {0x0000a1c4, 0x00000000}, 
     3226+       {0x0000a1c8, 0x00000000}, 
     3227+       {0x0000a1cc, 0x00000000}, 
     3228+       {0x0000a1d0, 0x00000000}, 
     3229+       {0x0000a1d4, 0x00000000}, 
     3230+       {0x0000a1d8, 0x00000000}, 
     3231+       {0x0000a1dc, 0x00000000}, 
     3232+       {0x0000a1e0, 0x00000000}, 
     3233+       {0x0000a1e4, 0x00000000}, 
     3234+       {0x0000a1e8, 0x00000000}, 
     3235+       {0x0000a1ec, 0x00000000}, 
     3236+       {0x0000a1f0, 0x00000396}, 
     3237+       {0x0000a1f4, 0x00000396}, 
     3238+       {0x0000a1f8, 0x00000396}, 
     3239+       {0x0000a1fc, 0x00000196}, 
     3240+       {0x0000b000, 0x00010000}, 
     3241+       {0x0000b004, 0x00030002}, 
     3242+       {0x0000b008, 0x00050004}, 
     3243+       {0x0000b00c, 0x00810080}, 
     3244+       {0x0000b010, 0x00830082}, 
     3245+       {0x0000b014, 0x01810180}, 
     3246+       {0x0000b018, 0x01830182}, 
     3247+       {0x0000b01c, 0x01850184}, 
     3248+       {0x0000b020, 0x02810280}, 
     3249+       {0x0000b024, 0x02830282}, 
     3250+       {0x0000b028, 0x02850284}, 
     3251+       {0x0000b02c, 0x02890288}, 
     3252+       {0x0000b030, 0x028b028a}, 
     3253+       {0x0000b034, 0x0388028c}, 
     3254+       {0x0000b038, 0x038a0389}, 
     3255+       {0x0000b03c, 0x038c038b}, 
     3256+       {0x0000b040, 0x0390038d}, 
     3257+       {0x0000b044, 0x03920391}, 
     3258+       {0x0000b048, 0x03940393}, 
     3259+       {0x0000b04c, 0x03960395}, 
     3260+       {0x0000b050, 0x00000000}, 
     3261+       {0x0000b054, 0x00000000}, 
     3262+       {0x0000b058, 0x00000000}, 
     3263+       {0x0000b05c, 0x00000000}, 
     3264+       {0x0000b060, 0x00000000}, 
     3265+       {0x0000b064, 0x00000000}, 
     3266+       {0x0000b068, 0x00000000}, 
     3267+       {0x0000b06c, 0x00000000}, 
     3268+       {0x0000b070, 0x00000000}, 
     3269+       {0x0000b074, 0x00000000}, 
     3270+       {0x0000b078, 0x00000000}, 
     3271+       {0x0000b07c, 0x00000000}, 
     3272+       {0x0000b080, 0x2a2d2f32}, 
     3273+       {0x0000b084, 0x21232328}, 
     3274+       {0x0000b088, 0x19191c1e}, 
     3275+       {0x0000b08c, 0x12141417}, 
     3276+       {0x0000b090, 0x07070e0e}, 
     3277+       {0x0000b094, 0x03030305}, 
     3278+       {0x0000b098, 0x00000003}, 
     3279+       {0x0000b09c, 0x00000000}, 
     3280+       {0x0000b0a0, 0x00000000}, 
     3281+       {0x0000b0a4, 0x00000000}, 
     3282+       {0x0000b0a8, 0x00000000}, 
     3283+       {0x0000b0ac, 0x00000000}, 
     3284+       {0x0000b0b0, 0x00000000}, 
     3285+       {0x0000b0b4, 0x00000000}, 
     3286+       {0x0000b0b8, 0x00000000}, 
     3287+       {0x0000b0bc, 0x00000000}, 
     3288+       {0x0000b0c0, 0x003f0020}, 
     3289+       {0x0000b0c4, 0x00400041}, 
     3290+       {0x0000b0c8, 0x0140005f}, 
     3291+       {0x0000b0cc, 0x0160015f}, 
     3292+       {0x0000b0d0, 0x017e017f}, 
     3293+       {0x0000b0d4, 0x02410242}, 
     3294+       {0x0000b0d8, 0x025f0240}, 
     3295+       {0x0000b0dc, 0x027f0260}, 
     3296+       {0x0000b0e0, 0x0341027e}, 
     3297+       {0x0000b0e4, 0x035f0340}, 
     3298+       {0x0000b0e8, 0x037f0360}, 
     3299+       {0x0000b0ec, 0x04400441}, 
     3300+       {0x0000b0f0, 0x0460045f}, 
     3301+       {0x0000b0f4, 0x0541047f}, 
     3302+       {0x0000b0f8, 0x055f0540}, 
     3303+       {0x0000b0fc, 0x057f0560}, 
     3304+       {0x0000b100, 0x06400641}, 
     3305+       {0x0000b104, 0x0660065f}, 
     3306+       {0x0000b108, 0x067e067f}, 
     3307+       {0x0000b10c, 0x07410742}, 
     3308+       {0x0000b110, 0x075f0740}, 
     3309+       {0x0000b114, 0x077f0760}, 
     3310+       {0x0000b118, 0x07800781}, 
     3311+       {0x0000b11c, 0x07a0079f}, 
     3312+       {0x0000b120, 0x07c107bf}, 
     3313+       {0x0000b124, 0x000007c0}, 
     3314+       {0x0000b128, 0x00000000}, 
     3315+       {0x0000b12c, 0x00000000}, 
     3316+       {0x0000b130, 0x00000000}, 
     3317+       {0x0000b134, 0x00000000}, 
     3318+       {0x0000b138, 0x00000000}, 
     3319+       {0x0000b13c, 0x00000000}, 
     3320+       {0x0000b140, 0x003f0020}, 
     3321+       {0x0000b144, 0x00400041}, 
     3322+       {0x0000b148, 0x0140005f}, 
     3323+       {0x0000b14c, 0x0160015f}, 
     3324+       {0x0000b150, 0x017e017f}, 
     3325+       {0x0000b154, 0x02410242}, 
     3326+       {0x0000b158, 0x025f0240}, 
     3327+       {0x0000b15c, 0x027f0260}, 
     3328+       {0x0000b160, 0x0341027e}, 
     3329+       {0x0000b164, 0x035f0340}, 
     3330+       {0x0000b168, 0x037f0360}, 
     3331+       {0x0000b16c, 0x04400441}, 
     3332+       {0x0000b170, 0x0460045f}, 
     3333+       {0x0000b174, 0x0541047f}, 
     3334+       {0x0000b178, 0x055f0540}, 
     3335+       {0x0000b17c, 0x057f0560}, 
     3336+       {0x0000b180, 0x06400641}, 
     3337+       {0x0000b184, 0x0660065f}, 
     3338+       {0x0000b188, 0x067e067f}, 
     3339+       {0x0000b18c, 0x07410742}, 
     3340+       {0x0000b190, 0x075f0740}, 
     3341+       {0x0000b194, 0x077f0760}, 
     3342+       {0x0000b198, 0x07800781}, 
     3343+       {0x0000b19c, 0x07a0079f}, 
     3344+       {0x0000b1a0, 0x07c107bf}, 
     3345+       {0x0000b1a4, 0x000007c0}, 
     3346+       {0x0000b1a8, 0x00000000}, 
     3347+       {0x0000b1ac, 0x00000000}, 
     3348+       {0x0000b1b0, 0x00000000}, 
     3349+       {0x0000b1b4, 0x00000000}, 
     3350+       {0x0000b1b8, 0x00000000}, 
     3351+       {0x0000b1bc, 0x00000000}, 
     3352+       {0x0000b1c0, 0x00000000}, 
     3353+       {0x0000b1c4, 0x00000000}, 
     3354+       {0x0000b1c8, 0x00000000}, 
     3355+       {0x0000b1cc, 0x00000000}, 
     3356+       {0x0000b1d0, 0x00000000}, 
     3357+       {0x0000b1d4, 0x00000000}, 
     3358+       {0x0000b1d8, 0x00000000}, 
     3359+       {0x0000b1dc, 0x00000000}, 
     3360+       {0x0000b1e0, 0x00000000}, 
     3361+       {0x0000b1e4, 0x00000000}, 
     3362+       {0x0000b1e8, 0x00000000}, 
     3363+       {0x0000b1ec, 0x00000000}, 
     3364+       {0x0000b1f0, 0x00000396}, 
     3365+       {0x0000b1f4, 0x00000396}, 
     3366+       {0x0000b1f8, 0x00000396}, 
     3367+       {0x0000b1fc, 0x00000196}, 
     3368+}; 
     3369+ 
     3370+static const u32 ar9462_pcie_phy_clkreq_disable_L1_1p0[][2] = { 
     3371+       /* Addr      allmodes  */ 
     3372+       {0x00018c00, 0x10013e5e}, 
     3373+       {0x00018c04, 0x000801d8}, 
     3374+       {0x00018c08, 0x0000580c}, 
     3375+}; 
     3376+ 
     3377+static const u32 ar9462_1p0_baseband_core_emulation[][2] = { 
     3378+       /* Addr      allmodes  */ 
     3379+       {0x00009800, 0xafa68e30}, 
     3380+       {0x00009884, 0x00002842}, 
     3381+       {0x00009c04, 0xff55ff55}, 
     3382+       {0x00009c08, 0x0320ff55}, 
     3383+       {0x00009e50, 0x00000000}, 
     3384+       {0x00009fcc, 0x00000014}, 
     3385+       {0x0000a344, 0x00000010}, 
     3386+       {0x0000a398, 0x00000000}, 
     3387+       {0x0000a39c, 0x71733d01}, 
     3388+       {0x0000a3a0, 0xd0ad5c12}, 
     3389+       {0x0000a3c0, 0x22222220}, 
     3390+       {0x0000a3c4, 0x22222222}, 
     3391+       {0x0000a404, 0x00418a11}, 
     3392+       {0x0000a418, 0x050001ce}, 
     3393+       {0x0000a438, 0x00001800}, 
     3394+       {0x0000a458, 0x01444452}, 
     3395+       {0x0000a644, 0x3fad9d74}, 
     3396+       {0x0000a690, 0x00000038}, 
     3397+}; 
     3398+ 
     3399+static const u32 ar9462_1p0_radio_core[][2] = { 
     3400+       /* Addr      allmodes  */ 
     3401+       {0x00016000, 0x36db6db6}, 
     3402+       {0x00016004, 0x6db6db40}, 
     3403+       {0x00016008, 0x73f00000}, 
     3404+       {0x0001600c, 0x00000000}, 
     3405+       {0x00016010, 0x6d820001}, 
     3406+       {0x00016040, 0x7f80fff8}, 
     3407+       {0x0001604c, 0x2699e04f}, 
     3408+       {0x00016050, 0x6db6db6c}, 
     3409+       {0x00016054, 0x6db60000}, 
     3410+       {0x00016058, 0x6c200000}, 
     3411+       {0x00016080, 0x00040000}, 
     3412+       {0x00016084, 0x9a68048c}, 
     3413+       {0x00016088, 0x54214514}, 
     3414+       {0x0001608c, 0x12030409}, 
     3415+       {0x00016090, 0x24926490}, 
     3416+       {0x00016098, 0xd2888888}, 
     3417+       {0x000160a0, 0x0a108ffe}, 
     3418+       {0x000160a4, 0x812fc490}, 
     3419+       {0x000160a8, 0x423c8000}, 
     3420+       {0x000160b4, 0x92000000}, 
     3421+       {0x000160b8, 0x0285dddc}, 
     3422+       {0x000160bc, 0x02908888}, 
     3423+       {0x000160c0, 0x00adb6d0}, 
     3424+       {0x000160c4, 0x6db6db60}, 
     3425+       {0x000160c8, 0x6db6db6c}, 
     3426+       {0x000160cc, 0x0de6c1b0}, 
     3427+       {0x00016100, 0x3fffbe04}, 
     3428+       {0x00016104, 0xfff80000}, 
     3429+       {0x00016108, 0x00200400}, 
     3430+       {0x00016110, 0x00000000}, 
     3431+       {0x00016144, 0x02084080}, 
     3432+       {0x00016148, 0x000080c0}, 
     3433+       {0x00016280, 0x050a0001}, 
     3434+       {0x00016284, 0x3d841400}, 
     3435+       {0x00016288, 0x00000000}, 
     3436+       {0x0001628c, 0xe3000000}, 
     3437+       {0x00016290, 0xa1005080}, 
     3438+       {0x00016294, 0x00000020}, 
     3439+       {0x00016298, 0x50a02900}, 
     3440+       {0x00016340, 0x121e4276}, 
     3441+       {0x00016344, 0x00300000}, 
     3442+       {0x00016400, 0x36db6db6}, 
     3443+       {0x00016404, 0x6db6db40}, 
     3444+       {0x00016408, 0x73f00000}, 
     3445+       {0x0001640c, 0x00000000}, 
     3446+       {0x00016410, 0x6c800001}, 
     3447+       {0x00016440, 0x7f80fff8}, 
     3448+       {0x0001644c, 0x4699e04f}, 
     3449+       {0x00016450, 0x6db6db6c}, 
     3450+       {0x00016454, 0x6db60000}, 
     3451+       {0x00016500, 0x3fffbe04}, 
     3452+       {0x00016504, 0xfff80000}, 
     3453+       {0x00016508, 0x00200400}, 
     3454+       {0x00016510, 0x00000000}, 
     3455+       {0x00016544, 0x02084080}, 
     3456+       {0x00016548, 0x000080c0}, 
     3457+}; 
     3458+ 
     3459+static const u32 ar9462_1p0_soc_preamble[][2] = { 
     3460+       /* Addr      allmodes  */ 
     3461+       {0x00007020, 0x00000000}, 
     3462+       {0x00007034, 0x00000002}, 
     3463+       {0x00007038, 0x000004c2}, 
     3464+}; 
     3465+ 
     3466+static const u32 ar9462_1p0_sys2ant[][2] = { 
     3467+       /* Addr      allmodes  */ 
     3468+       {0x00063120, 0x00801980}, 
     3469+}; 
     3470+ 
     3471+#endif /* INITVALS_9462_1P0_H */ 
     3472--- /dev/null 
     3473+++ b/drivers/net/wireless/ath/ath9k/ar9462_2p0_initvals.h 
     3474@@ -0,0 +1,1928 @@ 
     3475+/* 
     3476+ * Copyright (c) 2010 Atheros Communications Inc. 
     3477+ * 
     3478+ * Permission to use, copy, modify, and/or distribute this software for any 
     3479+ * purpose with or without fee is hereby granted, provided that the above 
     3480+ * copyright notice and this permission notice appear in all copies. 
     3481+ * 
     3482+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 
     3483+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 
     3484+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 
     3485+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
     3486+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
     3487+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 
     3488+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
     3489+ */ 
     3490+ 
     3491+#ifndef INITVALS_9462_2P0_H 
     3492+#define INITVALS_9462_2P0_H 
     3493+ 
     3494+/* AR9462 2.0 */ 
     3495+ 
     3496+static const u32 ar9462_modes_fast_clock_2p0[][3] = { 
     3497+       /* Addr      5G_HT20     5G_HT40   */ 
     3498+       {0x00001030, 0x00000268, 0x000004d0}, 
     3499+       {0x00001070, 0x0000018c, 0x00000318}, 
     3500+       {0x000010b0, 0x00000fd0, 0x00001fa0}, 
     3501+       {0x00008014, 0x044c044c, 0x08980898}, 
     3502+       {0x0000801c, 0x148ec02b, 0x148ec057}, 
     3503+       {0x00008318, 0x000044c0, 0x00008980}, 
     3504+       {0x00009e00, 0x0372131c, 0x0372131c}, 
     3505+       {0x0000a230, 0x0000400b, 0x00004016}, 
     3506+       {0x0000a254, 0x00000898, 0x00001130}, 
     3507+}; 
     3508+ 
     3509+static const u32 ar9462_pciephy_clkreq_enable_L1_2p0[][2] = { 
     3510+       /* Addr      allmodes  */ 
     3511+       {0x00018c00, 0x18253ede}, 
     3512+       {0x00018c04, 0x000801d8}, 
     3513+       {0x00018c08, 0x0003580c}, 
     3514+}; 
     3515+ 
     3516+static const u32 ar9462_2p0_baseband_postamble[][5] = { 
     3517+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     3518+       {0x00009810, 0xd00a8005, 0xd00a8005, 0xd00a8011, 0xd00a8011}, 
     3519+       {0x00009820, 0x206a022e, 0x206a022e, 0x206a012e, 0x206a012e}, 
     3520+       {0x00009824, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0}, 
     3521+       {0x00009828, 0x06903081, 0x06903081, 0x06903881, 0x06903881}, 
     3522+       {0x0000982c, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4}, 
     3523+       {0x00009830, 0x0000059c, 0x0000059c, 0x0000119c, 0x0000119c}, 
     3524+       {0x00009c00, 0x000000c4, 0x000000c4, 0x000000c4, 0x000000c4}, 
     3525+       {0x00009e00, 0x0372111a, 0x0372111a, 0x037216a0, 0x037216a0}, 
     3526+       {0x00009e04, 0x001c2020, 0x001c2020, 0x001c2020, 0x001c2020}, 
     3527+       {0x00009e0c, 0x6c4000e2, 0x6d4000e2, 0x6d4000e2, 0x6c4000e2}, 
     3528+       {0x00009e10, 0x7ec88d2e, 0x7ec88d2e, 0x7ec84d2e, 0x7ec84d2e}, 
     3529+       {0x00009e14, 0x37b95d5e, 0x37b9605e, 0x3039605e, 0x33795d5e}, 
     3530+       {0x00009e18, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     3531+       {0x00009e1c, 0x0001cf9c, 0x0001cf9c, 0x00021f9c, 0x00021f9c}, 
     3532+       {0x00009e20, 0x000003b5, 0x000003b5, 0x000003ce, 0x000003ce}, 
     3533+       {0x00009e2c, 0x0000001c, 0x0000001c, 0x00000021, 0x00000021}, 
     3534+       {0x00009e3c, 0xcf946220, 0xcf946220, 0xcfd5c782, 0xcfd5c782}, 
     3535+       {0x00009e44, 0xfe321e27, 0xfe321e27, 0xfe291e27, 0xfe291e27}, 
     3536+       {0x00009e48, 0x5030201a, 0x5030201a, 0x50302012, 0x50302012}, 
     3537+       {0x00009fc8, 0x0003f000, 0x0003f000, 0x0001a000, 0x0001a000}, 
     3538+       {0x0000a204, 0x013187c0, 0x013187c4, 0x013187c4, 0x013187c0}, 
     3539+       {0x0000a208, 0x00000104, 0x00000104, 0x00000004, 0x00000004}, 
     3540+       {0x0000a22c, 0x01026a2f, 0x01026a27, 0x01026a2f, 0x01026a2f}, 
     3541+       {0x0000a230, 0x0000400a, 0x00004014, 0x00004016, 0x0000400b}, 
     3542+       {0x0000a234, 0x00000fff, 0x10000fff, 0x10000fff, 0x00000fff}, 
     3543+       {0x0000a238, 0xffb81018, 0xffb81018, 0xffb81018, 0xffb81018}, 
     3544+       {0x0000a250, 0x00000000, 0x00000000, 0x00000210, 0x00000108}, 
     3545+       {0x0000a254, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898}, 
     3546+       {0x0000a258, 0x02020002, 0x02020002, 0x02020002, 0x02020002}, 
     3547+       {0x0000a25c, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e}, 
     3548+       {0x0000a260, 0x0a021501, 0x0a021501, 0x3a021501, 0x3a021501}, 
     3549+       {0x0000a264, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, 
     3550+       {0x0000a280, 0x00000007, 0x00000007, 0x0000000b, 0x0000000b}, 
     3551+       {0x0000a284, 0x00000000, 0x00000000, 0x00000150, 0x00000150}, 
     3552+       {0x0000a288, 0x00000110, 0x00000110, 0x00000110, 0x00000110}, 
     3553+       {0x0000a28c, 0x00022222, 0x00022222, 0x00022222, 0x00022222}, 
     3554+       {0x0000a2c4, 0x00158d18, 0x00158d18, 0x00158d18, 0x00158d18}, 
     3555+       {0x0000a2d0, 0x00041981, 0x00041981, 0x00041981, 0x00041982}, 
     3556+       {0x0000a2d8, 0x7999a83b, 0x7999a83b, 0x7999a83b, 0x7999a83b}, 
     3557+       {0x0000a358, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     3558+       {0x0000a830, 0x0000019c, 0x0000019c, 0x0000019c, 0x0000019c}, 
     3559+       {0x0000ae04, 0x001c0000, 0x001c0000, 0x001c0000, 0x00100000}, 
     3560+       {0x0000ae18, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     3561+       {0x0000ae1c, 0x0000019c, 0x0000019c, 0x0000019c, 0x0000019c}, 
     3562+       {0x0000ae20, 0x000001b5, 0x000001b5, 0x000001ce, 0x000001ce}, 
     3563+       {0x0000b284, 0x00000000, 0x00000000, 0x00000550, 0x00000550}, 
     3564+}; 
     3565+ 
     3566+static const u32 ar9462_2p0_mac_core_emulation[][2] = { 
     3567+       /* Addr      allmodes  */ 
     3568+       {0x00000030, 0x000e0085}, 
     3569+       {0x00000044, 0x00000008}, 
     3570+       {0x0000805c, 0xffffc7ff}, 
     3571+       {0x00008344, 0xaa4a105b}, 
     3572+}; 
     3573+ 
     3574+static const u32 ar9462_common_rx_gain_table_2p0[][2] = { 
     3575+       /* Addr      allmodes  */ 
     3576+       {0x0000a000, 0x00010000}, 
     3577+       {0x0000a004, 0x00030002}, 
     3578+       {0x0000a008, 0x00050004}, 
     3579+       {0x0000a00c, 0x00810080}, 
     3580+       {0x0000a010, 0x00830082}, 
     3581+       {0x0000a014, 0x01810180}, 
     3582+       {0x0000a018, 0x01830182}, 
     3583+       {0x0000a01c, 0x01850184}, 
     3584+       {0x0000a020, 0x01890188}, 
     3585+       {0x0000a024, 0x018b018a}, 
     3586+       {0x0000a028, 0x018d018c}, 
     3587+       {0x0000a02c, 0x01910190}, 
     3588+       {0x0000a030, 0x01930192}, 
     3589+       {0x0000a034, 0x01950194}, 
     3590+       {0x0000a038, 0x038a0196}, 
     3591+       {0x0000a03c, 0x038c038b}, 
     3592+       {0x0000a040, 0x0390038d}, 
     3593+       {0x0000a044, 0x03920391}, 
     3594+       {0x0000a048, 0x03940393}, 
     3595+       {0x0000a04c, 0x03960395}, 
     3596+       {0x0000a050, 0x00000000}, 
     3597+       {0x0000a054, 0x00000000}, 
     3598+       {0x0000a058, 0x00000000}, 
     3599+       {0x0000a05c, 0x00000000}, 
     3600+       {0x0000a060, 0x00000000}, 
     3601+       {0x0000a064, 0x00000000}, 
     3602+       {0x0000a068, 0x00000000}, 
     3603+       {0x0000a06c, 0x00000000}, 
     3604+       {0x0000a070, 0x00000000}, 
     3605+       {0x0000a074, 0x00000000}, 
     3606+       {0x0000a078, 0x00000000}, 
     3607+       {0x0000a07c, 0x00000000}, 
     3608+       {0x0000a080, 0x22222229}, 
     3609+       {0x0000a084, 0x1d1d1d1d}, 
     3610+       {0x0000a088, 0x1d1d1d1d}, 
     3611+       {0x0000a08c, 0x1d1d1d1d}, 
     3612+       {0x0000a090, 0x171d1d1d}, 
     3613+       {0x0000a094, 0x11111717}, 
     3614+       {0x0000a098, 0x00030311}, 
     3615+       {0x0000a09c, 0x00000000}, 
     3616+       {0x0000a0a0, 0x00000000}, 
     3617+       {0x0000a0a4, 0x00000000}, 
     3618+       {0x0000a0a8, 0x00000000}, 
     3619+       {0x0000a0ac, 0x00000000}, 
     3620+       {0x0000a0b0, 0x00000000}, 
     3621+       {0x0000a0b4, 0x00000000}, 
     3622+       {0x0000a0b8, 0x00000000}, 
     3623+       {0x0000a0bc, 0x00000000}, 
     3624+       {0x0000a0c0, 0x001f0000}, 
     3625+       {0x0000a0c4, 0x01000101}, 
     3626+       {0x0000a0c8, 0x011e011f}, 
     3627+       {0x0000a0cc, 0x011c011d}, 
     3628+       {0x0000a0d0, 0x02030204}, 
     3629+       {0x0000a0d4, 0x02010202}, 
     3630+       {0x0000a0d8, 0x021f0200}, 
     3631+       {0x0000a0dc, 0x0302021e}, 
     3632+       {0x0000a0e0, 0x03000301}, 
     3633+       {0x0000a0e4, 0x031e031f}, 
     3634+       {0x0000a0e8, 0x0402031d}, 
     3635+       {0x0000a0ec, 0x04000401}, 
     3636+       {0x0000a0f0, 0x041e041f}, 
     3637+       {0x0000a0f4, 0x0502041d}, 
     3638+       {0x0000a0f8, 0x05000501}, 
     3639+       {0x0000a0fc, 0x051e051f}, 
     3640+       {0x0000a100, 0x06010602}, 
     3641+       {0x0000a104, 0x061f0600}, 
     3642+       {0x0000a108, 0x061d061e}, 
     3643+       {0x0000a10c, 0x07020703}, 
     3644+       {0x0000a110, 0x07000701}, 
     3645+       {0x0000a114, 0x00000000}, 
     3646+       {0x0000a118, 0x00000000}, 
     3647+       {0x0000a11c, 0x00000000}, 
     3648+       {0x0000a120, 0x00000000}, 
     3649+       {0x0000a124, 0x00000000}, 
     3650+       {0x0000a128, 0x00000000}, 
     3651+       {0x0000a12c, 0x00000000}, 
     3652+       {0x0000a130, 0x00000000}, 
     3653+       {0x0000a134, 0x00000000}, 
     3654+       {0x0000a138, 0x00000000}, 
     3655+       {0x0000a13c, 0x00000000}, 
     3656+       {0x0000a140, 0x001f0000}, 
     3657+       {0x0000a144, 0x01000101}, 
     3658+       {0x0000a148, 0x011e011f}, 
     3659+       {0x0000a14c, 0x011c011d}, 
     3660+       {0x0000a150, 0x02030204}, 
     3661+       {0x0000a154, 0x02010202}, 
     3662+       {0x0000a158, 0x021f0200}, 
     3663+       {0x0000a15c, 0x0302021e}, 
     3664+       {0x0000a160, 0x03000301}, 
     3665+       {0x0000a164, 0x031e031f}, 
     3666+       {0x0000a168, 0x0402031d}, 
     3667+       {0x0000a16c, 0x04000401}, 
     3668+       {0x0000a170, 0x041e041f}, 
     3669+       {0x0000a174, 0x0502041d}, 
     3670+       {0x0000a178, 0x05000501}, 
     3671+       {0x0000a17c, 0x051e051f}, 
     3672+       {0x0000a180, 0x06010602}, 
     3673+       {0x0000a184, 0x061f0600}, 
     3674+       {0x0000a188, 0x061d061e}, 
     3675+       {0x0000a18c, 0x07020703}, 
     3676+       {0x0000a190, 0x07000701}, 
     3677+       {0x0000a194, 0x00000000}, 
     3678+       {0x0000a198, 0x00000000}, 
     3679+       {0x0000a19c, 0x00000000}, 
     3680+       {0x0000a1a0, 0x00000000}, 
     3681+       {0x0000a1a4, 0x00000000}, 
     3682+       {0x0000a1a8, 0x00000000}, 
     3683+       {0x0000a1ac, 0x00000000}, 
     3684+       {0x0000a1b0, 0x00000000}, 
     3685+       {0x0000a1b4, 0x00000000}, 
     3686+       {0x0000a1b8, 0x00000000}, 
     3687+       {0x0000a1bc, 0x00000000}, 
     3688+       {0x0000a1c0, 0x00000000}, 
     3689+       {0x0000a1c4, 0x00000000}, 
     3690+       {0x0000a1c8, 0x00000000}, 
     3691+       {0x0000a1cc, 0x00000000}, 
     3692+       {0x0000a1d0, 0x00000000}, 
     3693+       {0x0000a1d4, 0x00000000}, 
     3694+       {0x0000a1d8, 0x00000000}, 
     3695+       {0x0000a1dc, 0x00000000}, 
     3696+       {0x0000a1e0, 0x00000000}, 
     3697+       {0x0000a1e4, 0x00000000}, 
     3698+       {0x0000a1e8, 0x00000000}, 
     3699+       {0x0000a1ec, 0x00000000}, 
     3700+       {0x0000a1f0, 0x00000396}, 
     3701+       {0x0000a1f4, 0x00000396}, 
     3702+       {0x0000a1f8, 0x00000396}, 
     3703+       {0x0000a1fc, 0x00000196}, 
     3704+       {0x0000b000, 0x00010000}, 
     3705+       {0x0000b004, 0x00030002}, 
     3706+       {0x0000b008, 0x00050004}, 
     3707+       {0x0000b00c, 0x00810080}, 
     3708+       {0x0000b010, 0x00830082}, 
     3709+       {0x0000b014, 0x01810180}, 
     3710+       {0x0000b018, 0x01830182}, 
     3711+       {0x0000b01c, 0x01850184}, 
     3712+       {0x0000b020, 0x02810280}, 
     3713+       {0x0000b024, 0x02830282}, 
     3714+       {0x0000b028, 0x02850284}, 
     3715+       {0x0000b02c, 0x02890288}, 
     3716+       {0x0000b030, 0x028b028a}, 
     3717+       {0x0000b034, 0x0388028c}, 
     3718+       {0x0000b038, 0x038a0389}, 
     3719+       {0x0000b03c, 0x038c038b}, 
     3720+       {0x0000b040, 0x0390038d}, 
     3721+       {0x0000b044, 0x03920391}, 
     3722+       {0x0000b048, 0x03940393}, 
     3723+       {0x0000b04c, 0x03960395}, 
     3724+       {0x0000b050, 0x00000000}, 
     3725+       {0x0000b054, 0x00000000}, 
     3726+       {0x0000b058, 0x00000000}, 
     3727+       {0x0000b05c, 0x00000000}, 
     3728+       {0x0000b060, 0x00000000}, 
     3729+       {0x0000b064, 0x00000000}, 
     3730+       {0x0000b068, 0x00000000}, 
     3731+       {0x0000b06c, 0x00000000}, 
     3732+       {0x0000b070, 0x00000000}, 
     3733+       {0x0000b074, 0x00000000}, 
     3734+       {0x0000b078, 0x00000000}, 
     3735+       {0x0000b07c, 0x00000000}, 
     3736+       {0x0000b080, 0x2a2d2f32}, 
     3737+       {0x0000b084, 0x21232328}, 
     3738+       {0x0000b088, 0x19191c1e}, 
     3739+       {0x0000b08c, 0x12141417}, 
     3740+       {0x0000b090, 0x07070e0e}, 
     3741+       {0x0000b094, 0x03030305}, 
     3742+       {0x0000b098, 0x00000003}, 
     3743+       {0x0000b09c, 0x00000000}, 
     3744+       {0x0000b0a0, 0x00000000}, 
     3745+       {0x0000b0a4, 0x00000000}, 
     3746+       {0x0000b0a8, 0x00000000}, 
     3747+       {0x0000b0ac, 0x00000000}, 
     3748+       {0x0000b0b0, 0x00000000}, 
     3749+       {0x0000b0b4, 0x00000000}, 
     3750+       {0x0000b0b8, 0x00000000}, 
     3751+       {0x0000b0bc, 0x00000000}, 
     3752+       {0x0000b0c0, 0x003f0020}, 
     3753+       {0x0000b0c4, 0x00400041}, 
     3754+       {0x0000b0c8, 0x0140005f}, 
     3755+       {0x0000b0cc, 0x0160015f}, 
     3756+       {0x0000b0d0, 0x017e017f}, 
     3757+       {0x0000b0d4, 0x02410242}, 
     3758+       {0x0000b0d8, 0x025f0240}, 
     3759+       {0x0000b0dc, 0x027f0260}, 
     3760+       {0x0000b0e0, 0x0341027e}, 
     3761+       {0x0000b0e4, 0x035f0340}, 
     3762+       {0x0000b0e8, 0x037f0360}, 
     3763+       {0x0000b0ec, 0x04400441}, 
     3764+       {0x0000b0f0, 0x0460045f}, 
     3765+       {0x0000b0f4, 0x0541047f}, 
     3766+       {0x0000b0f8, 0x055f0540}, 
     3767+       {0x0000b0fc, 0x057f0560}, 
     3768+       {0x0000b100, 0x06400641}, 
     3769+       {0x0000b104, 0x0660065f}, 
     3770+       {0x0000b108, 0x067e067f}, 
     3771+       {0x0000b10c, 0x07410742}, 
     3772+       {0x0000b110, 0x075f0740}, 
     3773+       {0x0000b114, 0x077f0760}, 
     3774+       {0x0000b118, 0x07800781}, 
     3775+       {0x0000b11c, 0x07a0079f}, 
     3776+       {0x0000b120, 0x07c107bf}, 
     3777+       {0x0000b124, 0x000007c0}, 
     3778+       {0x0000b128, 0x00000000}, 
     3779+       {0x0000b12c, 0x00000000}, 
     3780+       {0x0000b130, 0x00000000}, 
     3781+       {0x0000b134, 0x00000000}, 
     3782+       {0x0000b138, 0x00000000}, 
     3783+       {0x0000b13c, 0x00000000}, 
     3784+       {0x0000b140, 0x003f0020}, 
     3785+       {0x0000b144, 0x00400041}, 
     3786+       {0x0000b148, 0x0140005f}, 
     3787+       {0x0000b14c, 0x0160015f}, 
     3788+       {0x0000b150, 0x017e017f}, 
     3789+       {0x0000b154, 0x02410242}, 
     3790+       {0x0000b158, 0x025f0240}, 
     3791+       {0x0000b15c, 0x027f0260}, 
     3792+       {0x0000b160, 0x0341027e}, 
     3793+       {0x0000b164, 0x035f0340}, 
     3794+       {0x0000b168, 0x037f0360}, 
     3795+       {0x0000b16c, 0x04400441}, 
     3796+       {0x0000b170, 0x0460045f}, 
     3797+       {0x0000b174, 0x0541047f}, 
     3798+       {0x0000b178, 0x055f0540}, 
     3799+       {0x0000b17c, 0x057f0560}, 
     3800+       {0x0000b180, 0x06400641}, 
     3801+       {0x0000b184, 0x0660065f}, 
     3802+       {0x0000b188, 0x067e067f}, 
     3803+       {0x0000b18c, 0x07410742}, 
     3804+       {0x0000b190, 0x075f0740}, 
     3805+       {0x0000b194, 0x077f0760}, 
     3806+       {0x0000b198, 0x07800781}, 
     3807+       {0x0000b19c, 0x07a0079f}, 
     3808+       {0x0000b1a0, 0x07c107bf}, 
     3809+       {0x0000b1a4, 0x000007c0}, 
     3810+       {0x0000b1a8, 0x00000000}, 
     3811+       {0x0000b1ac, 0x00000000}, 
     3812+       {0x0000b1b0, 0x00000000}, 
     3813+       {0x0000b1b4, 0x00000000}, 
     3814+       {0x0000b1b8, 0x00000000}, 
     3815+       {0x0000b1bc, 0x00000000}, 
     3816+       {0x0000b1c0, 0x00000000}, 
     3817+       {0x0000b1c4, 0x00000000}, 
     3818+       {0x0000b1c8, 0x00000000}, 
     3819+       {0x0000b1cc, 0x00000000}, 
     3820+       {0x0000b1d0, 0x00000000}, 
     3821+       {0x0000b1d4, 0x00000000}, 
     3822+       {0x0000b1d8, 0x00000000}, 
     3823+       {0x0000b1dc, 0x00000000}, 
     3824+       {0x0000b1e0, 0x00000000}, 
     3825+       {0x0000b1e4, 0x00000000}, 
     3826+       {0x0000b1e8, 0x00000000}, 
     3827+       {0x0000b1ec, 0x00000000}, 
     3828+       {0x0000b1f0, 0x00000396}, 
     3829+       {0x0000b1f4, 0x00000396}, 
     3830+       {0x0000b1f8, 0x00000396}, 
     3831+       {0x0000b1fc, 0x00000196}, 
     3832+}; 
     3833+ 
     3834+static const u32 ar9462_pciephy_clkreq_disable_L1_2p0[][2] = { 
     3835+       /* Addr      allmodes  */ 
     3836+       {0x00018c00, 0x18213ede}, 
     3837+       {0x00018c04, 0x000801d8}, 
     3838+       {0x00018c08, 0x0003580c}, 
     3839+}; 
     3840+ 
     3841+static const u32 ar9462_pciephy_pll_on_clkreq_disable_L1_2p0[][2] = { 
     3842+       /* Addr      allmodes  */ 
     3843+       {0x00018c00, 0x18212ede}, 
     3844+       {0x00018c04, 0x000801d8}, 
     3845+       {0x00018c08, 0x0003580c}, 
     3846+}; 
     3847+ 
     3848+static const u32 ar9462_2p0_sys3ant[][2] = { 
     3849+       /* Addr      allmodes  */ 
     3850+       {0x00063280, 0x00040807}, 
     3851+       {0x00063284, 0x104ccccc}, 
     3852+}; 
     3853+ 
     3854+static const u32 ar9462_common_rx_gain_table_ar9280_2p0[][2] = { 
     3855+       /* Addr      allmodes  */ 
     3856+       {0x0000a000, 0x02000101}, 
     3857+       {0x0000a004, 0x02000102}, 
     3858+       {0x0000a008, 0x02000103}, 
     3859+       {0x0000a00c, 0x02000104}, 
     3860+       {0x0000a010, 0x02000200}, 
     3861+       {0x0000a014, 0x02000201}, 
     3862+       {0x0000a018, 0x02000202}, 
     3863+       {0x0000a01c, 0x02000203}, 
     3864+       {0x0000a020, 0x02000204}, 
     3865+       {0x0000a024, 0x02000205}, 
     3866+       {0x0000a028, 0x02000208}, 
     3867+       {0x0000a02c, 0x02000302}, 
     3868+       {0x0000a030, 0x02000303}, 
     3869+       {0x0000a034, 0x02000304}, 
     3870+       {0x0000a038, 0x02000400}, 
     3871+       {0x0000a03c, 0x02010300}, 
     3872+       {0x0000a040, 0x02010301}, 
     3873+       {0x0000a044, 0x02010302}, 
     3874+       {0x0000a048, 0x02000500}, 
     3875+       {0x0000a04c, 0x02010400}, 
     3876+       {0x0000a050, 0x02020300}, 
     3877+       {0x0000a054, 0x02020301}, 
     3878+       {0x0000a058, 0x02020302}, 
     3879+       {0x0000a05c, 0x02020303}, 
     3880+       {0x0000a060, 0x02020400}, 
     3881+       {0x0000a064, 0x02030300}, 
     3882+       {0x0000a068, 0x02030301}, 
     3883+       {0x0000a06c, 0x02030302}, 
     3884+       {0x0000a070, 0x02030303}, 
     3885+       {0x0000a074, 0x02030400}, 
     3886+       {0x0000a078, 0x02040300}, 
     3887+       {0x0000a07c, 0x02040301}, 
     3888+       {0x0000a080, 0x02040302}, 
     3889+       {0x0000a084, 0x02040303}, 
     3890+       {0x0000a088, 0x02030500}, 
     3891+       {0x0000a08c, 0x02040400}, 
     3892+       {0x0000a090, 0x02050203}, 
     3893+       {0x0000a094, 0x02050204}, 
     3894+       {0x0000a098, 0x02050205}, 
     3895+       {0x0000a09c, 0x02040500}, 
     3896+       {0x0000a0a0, 0x02050301}, 
     3897+       {0x0000a0a4, 0x02050302}, 
     3898+       {0x0000a0a8, 0x02050303}, 
     3899+       {0x0000a0ac, 0x02050400}, 
     3900+       {0x0000a0b0, 0x02050401}, 
     3901+       {0x0000a0b4, 0x02050402}, 
     3902+       {0x0000a0b8, 0x02050403}, 
     3903+       {0x0000a0bc, 0x02050500}, 
     3904+       {0x0000a0c0, 0x02050501}, 
     3905+       {0x0000a0c4, 0x02050502}, 
     3906+       {0x0000a0c8, 0x02050503}, 
     3907+       {0x0000a0cc, 0x02050504}, 
     3908+       {0x0000a0d0, 0x02050600}, 
     3909+       {0x0000a0d4, 0x02050601}, 
     3910+       {0x0000a0d8, 0x02050602}, 
     3911+       {0x0000a0dc, 0x02050603}, 
     3912+       {0x0000a0e0, 0x02050604}, 
     3913+       {0x0000a0e4, 0x02050700}, 
     3914+       {0x0000a0e8, 0x02050701}, 
     3915+       {0x0000a0ec, 0x02050702}, 
     3916+       {0x0000a0f0, 0x02050703}, 
     3917+       {0x0000a0f4, 0x02050704}, 
     3918+       {0x0000a0f8, 0x02050705}, 
     3919+       {0x0000a0fc, 0x02050708}, 
     3920+       {0x0000a100, 0x02050709}, 
     3921+       {0x0000a104, 0x0205070a}, 
     3922+       {0x0000a108, 0x0205070b}, 
     3923+       {0x0000a10c, 0x0205070c}, 
     3924+       {0x0000a110, 0x0205070d}, 
     3925+       {0x0000a114, 0x02050710}, 
     3926+       {0x0000a118, 0x02050711}, 
     3927+       {0x0000a11c, 0x02050712}, 
     3928+       {0x0000a120, 0x02050713}, 
     3929+       {0x0000a124, 0x02050714}, 
     3930+       {0x0000a128, 0x02050715}, 
     3931+       {0x0000a12c, 0x02050730}, 
     3932+       {0x0000a130, 0x02050731}, 
     3933+       {0x0000a134, 0x02050732}, 
     3934+       {0x0000a138, 0x02050733}, 
     3935+       {0x0000a13c, 0x02050734}, 
     3936+       {0x0000a140, 0x02050735}, 
     3937+       {0x0000a144, 0x02050750}, 
     3938+       {0x0000a148, 0x02050751}, 
     3939+       {0x0000a14c, 0x02050752}, 
     3940+       {0x0000a150, 0x02050753}, 
     3941+       {0x0000a154, 0x02050754}, 
     3942+       {0x0000a158, 0x02050755}, 
     3943+       {0x0000a15c, 0x02050770}, 
     3944+       {0x0000a160, 0x02050771}, 
     3945+       {0x0000a164, 0x02050772}, 
     3946+       {0x0000a168, 0x02050773}, 
     3947+       {0x0000a16c, 0x02050774}, 
     3948+       {0x0000a170, 0x02050775}, 
     3949+       {0x0000a174, 0x00000776}, 
     3950+       {0x0000a178, 0x00000776}, 
     3951+       {0x0000a17c, 0x00000776}, 
     3952+       {0x0000a180, 0x00000776}, 
     3953+       {0x0000a184, 0x00000776}, 
     3954+       {0x0000a188, 0x00000776}, 
     3955+       {0x0000a18c, 0x00000776}, 
     3956+       {0x0000a190, 0x00000776}, 
     3957+       {0x0000a194, 0x00000776}, 
     3958+       {0x0000a198, 0x00000776}, 
     3959+       {0x0000a19c, 0x00000776}, 
     3960+       {0x0000a1a0, 0x00000776}, 
     3961+       {0x0000a1a4, 0x00000776}, 
     3962+       {0x0000a1a8, 0x00000776}, 
     3963+       {0x0000a1ac, 0x00000776}, 
     3964+       {0x0000a1b0, 0x00000776}, 
     3965+       {0x0000a1b4, 0x00000776}, 
     3966+       {0x0000a1b8, 0x00000776}, 
     3967+       {0x0000a1bc, 0x00000776}, 
     3968+       {0x0000a1c0, 0x00000776}, 
     3969+       {0x0000a1c4, 0x00000776}, 
     3970+       {0x0000a1c8, 0x00000776}, 
     3971+       {0x0000a1cc, 0x00000776}, 
     3972+       {0x0000a1d0, 0x00000776}, 
     3973+       {0x0000a1d4, 0x00000776}, 
     3974+       {0x0000a1d8, 0x00000776}, 
     3975+       {0x0000a1dc, 0x00000776}, 
     3976+       {0x0000a1e0, 0x00000776}, 
     3977+       {0x0000a1e4, 0x00000776}, 
     3978+       {0x0000a1e8, 0x00000776}, 
     3979+       {0x0000a1ec, 0x00000776}, 
     3980+       {0x0000a1f0, 0x00000776}, 
     3981+       {0x0000a1f4, 0x00000776}, 
     3982+       {0x0000a1f8, 0x00000776}, 
     3983+       {0x0000a1fc, 0x00000776}, 
     3984+       {0x0000b000, 0x02000101}, 
     3985+       {0x0000b004, 0x02000102}, 
     3986+       {0x0000b008, 0x02000103}, 
     3987+       {0x0000b00c, 0x02000104}, 
     3988+       {0x0000b010, 0x02000200}, 
     3989+       {0x0000b014, 0x02000201}, 
     3990+       {0x0000b018, 0x02000202}, 
     3991+       {0x0000b01c, 0x02000203}, 
     3992+       {0x0000b020, 0x02000204}, 
     3993+       {0x0000b024, 0x02000205}, 
     3994+       {0x0000b028, 0x02000208}, 
     3995+       {0x0000b02c, 0x02000302}, 
     3996+       {0x0000b030, 0x02000303}, 
     3997+       {0x0000b034, 0x02000304}, 
     3998+       {0x0000b038, 0x02000400}, 
     3999+       {0x0000b03c, 0x02010300}, 
     4000+       {0x0000b040, 0x02010301}, 
     4001+       {0x0000b044, 0x02010302}, 
     4002+       {0x0000b048, 0x02000500}, 
     4003+       {0x0000b04c, 0x02010400}, 
     4004+       {0x0000b050, 0x02020300}, 
     4005+       {0x0000b054, 0x02020301}, 
     4006+       {0x0000b058, 0x02020302}, 
     4007+       {0x0000b05c, 0x02020303}, 
     4008+       {0x0000b060, 0x02020400}, 
     4009+       {0x0000b064, 0x02030300}, 
     4010+       {0x0000b068, 0x02030301}, 
     4011+       {0x0000b06c, 0x02030302}, 
     4012+       {0x0000b070, 0x02030303}, 
     4013+       {0x0000b074, 0x02030400}, 
     4014+       {0x0000b078, 0x02040300}, 
     4015+       {0x0000b07c, 0x02040301}, 
     4016+       {0x0000b080, 0x02040302}, 
     4017+       {0x0000b084, 0x02040303}, 
     4018+       {0x0000b088, 0x02030500}, 
     4019+       {0x0000b08c, 0x02040400}, 
     4020+       {0x0000b090, 0x02050203}, 
     4021+       {0x0000b094, 0x02050204}, 
     4022+       {0x0000b098, 0x02050205}, 
     4023+       {0x0000b09c, 0x02040500}, 
     4024+       {0x0000b0a0, 0x02050301}, 
     4025+       {0x0000b0a4, 0x02050302}, 
     4026+       {0x0000b0a8, 0x02050303}, 
     4027+       {0x0000b0ac, 0x02050400}, 
     4028+       {0x0000b0b0, 0x02050401}, 
     4029+       {0x0000b0b4, 0x02050402}, 
     4030+       {0x0000b0b8, 0x02050403}, 
     4031+       {0x0000b0bc, 0x02050500}, 
     4032+       {0x0000b0c0, 0x02050501}, 
     4033+       {0x0000b0c4, 0x02050502}, 
     4034+       {0x0000b0c8, 0x02050503}, 
     4035+       {0x0000b0cc, 0x02050504}, 
     4036+       {0x0000b0d0, 0x02050600}, 
     4037+       {0x0000b0d4, 0x02050601}, 
     4038+       {0x0000b0d8, 0x02050602}, 
     4039+       {0x0000b0dc, 0x02050603}, 
     4040+       {0x0000b0e0, 0x02050604}, 
     4041+       {0x0000b0e4, 0x02050700}, 
     4042+       {0x0000b0e8, 0x02050701}, 
     4043+       {0x0000b0ec, 0x02050702}, 
     4044+       {0x0000b0f0, 0x02050703}, 
     4045+       {0x0000b0f4, 0x02050704}, 
     4046+       {0x0000b0f8, 0x02050705}, 
     4047+       {0x0000b0fc, 0x02050708}, 
     4048+       {0x0000b100, 0x02050709}, 
     4049+       {0x0000b104, 0x0205070a}, 
     4050+       {0x0000b108, 0x0205070b}, 
     4051+       {0x0000b10c, 0x0205070c}, 
     4052+       {0x0000b110, 0x0205070d}, 
     4053+       {0x0000b114, 0x02050710}, 
     4054+       {0x0000b118, 0x02050711}, 
     4055+       {0x0000b11c, 0x02050712}, 
     4056+       {0x0000b120, 0x02050713}, 
     4057+       {0x0000b124, 0x02050714}, 
     4058+       {0x0000b128, 0x02050715}, 
     4059+       {0x0000b12c, 0x02050730}, 
     4060+       {0x0000b130, 0x02050731}, 
     4061+       {0x0000b134, 0x02050732}, 
     4062+       {0x0000b138, 0x02050733}, 
     4063+       {0x0000b13c, 0x02050734}, 
     4064+       {0x0000b140, 0x02050735}, 
     4065+       {0x0000b144, 0x02050750}, 
     4066+       {0x0000b148, 0x02050751}, 
     4067+       {0x0000b14c, 0x02050752}, 
     4068+       {0x0000b150, 0x02050753}, 
     4069+       {0x0000b154, 0x02050754}, 
     4070+       {0x0000b158, 0x02050755}, 
     4071+       {0x0000b15c, 0x02050770}, 
     4072+       {0x0000b160, 0x02050771}, 
     4073+       {0x0000b164, 0x02050772}, 
     4074+       {0x0000b168, 0x02050773}, 
     4075+       {0x0000b16c, 0x02050774}, 
     4076+       {0x0000b170, 0x02050775}, 
     4077+       {0x0000b174, 0x00000776}, 
     4078+       {0x0000b178, 0x00000776}, 
     4079+       {0x0000b17c, 0x00000776}, 
     4080+       {0x0000b180, 0x00000776}, 
     4081+       {0x0000b184, 0x00000776}, 
     4082+       {0x0000b188, 0x00000776}, 
     4083+       {0x0000b18c, 0x00000776}, 
     4084+       {0x0000b190, 0x00000776}, 
     4085+       {0x0000b194, 0x00000776}, 
     4086+       {0x0000b198, 0x00000776}, 
     4087+       {0x0000b19c, 0x00000776}, 
     4088+       {0x0000b1a0, 0x00000776}, 
     4089+       {0x0000b1a4, 0x00000776}, 
     4090+       {0x0000b1a8, 0x00000776}, 
     4091+       {0x0000b1ac, 0x00000776}, 
     4092+       {0x0000b1b0, 0x00000776}, 
     4093+       {0x0000b1b4, 0x00000776}, 
     4094+       {0x0000b1b8, 0x00000776}, 
     4095+       {0x0000b1bc, 0x00000776}, 
     4096+       {0x0000b1c0, 0x00000776}, 
     4097+       {0x0000b1c4, 0x00000776}, 
     4098+       {0x0000b1c8, 0x00000776}, 
     4099+       {0x0000b1cc, 0x00000776}, 
     4100+       {0x0000b1d0, 0x00000776}, 
     4101+       {0x0000b1d4, 0x00000776}, 
     4102+       {0x0000b1d8, 0x00000776}, 
     4103+       {0x0000b1dc, 0x00000776}, 
     4104+       {0x0000b1e0, 0x00000776}, 
     4105+       {0x0000b1e4, 0x00000776}, 
     4106+       {0x0000b1e8, 0x00000776}, 
     4107+       {0x0000b1ec, 0x00000776}, 
     4108+       {0x0000b1f0, 0x00000776}, 
     4109+       {0x0000b1f4, 0x00000776}, 
     4110+       {0x0000b1f8, 0x00000776}, 
     4111+       {0x0000b1fc, 0x00000776}, 
     4112+}; 
     4113+ 
     4114+static const u32 ar9200_ar9280_2p0_radio_core[][2] = { 
     4115+       /* Addr      allmodes  */ 
     4116+       {0x00007800, 0x00040000}, 
     4117+       {0x00007804, 0xdb005012}, 
     4118+       {0x00007808, 0x04924914}, 
     4119+       {0x0000780c, 0x21084210}, 
     4120+       {0x00007810, 0x6d801300}, 
     4121+       {0x00007814, 0x0019beff}, 
     4122+       {0x00007818, 0x07e41000}, 
     4123+       {0x0000781c, 0x00392000}, 
     4124+       {0x00007820, 0x92592480}, 
     4125+       {0x00007824, 0x00040000}, 
     4126+       {0x00007828, 0xdb005012}, 
     4127+       {0x0000782c, 0x04924914}, 
     4128+       {0x00007830, 0x21084210}, 
     4129+       {0x00007834, 0x6d801300}, 
     4130+       {0x00007838, 0x0019beff}, 
     4131+       {0x0000783c, 0x07e40000}, 
     4132+       {0x00007840, 0x00392000}, 
     4133+       {0x00007844, 0x92592480}, 
     4134+       {0x00007848, 0x00100000}, 
     4135+       {0x0000784c, 0x773f0567}, 
     4136+       {0x00007850, 0x54214514}, 
     4137+       {0x00007854, 0x12035828}, 
     4138+       {0x00007858, 0x92592692}, 
     4139+       {0x0000785c, 0x00000000}, 
     4140+       {0x00007860, 0x56400000}, 
     4141+       {0x00007864, 0x0a8e370e}, 
     4142+       {0x00007868, 0xc0102850}, 
     4143+       {0x0000786c, 0x812d4000}, 
     4144+       {0x00007870, 0x807ec400}, 
     4145+       {0x00007874, 0x001b6db0}, 
     4146+       {0x00007878, 0x00376b63}, 
     4147+       {0x0000787c, 0x06db6db6}, 
     4148+       {0x00007880, 0x006d8000}, 
     4149+       {0x00007884, 0xffeffffe}, 
     4150+       {0x00007888, 0xffeffffe}, 
     4151+       {0x0000788c, 0x00010000}, 
     4152+       {0x00007890, 0x02060aeb}, 
     4153+       {0x00007894, 0x5a108000}, 
     4154+}; 
     4155+ 
     4156+static const u32 ar9462_2p0_mac_postamble_emulation[][5] = { 
     4157+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     4158+       {0x00008014, 0x10f810f8, 0x10f810f8, 0x10f810f8, 0x10f810f8}, 
     4159+       {0x0000801c, 0x0e8d8017, 0x0e8d8017, 0x0e8d8017, 0x0e8d8017}, 
     4160+}; 
     4161+ 
     4162+static const u32 ar9462_2p0_radio_postamble_sys3ant[][5] = { 
     4163+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     4164+       {0x000160ac, 0xa4646c08, 0xa4646c08, 0x24645808, 0x24645808}, 
     4165+       {0x00016140, 0x10804008, 0x10804008, 0x90804008, 0x90804008}, 
     4166+       {0x00016540, 0x10804008, 0x10804008, 0x90804008, 0x90804008}, 
     4167+}; 
     4168+ 
     4169+static const u32 ar9462_2p0_baseband_postamble_emulation[][5] = { 
     4170+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     4171+       {0x00009e18, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     4172+       {0x00009e3c, 0xcf946221, 0xcf946221, 0xcf946221, 0xcf946221}, 
     4173+       {0x00009e44, 0xfc5c0000, 0xfc5c0000, 0xfc5c0000, 0xfc5c0000}, 
     4174+       {0x0000a258, 0x02020200, 0x02020200, 0x02020200, 0x02020200}, 
     4175+       {0x0000a25c, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e}, 
     4176+       {0x0000a28c, 0x00011111, 0x00011111, 0x00011111, 0x00011111}, 
     4177+       {0x0000a2c4, 0x00148d18, 0x00148d18, 0x00148d20, 0x00148d20}, 
     4178+       {0x0000a2d8, 0xf999a800, 0xf999a800, 0xf999a80c, 0xf999a80c}, 
     4179+       {0x0000a50c, 0x0000c00a, 0x0000c00a, 0x0000c00a, 0x0000c00a}, 
     4180+       {0x0000a538, 0x00038e8c, 0x00038e8c, 0x00038e8c, 0x00038e8c}, 
     4181+       {0x0000a53c, 0x0003cecc, 0x0003cecc, 0x0003cecc, 0x0003cecc}, 
     4182+       {0x0000a540, 0x00040ed4, 0x00040ed4, 0x00040ed4, 0x00040ed4}, 
     4183+       {0x0000a544, 0x00044edc, 0x00044edc, 0x00044edc, 0x00044edc}, 
     4184+       {0x0000a548, 0x00048ede, 0x00048ede, 0x00048ede, 0x00048ede}, 
     4185+       {0x0000a54c, 0x0004cf1e, 0x0004cf1e, 0x0004cf1e, 0x0004cf1e}, 
     4186+       {0x0000a550, 0x00050f5e, 0x00050f5e, 0x00050f5e, 0x00050f5e}, 
     4187+       {0x0000a554, 0x00054f9e, 0x00054f9e, 0x00054f9e, 0x00054f9e}, 
     4188+       {0x0000ae18, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     4189+}; 
     4190+ 
     4191+static const u32 ar9462_2p0_radio_postamble_sys2ant[][5] = { 
     4192+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     4193+       {0x000160ac, 0xa4646c08, 0xa4646c08, 0x24645808, 0x24645808}, 
     4194+       {0x00016140, 0x10804008, 0x10804008, 0x90804008, 0x90804008}, 
     4195+       {0x00016540, 0x10804008, 0x10804008, 0x90804008, 0x90804008}, 
     4196+}; 
     4197+ 
     4198+static const u32 ar9462_common_wo_xlna_rx_gain_table_2p0[][2] = { 
     4199+       /* Addr      allmodes  */ 
     4200+       {0x0000a000, 0x00010000}, 
     4201+       {0x0000a004, 0x00030002}, 
     4202+       {0x0000a008, 0x00050004}, 
     4203+       {0x0000a00c, 0x00810080}, 
     4204+       {0x0000a010, 0x00830082}, 
     4205+       {0x0000a014, 0x01810180}, 
     4206+       {0x0000a018, 0x01830182}, 
     4207+       {0x0000a01c, 0x01850184}, 
     4208+       {0x0000a020, 0x01890188}, 
     4209+       {0x0000a024, 0x018b018a}, 
     4210+       {0x0000a028, 0x018d018c}, 
     4211+       {0x0000a02c, 0x03820190}, 
     4212+       {0x0000a030, 0x03840383}, 
     4213+       {0x0000a034, 0x03880385}, 
     4214+       {0x0000a038, 0x038a0389}, 
     4215+       {0x0000a03c, 0x038c038b}, 
     4216+       {0x0000a040, 0x0390038d}, 
     4217+       {0x0000a044, 0x03920391}, 
     4218+       {0x0000a048, 0x03940393}, 
     4219+       {0x0000a04c, 0x03960395}, 
     4220+       {0x0000a050, 0x00000000}, 
     4221+       {0x0000a054, 0x00000000}, 
     4222+       {0x0000a058, 0x00000000}, 
     4223+       {0x0000a05c, 0x00000000}, 
     4224+       {0x0000a060, 0x00000000}, 
     4225+       {0x0000a064, 0x00000000}, 
     4226+       {0x0000a068, 0x00000000}, 
     4227+       {0x0000a06c, 0x00000000}, 
     4228+       {0x0000a070, 0x00000000}, 
     4229+       {0x0000a074, 0x00000000}, 
     4230+       {0x0000a078, 0x00000000}, 
     4231+       {0x0000a07c, 0x00000000}, 
     4232+       {0x0000a080, 0x29292929}, 
     4233+       {0x0000a084, 0x29292929}, 
     4234+       {0x0000a088, 0x29292929}, 
     4235+       {0x0000a08c, 0x29292929}, 
     4236+       {0x0000a090, 0x22292929}, 
     4237+       {0x0000a094, 0x1d1d2222}, 
     4238+       {0x0000a098, 0x0c111117}, 
     4239+       {0x0000a09c, 0x00030303}, 
     4240+       {0x0000a0a0, 0x00000000}, 
     4241+       {0x0000a0a4, 0x00000000}, 
     4242+       {0x0000a0a8, 0x00000000}, 
     4243+       {0x0000a0ac, 0x00000000}, 
     4244+       {0x0000a0b0, 0x00000000}, 
     4245+       {0x0000a0b4, 0x00000000}, 
     4246+       {0x0000a0b8, 0x00000000}, 
     4247+       {0x0000a0bc, 0x00000000}, 
     4248+       {0x0000a0c0, 0x001f0000}, 
     4249+       {0x0000a0c4, 0x01000101}, 
     4250+       {0x0000a0c8, 0x011e011f}, 
     4251+       {0x0000a0cc, 0x011c011d}, 
     4252+       {0x0000a0d0, 0x02030204}, 
     4253+       {0x0000a0d4, 0x02010202}, 
     4254+       {0x0000a0d8, 0x021f0200}, 
     4255+       {0x0000a0dc, 0x0302021e}, 
     4256+       {0x0000a0e0, 0x03000301}, 
     4257+       {0x0000a0e4, 0x031e031f}, 
     4258+       {0x0000a0e8, 0x0402031d}, 
     4259+       {0x0000a0ec, 0x04000401}, 
     4260+       {0x0000a0f0, 0x041e041f}, 
     4261+       {0x0000a0f4, 0x0502041d}, 
     4262+       {0x0000a0f8, 0x05000501}, 
     4263+       {0x0000a0fc, 0x051e051f}, 
     4264+       {0x0000a100, 0x06010602}, 
     4265+       {0x0000a104, 0x061f0600}, 
     4266+       {0x0000a108, 0x061d061e}, 
     4267+       {0x0000a10c, 0x07020703}, 
     4268+       {0x0000a110, 0x07000701}, 
     4269+       {0x0000a114, 0x00000000}, 
     4270+       {0x0000a118, 0x00000000}, 
     4271+       {0x0000a11c, 0x00000000}, 
     4272+       {0x0000a120, 0x00000000}, 
     4273+       {0x0000a124, 0x00000000}, 
     4274+       {0x0000a128, 0x00000000}, 
     4275+       {0x0000a12c, 0x00000000}, 
     4276+       {0x0000a130, 0x00000000}, 
     4277+       {0x0000a134, 0x00000000}, 
     4278+       {0x0000a138, 0x00000000}, 
     4279+       {0x0000a13c, 0x00000000}, 
     4280+       {0x0000a140, 0x001f0000}, 
     4281+       {0x0000a144, 0x01000101}, 
     4282+       {0x0000a148, 0x011e011f}, 
     4283+       {0x0000a14c, 0x011c011d}, 
     4284+       {0x0000a150, 0x02030204}, 
     4285+       {0x0000a154, 0x02010202}, 
     4286+       {0x0000a158, 0x021f0200}, 
     4287+       {0x0000a15c, 0x0302021e}, 
     4288+       {0x0000a160, 0x03000301}, 
     4289+       {0x0000a164, 0x031e031f}, 
     4290+       {0x0000a168, 0x0402031d}, 
     4291+       {0x0000a16c, 0x04000401}, 
     4292+       {0x0000a170, 0x041e041f}, 
     4293+       {0x0000a174, 0x0502041d}, 
     4294+       {0x0000a178, 0x05000501}, 
     4295+       {0x0000a17c, 0x051e051f}, 
     4296+       {0x0000a180, 0x06010602}, 
     4297+       {0x0000a184, 0x061f0600}, 
     4298+       {0x0000a188, 0x061d061e}, 
     4299+       {0x0000a18c, 0x07020703}, 
     4300+       {0x0000a190, 0x07000701}, 
     4301+       {0x0000a194, 0x00000000}, 
     4302+       {0x0000a198, 0x00000000}, 
     4303+       {0x0000a19c, 0x00000000}, 
     4304+       {0x0000a1a0, 0x00000000}, 
     4305+       {0x0000a1a4, 0x00000000}, 
     4306+       {0x0000a1a8, 0x00000000}, 
     4307+       {0x0000a1ac, 0x00000000}, 
     4308+       {0x0000a1b0, 0x00000000}, 
     4309+       {0x0000a1b4, 0x00000000}, 
     4310+       {0x0000a1b8, 0x00000000}, 
     4311+       {0x0000a1bc, 0x00000000}, 
     4312+       {0x0000a1c0, 0x00000000}, 
     4313+       {0x0000a1c4, 0x00000000}, 
     4314+       {0x0000a1c8, 0x00000000}, 
     4315+       {0x0000a1cc, 0x00000000}, 
     4316+       {0x0000a1d0, 0x00000000}, 
     4317+       {0x0000a1d4, 0x00000000}, 
     4318+       {0x0000a1d8, 0x00000000}, 
     4319+       {0x0000a1dc, 0x00000000}, 
     4320+       {0x0000a1e0, 0x00000000}, 
     4321+       {0x0000a1e4, 0x00000000}, 
     4322+       {0x0000a1e8, 0x00000000}, 
     4323+       {0x0000a1ec, 0x00000000}, 
     4324+       {0x0000a1f0, 0x00000396}, 
     4325+       {0x0000a1f4, 0x00000396}, 
     4326+       {0x0000a1f8, 0x00000396}, 
     4327+       {0x0000a1fc, 0x00000196}, 
     4328+       {0x0000b000, 0x00010000}, 
     4329+       {0x0000b004, 0x00030002}, 
     4330+       {0x0000b008, 0x00050004}, 
     4331+       {0x0000b00c, 0x00810080}, 
     4332+       {0x0000b010, 0x00830082}, 
     4333+       {0x0000b014, 0x01810180}, 
     4334+       {0x0000b018, 0x01830182}, 
     4335+       {0x0000b01c, 0x01850184}, 
     4336+       {0x0000b020, 0x02810280}, 
     4337+       {0x0000b024, 0x02830282}, 
     4338+       {0x0000b028, 0x02850284}, 
     4339+       {0x0000b02c, 0x02890288}, 
     4340+       {0x0000b030, 0x028b028a}, 
     4341+       {0x0000b034, 0x0388028c}, 
     4342+       {0x0000b038, 0x038a0389}, 
     4343+       {0x0000b03c, 0x038c038b}, 
     4344+       {0x0000b040, 0x0390038d}, 
     4345+       {0x0000b044, 0x03920391}, 
     4346+       {0x0000b048, 0x03940393}, 
     4347+       {0x0000b04c, 0x03960395}, 
     4348+       {0x0000b050, 0x00000000}, 
     4349+       {0x0000b054, 0x00000000}, 
     4350+       {0x0000b058, 0x00000000}, 
     4351+       {0x0000b05c, 0x00000000}, 
     4352+       {0x0000b060, 0x00000000}, 
     4353+       {0x0000b064, 0x00000000}, 
     4354+       {0x0000b068, 0x00000000}, 
     4355+       {0x0000b06c, 0x00000000}, 
     4356+       {0x0000b070, 0x00000000}, 
     4357+       {0x0000b074, 0x00000000}, 
     4358+       {0x0000b078, 0x00000000}, 
     4359+       {0x0000b07c, 0x00000000}, 
     4360+       {0x0000b080, 0x32323232}, 
     4361+       {0x0000b084, 0x2f2f3232}, 
     4362+       {0x0000b088, 0x23282a2d}, 
     4363+       {0x0000b08c, 0x1c1e2123}, 
     4364+       {0x0000b090, 0x14171919}, 
     4365+       {0x0000b094, 0x0e0e1214}, 
     4366+       {0x0000b098, 0x03050707}, 
     4367+       {0x0000b09c, 0x00030303}, 
     4368+       {0x0000b0a0, 0x00000000}, 
     4369+       {0x0000b0a4, 0x00000000}, 
     4370+       {0x0000b0a8, 0x00000000}, 
     4371+       {0x0000b0ac, 0x00000000}, 
     4372+       {0x0000b0b0, 0x00000000}, 
     4373+       {0x0000b0b4, 0x00000000}, 
     4374+       {0x0000b0b8, 0x00000000}, 
     4375+       {0x0000b0bc, 0x00000000}, 
     4376+       {0x0000b0c0, 0x003f0020}, 
     4377+       {0x0000b0c4, 0x00400041}, 
     4378+       {0x0000b0c8, 0x0140005f}, 
     4379+       {0x0000b0cc, 0x0160015f}, 
     4380+       {0x0000b0d0, 0x017e017f}, 
     4381+       {0x0000b0d4, 0x02410242}, 
     4382+       {0x0000b0d8, 0x025f0240}, 
     4383+       {0x0000b0dc, 0x027f0260}, 
     4384+       {0x0000b0e0, 0x0341027e}, 
     4385+       {0x0000b0e4, 0x035f0340}, 
     4386+       {0x0000b0e8, 0x037f0360}, 
     4387+       {0x0000b0ec, 0x04400441}, 
     4388+       {0x0000b0f0, 0x0460045f}, 
     4389+       {0x0000b0f4, 0x0541047f}, 
     4390+       {0x0000b0f8, 0x055f0540}, 
     4391+       {0x0000b0fc, 0x057f0560}, 
     4392+       {0x0000b100, 0x06400641}, 
     4393+       {0x0000b104, 0x0660065f}, 
     4394+       {0x0000b108, 0x067e067f}, 
     4395+       {0x0000b10c, 0x07410742}, 
     4396+       {0x0000b110, 0x075f0740}, 
     4397+       {0x0000b114, 0x077f0760}, 
     4398+       {0x0000b118, 0x07800781}, 
     4399+       {0x0000b11c, 0x07a0079f}, 
     4400+       {0x0000b120, 0x07c107bf}, 
     4401+       {0x0000b124, 0x000007c0}, 
     4402+       {0x0000b128, 0x00000000}, 
     4403+       {0x0000b12c, 0x00000000}, 
     4404+       {0x0000b130, 0x00000000}, 
     4405+       {0x0000b134, 0x00000000}, 
     4406+       {0x0000b138, 0x00000000}, 
     4407+       {0x0000b13c, 0x00000000}, 
     4408+       {0x0000b140, 0x003f0020}, 
     4409+       {0x0000b144, 0x00400041}, 
     4410+       {0x0000b148, 0x0140005f}, 
     4411+       {0x0000b14c, 0x0160015f}, 
     4412+       {0x0000b150, 0x017e017f}, 
     4413+       {0x0000b154, 0x02410242}, 
     4414+       {0x0000b158, 0x025f0240}, 
     4415+       {0x0000b15c, 0x027f0260}, 
     4416+       {0x0000b160, 0x0341027e}, 
     4417+       {0x0000b164, 0x035f0340}, 
     4418+       {0x0000b168, 0x037f0360}, 
     4419+       {0x0000b16c, 0x04400441}, 
     4420+       {0x0000b170, 0x0460045f}, 
     4421+       {0x0000b174, 0x0541047f}, 
     4422+       {0x0000b178, 0x055f0540}, 
     4423+       {0x0000b17c, 0x057f0560}, 
     4424+       {0x0000b180, 0x06400641}, 
     4425+       {0x0000b184, 0x0660065f}, 
     4426+       {0x0000b188, 0x067e067f}, 
     4427+       {0x0000b18c, 0x07410742}, 
     4428+       {0x0000b190, 0x075f0740}, 
     4429+       {0x0000b194, 0x077f0760}, 
     4430+       {0x0000b198, 0x07800781}, 
     4431+       {0x0000b19c, 0x07a0079f}, 
     4432+       {0x0000b1a0, 0x07c107bf}, 
     4433+       {0x0000b1a4, 0x000007c0}, 
     4434+       {0x0000b1a8, 0x00000000}, 
     4435+       {0x0000b1ac, 0x00000000}, 
     4436+       {0x0000b1b0, 0x00000000}, 
     4437+       {0x0000b1b4, 0x00000000}, 
     4438+       {0x0000b1b8, 0x00000000}, 
     4439+       {0x0000b1bc, 0x00000000}, 
     4440+       {0x0000b1c0, 0x00000000}, 
     4441+       {0x0000b1c4, 0x00000000}, 
     4442+       {0x0000b1c8, 0x00000000}, 
     4443+       {0x0000b1cc, 0x00000000}, 
     4444+       {0x0000b1d0, 0x00000000}, 
     4445+       {0x0000b1d4, 0x00000000}, 
     4446+       {0x0000b1d8, 0x00000000}, 
     4447+       {0x0000b1dc, 0x00000000}, 
     4448+       {0x0000b1e0, 0x00000000}, 
     4449+       {0x0000b1e4, 0x00000000}, 
     4450+       {0x0000b1e8, 0x00000000}, 
     4451+       {0x0000b1ec, 0x00000000}, 
     4452+       {0x0000b1f0, 0x00000396}, 
     4453+       {0x0000b1f4, 0x00000396}, 
     4454+       {0x0000b1f8, 0x00000396}, 
     4455+       {0x0000b1fc, 0x00000196}, 
     4456+}; 
     4457+ 
     4458+static const u32 ar9462_2p0_baseband_core_txfir_coeff_japan_2484[][2] = { 
     4459+       /* Addr      allmodes  */ 
     4460+       {0x0000a398, 0x00000000}, 
     4461+       {0x0000a39c, 0x6f7f0301}, 
     4462+       {0x0000a3a0, 0xca9228ee}, 
     4463+}; 
     4464+ 
     4465+static const u32 ar9462_modes_low_ob_db_tx_gain_table_2p0[][5] = { 
     4466+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     4467+       {0x000098bc, 0x00000002, 0x00000002, 0x00000002, 0x00000002}, 
     4468+       {0x0000a2dc, 0x0380c7fc, 0x0380c7fc, 0x03aaa352, 0x03aaa352}, 
     4469+       {0x0000a2e0, 0x0000f800, 0x0000f800, 0x03ccc584, 0x03ccc584}, 
     4470+       {0x0000a2e4, 0x03ff0000, 0x03ff0000, 0x03f0f800, 0x03f0f800}, 
     4471+       {0x0000a2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000}, 
     4472+       {0x0000a410, 0x000050d9, 0x000050d9, 0x000050d9, 0x000050d9}, 
     4473+       {0x0000a458, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     4474+       {0x0000a500, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     4475+       {0x0000a504, 0x06000003, 0x06000003, 0x04000002, 0x04000002}, 
     4476+       {0x0000a508, 0x0a000020, 0x0a000020, 0x08000004, 0x08000004}, 
     4477+       {0x0000a50c, 0x10000023, 0x10000023, 0x0b000200, 0x0b000200}, 
     4478+       {0x0000a510, 0x16000220, 0x16000220, 0x0f000202, 0x0f000202}, 
     4479+       {0x0000a514, 0x1c000223, 0x1c000223, 0x12000400, 0x12000400}, 
     4480+       {0x0000a518, 0x21020220, 0x21020220, 0x16000402, 0x16000402}, 
     4481+       {0x0000a51c, 0x27020223, 0x27020223, 0x19000404, 0x19000404}, 
     4482+       {0x0000a520, 0x2b022220, 0x2b022220, 0x1c000603, 0x1c000603}, 
     4483+       {0x0000a524, 0x2f022222, 0x2f022222, 0x21000a02, 0x21000a02}, 
     4484+       {0x0000a528, 0x34022225, 0x34022225, 0x25000a04, 0x25000a04}, 
     4485+       {0x0000a52c, 0x3a02222a, 0x3a02222a, 0x28000a20, 0x28000a20}, 
     4486+       {0x0000a530, 0x3e02222c, 0x3e02222c, 0x2c000e20, 0x2c000e20}, 
     4487+       {0x0000a534, 0x4202242a, 0x4202242a, 0x30000e22, 0x30000e22}, 
     4488+       {0x0000a538, 0x4702244a, 0x4702244a, 0x34000e24, 0x34000e24}, 
     4489+       {0x0000a53c, 0x4b02244c, 0x4b02244c, 0x38001640, 0x38001640}, 
     4490+       {0x0000a540, 0x4e02246c, 0x4e02246c, 0x3c001660, 0x3c001660}, 
     4491+       {0x0000a544, 0x5302266c, 0x5302266c, 0x3f001861, 0x3f001861}, 
     4492+       {0x0000a548, 0x5702286c, 0x5702286c, 0x43001a81, 0x43001a81}, 
     4493+       {0x0000a54c, 0x5c04286b, 0x5c04286b, 0x47001a83, 0x47001a83}, 
     4494+       {0x0000a550, 0x61042a6c, 0x61042a6c, 0x4a001c84, 0x4a001c84}, 
     4495+       {0x0000a554, 0x66062a6c, 0x66062a6c, 0x4e001ce3, 0x4e001ce3}, 
     4496+       {0x0000a558, 0x6b062e6c, 0x6b062e6c, 0x52001ce5, 0x52001ce5}, 
     4497+       {0x0000a55c, 0x7006308c, 0x7006308c, 0x56001ce9, 0x56001ce9}, 
     4498+       {0x0000a560, 0x730a308a, 0x730a308a, 0x5a001ceb, 0x5a001ceb}, 
     4499+       {0x0000a564, 0x770a308c, 0x770a308c, 0x5d001eec, 0x5d001eec}, 
     4500+       {0x0000a568, 0x770a308c, 0x770a308c, 0x5d001eec, 0x5d001eec}, 
     4501+       {0x0000a56c, 0x770a308c, 0x770a308c, 0x5d001eec, 0x5d001eec}, 
     4502+       {0x0000a570, 0x770a308c, 0x770a308c, 0x5d001eec, 0x5d001eec}, 
     4503+       {0x0000a574, 0x770a308c, 0x770a308c, 0x5d001eec, 0x5d001eec}, 
     4504+       {0x0000a578, 0x770a308c, 0x770a308c, 0x5d001eec, 0x5d001eec}, 
     4505+       {0x0000a57c, 0x770a308c, 0x770a308c, 0x5d001eec, 0x5d001eec}, 
     4506+       {0x0000a600, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     4507+       {0x0000a604, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     4508+       {0x0000a608, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     4509+       {0x0000a60c, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     4510+       {0x0000a610, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     4511+       {0x0000a614, 0x01404000, 0x01404000, 0x01404000, 0x01404000}, 
     4512+       {0x0000a618, 0x01404501, 0x01404501, 0x01404501, 0x01404501}, 
     4513+       {0x0000a61c, 0x02008802, 0x02008802, 0x02008501, 0x02008501}, 
     4514+       {0x0000a620, 0x0300cc03, 0x0300cc03, 0x0280ca03, 0x0280ca03}, 
     4515+       {0x0000a624, 0x0300cc03, 0x0300cc03, 0x03010c04, 0x03010c04}, 
     4516+       {0x0000a628, 0x0300cc03, 0x0300cc03, 0x04014c04, 0x04014c04}, 
     4517+       {0x0000a62c, 0x03810c03, 0x03810c03, 0x04015005, 0x04015005}, 
     4518+       {0x0000a630, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005}, 
     4519+       {0x0000a634, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005}, 
     4520+       {0x0000a638, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005}, 
     4521+       {0x0000a63c, 0x03810e04, 0x03810e04, 0x04015005, 0x04015005}, 
     4522+       {0x0000b2dc, 0x0380c7fc, 0x0380c7fc, 0x03aaa352, 0x03aaa352}, 
     4523+       {0x0000b2e0, 0x0000f800, 0x0000f800, 0x03ccc584, 0x03ccc584}, 
     4524+       {0x0000b2e4, 0x03ff0000, 0x03ff0000, 0x03f0f800, 0x03f0f800}, 
     4525+       {0x0000b2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000}, 
     4526+       {0x00016044, 0x012482d4, 0x012482d4, 0x012482d4, 0x012482d4}, 
     4527+       {0x00016048, 0x64992060, 0x64992060, 0x64992060, 0x64992060}, 
     4528+       {0x00016054, 0x6db60000, 0x6db60000, 0x6db60000, 0x6db60000}, 
     4529+       {0x00016444, 0x012482d4, 0x012482d4, 0x012482d4, 0x012482d4}, 
     4530+       {0x00016448, 0x64992000, 0x64992000, 0x64992000, 0x64992000}, 
     4531+       {0x00016454, 0x6db60000, 0x6db60000, 0x6db60000, 0x6db60000}, 
     4532+}; 
     4533+ 
     4534+static const u32 ar9462_2p0_soc_postamble[][5] = { 
     4535+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     4536+       {0x00007010, 0x00002233, 0x00002233, 0x00002233, 0x00002233}, 
     4537+}; 
     4538+ 
     4539+static const u32 ar9462_2p0_baseband_core[][2] = { 
     4540+       /* Addr      allmodes  */ 
     4541+       {0x00009800, 0xafe68e30}, 
     4542+       {0x00009804, 0xfd14e000}, 
     4543+       {0x00009808, 0x9c0a9f6b}, 
     4544+       {0x0000980c, 0x04900000}, 
     4545+       {0x00009814, 0x9280c00a}, 
     4546+       {0x00009818, 0x00000000}, 
     4547+       {0x0000981c, 0x00020028}, 
     4548+       {0x00009834, 0x6400a290}, 
     4549+       {0x00009838, 0x0108ecff}, 
     4550+       {0x0000983c, 0x0d000600}, 
     4551+       {0x00009880, 0x201fff00}, 
     4552+       {0x00009884, 0x00001042}, 
     4553+       {0x000098a4, 0x00200400}, 
     4554+       {0x000098b0, 0x32440bbe}, 
     4555+       {0x000098d0, 0x004b6a8e}, 
     4556+       {0x000098d4, 0x00000820}, 
     4557+       {0x000098dc, 0x00000000}, 
     4558+       {0x000098e4, 0x01ffffff}, 
     4559+       {0x000098e8, 0x01ffffff}, 
     4560+       {0x000098ec, 0x01ffffff}, 
     4561+       {0x000098f0, 0x00000000}, 
     4562+       {0x000098f4, 0x00000000}, 
     4563+       {0x00009bf0, 0x80000000}, 
     4564+       {0x00009c04, 0xff55ff55}, 
     4565+       {0x00009c08, 0x0320ff55}, 
     4566+       {0x00009c0c, 0x00000000}, 
     4567+       {0x00009c10, 0x00000000}, 
     4568+       {0x00009c14, 0x00046384}, 
     4569+       {0x00009c18, 0x05b6b440}, 
     4570+       {0x00009c1c, 0x00b6b440}, 
     4571+       {0x00009d00, 0xc080a333}, 
     4572+       {0x00009d04, 0x40206c10}, 
     4573+       {0x00009d08, 0x009c4060}, 
     4574+       {0x00009d0c, 0x9883800a}, 
     4575+       {0x00009d10, 0x01834061}, 
     4576+       {0x00009d14, 0x00c0040b}, 
     4577+       {0x00009d18, 0x00000000}, 
     4578+       {0x00009e08, 0x0038230c}, 
     4579+       {0x00009e24, 0x990bb515}, 
     4580+       {0x00009e28, 0x0c6f0000}, 
     4581+       {0x00009e30, 0x06336f77}, 
     4582+       {0x00009e34, 0x6af6532f}, 
     4583+       {0x00009e38, 0x0cc80c00}, 
     4584+       {0x00009e40, 0x0d261820}, 
     4585+       {0x00009e4c, 0x00001004}, 
     4586+       {0x00009e50, 0x00ff03f1}, 
     4587+       {0x00009e54, 0xe4c355c7}, 
     4588+       {0x00009e58, 0xfd897735}, 
     4589+       {0x00009e5c, 0xe9198724}, 
     4590+       {0x00009fc0, 0x803e4788}, 
     4591+       {0x00009fc4, 0x0001efb5}, 
     4592+       {0x00009fcc, 0x40000014}, 
     4593+       {0x00009fd0, 0x01193b93}, 
     4594+       {0x0000a20c, 0x00000000}, 
     4595+       {0x0000a220, 0x00000000}, 
     4596+       {0x0000a224, 0x00000000}, 
     4597+       {0x0000a228, 0x10002310}, 
     4598+       {0x0000a23c, 0x00000000}, 
     4599+       {0x0000a244, 0x0c000000}, 
     4600+       {0x0000a2a0, 0x00000001}, 
     4601+       {0x0000a2c0, 0x00000001}, 
     4602+       {0x0000a2c8, 0x00000000}, 
     4603+       {0x0000a2cc, 0x18c43433}, 
     4604+       {0x0000a2d4, 0x00000000}, 
     4605+       {0x0000a2ec, 0x00000000}, 
     4606+       {0x0000a2f0, 0x00000000}, 
     4607+       {0x0000a2f4, 0x00000000}, 
     4608+       {0x0000a2f8, 0x00000000}, 
     4609+       {0x0000a344, 0x00000000}, 
     4610+       {0x0000a34c, 0x00000000}, 
     4611+       {0x0000a350, 0x0000a000}, 
     4612+       {0x0000a364, 0x00000000}, 
     4613+       {0x0000a370, 0x00000000}, 
     4614+       {0x0000a390, 0x00000001}, 
     4615+       {0x0000a394, 0x00000444}, 
     4616+       {0x0000a398, 0x001f0e0f}, 
     4617+       {0x0000a39c, 0x0075393f}, 
     4618+       {0x0000a3a0, 0xb79f6427}, 
     4619+       {0x0000a3a4, 0x00000000}, 
     4620+       {0x0000a3a8, 0xaaaaaaaa}, 
     4621+       {0x0000a3ac, 0x3c466478}, 
     4622+       {0x0000a3c0, 0x20202020}, 
     4623+       {0x0000a3c4, 0x22222220}, 
     4624+       {0x0000a3c8, 0x20200020}, 
     4625+       {0x0000a3cc, 0x20202020}, 
     4626+       {0x0000a3d0, 0x20202020}, 
     4627+       {0x0000a3d4, 0x20202020}, 
     4628+       {0x0000a3d8, 0x20202020}, 
     4629+       {0x0000a3dc, 0x20202020}, 
     4630+       {0x0000a3e0, 0x20202020}, 
     4631+       {0x0000a3e4, 0x20202020}, 
     4632+       {0x0000a3e8, 0x20202020}, 
     4633+       {0x0000a3ec, 0x20202020}, 
     4634+       {0x0000a3f0, 0x00000000}, 
     4635+       {0x0000a3f4, 0x00000006}, 
     4636+       {0x0000a3f8, 0x0c9bd380}, 
     4637+       {0x0000a3fc, 0x000f0f01}, 
     4638+       {0x0000a400, 0x8fa91f01}, 
     4639+       {0x0000a404, 0x00000000}, 
     4640+       {0x0000a408, 0x0e79e5c6}, 
     4641+       {0x0000a40c, 0x00820820}, 
     4642+       {0x0000a414, 0x1ce739ce}, 
     4643+       {0x0000a418, 0x2d001dce}, 
     4644+       {0x0000a41c, 0x1ce739ce}, 
     4645+       {0x0000a420, 0x000001ce}, 
     4646+       {0x0000a424, 0x1ce739ce}, 
     4647+       {0x0000a428, 0x000001ce}, 
     4648+       {0x0000a42c, 0x1ce739ce}, 
     4649+       {0x0000a430, 0x1ce739ce}, 
     4650+       {0x0000a434, 0x00000000}, 
     4651+       {0x0000a438, 0x00001801}, 
     4652+       {0x0000a43c, 0x00100000}, 
     4653+       {0x0000a444, 0x00000000}, 
     4654+       {0x0000a448, 0x05000080}, 
     4655+       {0x0000a44c, 0x00000001}, 
     4656+       {0x0000a450, 0x00010000}, 
     4657+       {0x0000a454, 0x07000000}, 
     4658+       {0x0000a644, 0xbfad9d74}, 
     4659+       {0x0000a648, 0x0048060a}, 
     4660+       {0x0000a64c, 0x00002037}, 
     4661+       {0x0000a670, 0x03020100}, 
     4662+       {0x0000a674, 0x09080504}, 
     4663+       {0x0000a678, 0x0d0c0b0a}, 
     4664+       {0x0000a67c, 0x13121110}, 
     4665+       {0x0000a680, 0x31301514}, 
     4666+       {0x0000a684, 0x35343332}, 
     4667+       {0x0000a688, 0x00000036}, 
     4668+       {0x0000a690, 0x00000838}, 
     4669+       {0x0000a6b0, 0x0000000a}, 
     4670+       {0x0000a6b4, 0x00512c01}, 
     4671+       {0x0000a7c0, 0x00000000}, 
     4672+       {0x0000a7c4, 0xfffffffc}, 
     4673+       {0x0000a7c8, 0x00000000}, 
     4674+       {0x0000a7cc, 0x00000000}, 
     4675+       {0x0000a7d0, 0x00000000}, 
     4676+       {0x0000a7d4, 0x00000004}, 
     4677+       {0x0000a7dc, 0x00000001}, 
     4678+       {0x0000a7f0, 0x80000000}, 
     4679+       {0x0000a8d0, 0x004b6a8e}, 
     4680+       {0x0000a8d4, 0x00000820}, 
     4681+       {0x0000a8dc, 0x00000000}, 
     4682+       {0x0000a8f0, 0x00000000}, 
     4683+       {0x0000a8f4, 0x00000000}, 
     4684+       {0x0000abf0, 0x80000000}, 
     4685+       {0x0000b2d0, 0x00000080}, 
     4686+       {0x0000b2d4, 0x00000000}, 
     4687+       {0x0000b2ec, 0x00000000}, 
     4688+       {0x0000b2f0, 0x00000000}, 
     4689+       {0x0000b2f4, 0x00000000}, 
     4690+       {0x0000b2f8, 0x00000000}, 
     4691+       {0x0000b408, 0x0e79e5c0}, 
     4692+       {0x0000b40c, 0x00820820}, 
     4693+       {0x0000b420, 0x00000000}, 
     4694+       {0x0000b6b0, 0x0000000a}, 
     4695+       {0x0000b6b4, 0x00000001}, 
     4696+}; 
     4697+ 
     4698+static const u32 ar9462_2p0_radio_postamble[][5] = { 
     4699+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     4700+       {0x0001609c, 0x0b8ee524, 0x0b8ee524, 0x0b8ee524, 0x0b8ee524}, 
     4701+       {0x000160b0, 0x01d67f70, 0x01d67f70, 0x01d67f70, 0x01d67f70}, 
     4702+       {0x0001610c, 0x48000000, 0x40000000, 0x40000000, 0x40000000}, 
     4703+       {0x0001650c, 0x48000000, 0x40000000, 0x40000000, 0x40000000}, 
     4704+}; 
     4705+ 
     4706+static const u32 ar9462_modes_high_ob_db_tx_gain_table_2p0[][5] = { 
     4707+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     4708+       {0x000098bc, 0x00000002, 0x00000002, 0x00000002, 0x00000002}, 
     4709+       {0x0000a2dc, 0x01feee00, 0x01feee00, 0x03aaa352, 0x03aaa352}, 
     4710+       {0x0000a2e0, 0x0000f000, 0x0000f000, 0x03ccc584, 0x03ccc584}, 
     4711+       {0x0000a2e4, 0x01ff0000, 0x01ff0000, 0x03f0f800, 0x03f0f800}, 
     4712+       {0x0000a2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000}, 
     4713+       {0x0000a410, 0x000050d9, 0x000050d9, 0x000050d9, 0x000050d9}, 
     4714+       {0x0000a458, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     4715+       {0x0000a500, 0x00002220, 0x00002220, 0x00000000, 0x00000000}, 
     4716+       {0x0000a504, 0x06002223, 0x06002223, 0x04000002, 0x04000002}, 
     4717+       {0x0000a508, 0x0a022220, 0x0a022220, 0x08000004, 0x08000004}, 
     4718+       {0x0000a50c, 0x0f022223, 0x0f022223, 0x0b000200, 0x0b000200}, 
     4719+       {0x0000a510, 0x14022620, 0x14022620, 0x0f000202, 0x0f000202}, 
     4720+       {0x0000a514, 0x18022622, 0x18022622, 0x11000400, 0x11000400}, 
     4721+       {0x0000a518, 0x1b022822, 0x1b022822, 0x15000402, 0x15000402}, 
     4722+       {0x0000a51c, 0x20022842, 0x20022842, 0x19000404, 0x19000404}, 
     4723+       {0x0000a520, 0x22022c41, 0x22022c41, 0x1b000603, 0x1b000603}, 
     4724+       {0x0000a524, 0x28023042, 0x28023042, 0x1f000a02, 0x1f000a02}, 
     4725+       {0x0000a528, 0x2c023044, 0x2c023044, 0x23000a04, 0x23000a04}, 
     4726+       {0x0000a52c, 0x2f023644, 0x2f023644, 0x26000a20, 0x26000a20}, 
     4727+       {0x0000a530, 0x34025643, 0x34025643, 0x2a000e20, 0x2a000e20}, 
     4728+       {0x0000a534, 0x38025a44, 0x38025a44, 0x2e000e22, 0x2e000e22}, 
     4729+       {0x0000a538, 0x3b025e45, 0x3b025e45, 0x31000e24, 0x31000e24}, 
     4730+       {0x0000a53c, 0x41025e4a, 0x41025e4a, 0x34001640, 0x34001640}, 
     4731+       {0x0000a540, 0x48025e6c, 0x48025e6c, 0x38001660, 0x38001660}, 
     4732+       {0x0000a544, 0x4e025e8e, 0x4e025e8e, 0x3b001861, 0x3b001861}, 
     4733+       {0x0000a548, 0x53025eb2, 0x53025eb2, 0x3e001a81, 0x3e001a81}, 
     4734+       {0x0000a54c, 0x59025eb2, 0x59025eb2, 0x42001a83, 0x42001a83}, 
     4735+       {0x0000a550, 0x5f025ef6, 0x5f025ef6, 0x44001c84, 0x44001c84}, 
     4736+       {0x0000a554, 0x62025f56, 0x62025f56, 0x48001ce3, 0x48001ce3}, 
     4737+       {0x0000a558, 0x66027f56, 0x66027f56, 0x4c001ce5, 0x4c001ce5}, 
     4738+       {0x0000a55c, 0x6a029f56, 0x6a029f56, 0x50001ce9, 0x50001ce9}, 
     4739+       {0x0000a560, 0x70049f56, 0x70049f56, 0x54001ceb, 0x54001ceb}, 
     4740+       {0x0000a564, 0x7504ff56, 0x7504ff56, 0x56001eec, 0x56001eec}, 
     4741+       {0x0000a568, 0x7504ff56, 0x7504ff56, 0x56001eec, 0x56001eec}, 
     4742+       {0x0000a56c, 0x7504ff56, 0x7504ff56, 0x56001eec, 0x56001eec}, 
     4743+       {0x0000a570, 0x7504ff56, 0x7504ff56, 0x56001eec, 0x56001eec}, 
     4744+       {0x0000a574, 0x7504ff56, 0x7504ff56, 0x56001eec, 0x56001eec}, 
     4745+       {0x0000a578, 0x7504ff56, 0x7504ff56, 0x56001eec, 0x56001eec}, 
     4746+       {0x0000a57c, 0x7504ff56, 0x7504ff56, 0x56001eec, 0x56001eec}, 
     4747+       {0x0000a600, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     4748+       {0x0000a604, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     4749+       {0x0000a608, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     4750+       {0x0000a60c, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     4751+       {0x0000a610, 0x00804000, 0x00804000, 0x00000000, 0x00000000}, 
     4752+       {0x0000a614, 0x00804201, 0x00804201, 0x01404000, 0x01404000}, 
     4753+       {0x0000a618, 0x0280c802, 0x0280c802, 0x01404501, 0x01404501}, 
     4754+       {0x0000a61c, 0x0280ca03, 0x0280ca03, 0x02008501, 0x02008501}, 
     4755+       {0x0000a620, 0x04c15104, 0x04c15104, 0x0280ca03, 0x0280ca03}, 
     4756+       {0x0000a624, 0x04c15305, 0x04c15305, 0x03010c04, 0x03010c04}, 
     4757+       {0x0000a628, 0x04c15305, 0x04c15305, 0x04014c04, 0x04014c04}, 
     4758+       {0x0000a62c, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005}, 
     4759+       {0x0000a630, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005}, 
     4760+       {0x0000a634, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005}, 
     4761+       {0x0000a638, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005}, 
     4762+       {0x0000a63c, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005}, 
     4763+       {0x0000b2dc, 0x01feee00, 0x01feee00, 0x03aaa352, 0x03aaa352}, 
     4764+       {0x0000b2e0, 0x0000f000, 0x0000f000, 0x03ccc584, 0x03ccc584}, 
     4765+       {0x0000b2e4, 0x01ff0000, 0x01ff0000, 0x03f0f800, 0x03f0f800}, 
     4766+       {0x0000b2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000}, 
     4767+       {0x00016044, 0x056d82e4, 0x056d82e4, 0x056d82e4, 0x056d82e4}, 
     4768+       {0x00016048, 0x8db49060, 0x8db49060, 0x8db49060, 0x8db49060}, 
     4769+       {0x00016054, 0x6db60000, 0x6db60000, 0x6db60000, 0x6db60000}, 
     4770+       {0x00016444, 0x056d82e4, 0x056d82e4, 0x056d82e4, 0x056d82e4}, 
     4771+       {0x00016448, 0x8db49000, 0x8db49000, 0x8db49000, 0x8db49000}, 
     4772+       {0x00016454, 0x6db60000, 0x6db60000, 0x6db60000, 0x6db60000}, 
     4773+}; 
     4774+ 
     4775+static const u32 ar9462_2p0_radio_core[][2] = { 
     4776+       /* Addr      allmodes  */ 
     4777+       {0x00016000, 0x36db6db6}, 
     4778+       {0x00016004, 0x6db6db40}, 
     4779+       {0x00016008, 0x73f00000}, 
     4780+       {0x0001600c, 0x00000000}, 
     4781+       {0x00016010, 0x6d820001}, 
     4782+       {0x00016040, 0x7f80fff8}, 
     4783+       {0x0001604c, 0x2699e04f}, 
     4784+       {0x00016050, 0x6db6db6c}, 
     4785+       {0x00016058, 0x6c200000}, 
     4786+       {0x00016080, 0x00040000}, 
     4787+       {0x00016084, 0x9a68048c}, 
     4788+       {0x00016088, 0x54214514}, 
     4789+       {0x0001608c, 0x1203040b}, 
     4790+       {0x00016090, 0x24926490}, 
     4791+       {0x00016098, 0xd2888888}, 
     4792+       {0x000160a0, 0x0a108ffe}, 
     4793+       {0x000160a4, 0x812fc491}, 
     4794+       {0x000160a8, 0x423c8000}, 
     4795+       {0x000160b4, 0x92000000}, 
     4796+       {0x000160b8, 0x0285dddc}, 
     4797+       {0x000160bc, 0x02908888}, 
     4798+       {0x000160c0, 0x00adb6d0}, 
     4799+       {0x000160c4, 0x6db6db60}, 
     4800+       {0x000160c8, 0x6db6db6c}, 
     4801+       {0x000160cc, 0x0de6c1b0}, 
     4802+       {0x00016100, 0x3fffbe04}, 
     4803+       {0x00016104, 0xfff80000}, 
     4804+       {0x00016108, 0x00200400}, 
     4805+       {0x00016110, 0x00000000}, 
     4806+       {0x00016144, 0x02084080}, 
     4807+       {0x00016148, 0x000080c0}, 
     4808+       {0x00016280, 0x050a0001}, 
     4809+       {0x00016284, 0x3d841400}, 
     4810+       {0x00016288, 0x00000000}, 
     4811+       {0x0001628c, 0xe3000000}, 
     4812+       {0x00016290, 0xa1005080}, 
     4813+       {0x00016294, 0x00000020}, 
     4814+       {0x00016298, 0x54a82900}, 
     4815+       {0x00016340, 0x121e4276}, 
     4816+       {0x00016344, 0x00300000}, 
     4817+       {0x00016400, 0x36db6db6}, 
     4818+       {0x00016404, 0x6db6db40}, 
     4819+       {0x00016408, 0x73f00000}, 
     4820+       {0x0001640c, 0x00000000}, 
     4821+       {0x00016410, 0x6c800001}, 
     4822+       {0x00016440, 0x7f80fff8}, 
     4823+       {0x0001644c, 0x4699e04f}, 
     4824+       {0x00016450, 0x6db6db6c}, 
     4825+       {0x00016500, 0x3fffbe04}, 
     4826+       {0x00016504, 0xfff80000}, 
     4827+       {0x00016508, 0x00200400}, 
     4828+       {0x00016510, 0x00000000}, 
     4829+       {0x00016544, 0x02084080}, 
     4830+       {0x00016548, 0x000080c0}, 
     4831+}; 
     4832+ 
     4833+static const u32 ar9462_2p0_tx_gain_table_baseband_postamble_emulation[][5] = { 
     4834+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     4835+       {0x0000a410, 0x000000d5, 0x000000d5, 0x000000d5, 0x000000d5}, 
     4836+       {0x0000a500, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, 
     4837+       {0x0000a504, 0x00004002, 0x00004002, 0x00004002, 0x00004002}, 
     4838+       {0x0000a508, 0x00008004, 0x00008004, 0x00008004, 0x00008004}, 
     4839+       {0x0000a510, 0x0001000c, 0x0001000c, 0x0001000c, 0x0001000c}, 
     4840+       {0x0000a514, 0x0001420b, 0x0001420b, 0x0001420b, 0x0001420b}, 
     4841+       {0x0000a518, 0x0001824a, 0x0001824a, 0x0001824a, 0x0001824a}, 
     4842+       {0x0000a51c, 0x0001c44a, 0x0001c44a, 0x0001c44a, 0x0001c44a}, 
     4843+       {0x0000a520, 0x0002064a, 0x0002064a, 0x0002064a, 0x0002064a}, 
     4844+       {0x0000a524, 0x0002484a, 0x0002484a, 0x0002484a, 0x0002484a}, 
     4845+       {0x0000a528, 0x00028a4a, 0x00028a4a, 0x00028a4a, 0x00028a4a}, 
     4846+       {0x0000a52c, 0x0002cc4a, 0x0002cc4a, 0x0002cc4a, 0x0002cc4a}, 
     4847+       {0x0000a530, 0x00030e4a, 0x00030e4a, 0x00030e4a, 0x00030e4a}, 
     4848+       {0x0000a534, 0x00034e8a, 0x00034e8a, 0x00034e8a, 0x00034e8a}, 
     4849+}; 
     4850+ 
     4851+static const u32 ar9462_2p0_soc_preamble[][2] = { 
     4852+       /* Addr      allmodes  */ 
     4853+       {0x00007020, 0x00000000}, 
     4854+       {0x00007034, 0x00000002}, 
     4855+       {0x00007038, 0x000004c2}, 
     4856+}; 
     4857+ 
     4858+static const u32 ar9462_2p0_sys2ant[][2] = { 
     4859+       /* Addr      allmodes  */ 
     4860+       {0x00063120, 0x00801980}, 
     4861+}; 
     4862+ 
     4863+static const u32 ar9462_2p0_mac_core[][2] = { 
     4864+       /* Addr      allmodes  */ 
     4865+       {0x00000008, 0x00000000}, 
     4866+       {0x00000030, 0x000e0085}, 
     4867+       {0x00000034, 0x00000005}, 
     4868+       {0x00000040, 0x00000000}, 
     4869+       {0x00000044, 0x00000000}, 
     4870+       {0x00000048, 0x00000008}, 
     4871+       {0x0000004c, 0x00000010}, 
     4872+       {0x00000050, 0x00000000}, 
     4873+       {0x00001040, 0x002ffc0f}, 
     4874+       {0x00001044, 0x002ffc0f}, 
     4875+       {0x00001048, 0x002ffc0f}, 
     4876+       {0x0000104c, 0x002ffc0f}, 
     4877+       {0x00001050, 0x002ffc0f}, 
     4878+       {0x00001054, 0x002ffc0f}, 
     4879+       {0x00001058, 0x002ffc0f}, 
     4880+       {0x0000105c, 0x002ffc0f}, 
     4881+       {0x00001060, 0x002ffc0f}, 
     4882+       {0x00001064, 0x002ffc0f}, 
     4883+       {0x000010f0, 0x00000100}, 
     4884+       {0x00001270, 0x00000000}, 
     4885+       {0x000012b0, 0x00000000}, 
     4886+       {0x000012f0, 0x00000000}, 
     4887+       {0x0000143c, 0x00000000}, 
     4888+       {0x0000147c, 0x00000000}, 
     4889+       {0x00001810, 0x0f000003}, 
     4890+       {0x00008000, 0x00000000}, 
     4891+       {0x00008004, 0x00000000}, 
     4892+       {0x00008008, 0x00000000}, 
     4893+       {0x0000800c, 0x00000000}, 
     4894+       {0x00008018, 0x00000000}, 
     4895+       {0x00008020, 0x00000000}, 
     4896+       {0x00008038, 0x00000000}, 
     4897+       {0x0000803c, 0x00080000}, 
     4898+       {0x00008040, 0x00000000}, 
     4899+       {0x00008044, 0x00000000}, 
     4900+       {0x00008048, 0x00000000}, 
     4901+       {0x0000804c, 0xffffffff}, 
     4902+       {0x00008050, 0xffffffff}, 
     4903+       {0x00008054, 0x00000000}, 
     4904+       {0x00008058, 0x00000000}, 
     4905+       {0x0000805c, 0x000fc78f}, 
     4906+       {0x00008060, 0x0000000f}, 
     4907+       {0x00008064, 0x00000000}, 
     4908+       {0x00008070, 0x00000310}, 
     4909+       {0x00008074, 0x00000020}, 
     4910+       {0x00008078, 0x00000000}, 
     4911+       {0x0000809c, 0x0000000f}, 
     4912+       {0x000080a0, 0x00000000}, 
     4913+       {0x000080a4, 0x02ff0000}, 
     4914+       {0x000080a8, 0x0e070605}, 
     4915+       {0x000080ac, 0x0000000d}, 
     4916+       {0x000080b0, 0x00000000}, 
     4917+       {0x000080b4, 0x00000000}, 
     4918+       {0x000080b8, 0x00000000}, 
     4919+       {0x000080bc, 0x00000000}, 
     4920+       {0x000080c0, 0x2a800000}, 
     4921+       {0x000080c4, 0x06900168}, 
     4922+       {0x000080c8, 0x13881c20}, 
     4923+       {0x000080cc, 0x01f40000}, 
     4924+       {0x000080d0, 0x00252500}, 
     4925+       {0x000080d4, 0x00b00005}, 
     4926+       {0x000080d8, 0x00400002}, 
     4927+       {0x000080dc, 0x00000000}, 
     4928+       {0x000080e0, 0xffffffff}, 
     4929+       {0x000080e4, 0x0000ffff}, 
     4930+       {0x000080e8, 0x3f3f3f3f}, 
     4931+       {0x000080ec, 0x00000000}, 
     4932+       {0x000080f0, 0x00000000}, 
     4933+       {0x000080f4, 0x00000000}, 
     4934+       {0x000080fc, 0x00020000}, 
     4935+       {0x00008100, 0x00000000}, 
     4936+       {0x00008108, 0x00000052}, 
     4937+       {0x0000810c, 0x00000000}, 
     4938+       {0x00008110, 0x00000000}, 
     4939+       {0x00008114, 0x000007ff}, 
     4940+       {0x00008118, 0x000000aa}, 
     4941+       {0x0000811c, 0x00003210}, 
     4942+       {0x00008124, 0x00000000}, 
     4943+       {0x00008128, 0x00000000}, 
     4944+       {0x0000812c, 0x00000000}, 
     4945+       {0x00008130, 0x00000000}, 
     4946+       {0x00008134, 0x00000000}, 
     4947+       {0x00008138, 0x00000000}, 
     4948+       {0x0000813c, 0x0000ffff}, 
     4949+       {0x00008144, 0xffffffff}, 
     4950+       {0x00008168, 0x00000000}, 
     4951+       {0x0000816c, 0x00000000}, 
     4952+       {0x00008170, 0x18486e00}, 
     4953+       {0x00008174, 0x33332210}, 
     4954+       {0x00008178, 0x00000000}, 
     4955+       {0x0000817c, 0x00020000}, 
     4956+       {0x000081c4, 0x33332210}, 
     4957+       {0x000081c8, 0x00000000}, 
     4958+       {0x000081cc, 0x00000000}, 
     4959+       {0x000081d4, 0x00000000}, 
     4960+       {0x000081ec, 0x00000000}, 
     4961+       {0x000081f0, 0x00000000}, 
     4962+       {0x000081f4, 0x00000000}, 
     4963+       {0x000081f8, 0x00000000}, 
     4964+       {0x000081fc, 0x00000000}, 
     4965+       {0x00008240, 0x00100000}, 
     4966+       {0x00008244, 0x0010f400}, 
     4967+       {0x00008248, 0x00000800}, 
     4968+       {0x0000824c, 0x0001e800}, 
     4969+       {0x00008250, 0x00000000}, 
     4970+       {0x00008254, 0x00000000}, 
     4971+       {0x00008258, 0x00000000}, 
     4972+       {0x0000825c, 0x40000000}, 
     4973+       {0x00008260, 0x00080922}, 
     4974+       {0x00008264, 0x99c00010}, 
     4975+       {0x00008268, 0xffffffff}, 
     4976+       {0x0000826c, 0x0000ffff}, 
     4977+       {0x00008270, 0x00000000}, 
     4978+       {0x00008274, 0x40000000}, 
     4979+       {0x00008278, 0x003e4180}, 
     4980+       {0x0000827c, 0x00000004}, 
     4981+       {0x00008284, 0x0000002c}, 
     4982+       {0x00008288, 0x0000002c}, 
     4983+       {0x0000828c, 0x000000ff}, 
     4984+       {0x00008294, 0x00000000}, 
     4985+       {0x00008298, 0x00000000}, 
     4986+       {0x0000829c, 0x00000000}, 
     4987+       {0x00008300, 0x00000140}, 
     4988+       {0x00008314, 0x00000000}, 
     4989+       {0x0000831c, 0x0000010d}, 
     4990+       {0x00008328, 0x00000000}, 
     4991+       {0x0000832c, 0x0000001f}, 
     4992+       {0x00008330, 0x00000302}, 
     4993+       {0x00008334, 0x00000700}, 
     4994+       {0x00008338, 0xffff0000}, 
     4995+       {0x0000833c, 0x02400000}, 
     4996+       {0x00008340, 0x000107ff}, 
     4997+       {0x00008344, 0xaa48105b}, 
     4998+       {0x00008348, 0x008f0000}, 
     4999+       {0x0000835c, 0x00000000}, 
     5000+       {0x00008360, 0xffffffff}, 
     5001+       {0x00008364, 0xffffffff}, 
     5002+       {0x00008368, 0x00000000}, 
     5003+       {0x00008370, 0x00000000}, 
     5004+       {0x00008374, 0x000000ff}, 
     5005+       {0x00008378, 0x00000000}, 
     5006+       {0x0000837c, 0x00000000}, 
     5007+       {0x00008380, 0xffffffff}, 
     5008+       {0x00008384, 0xffffffff}, 
     5009+       {0x00008390, 0xffffffff}, 
     5010+       {0x00008394, 0xffffffff}, 
     5011+       {0x00008398, 0x00000000}, 
     5012+       {0x0000839c, 0x00000000}, 
     5013+       {0x000083a4, 0x0000fa14}, 
     5014+       {0x000083a8, 0x000f0c00}, 
     5015+       {0x000083ac, 0x33332210}, 
     5016+       {0x000083b0, 0x33332210}, 
     5017+       {0x000083b4, 0x33332210}, 
     5018+       {0x000083b8, 0x33332210}, 
     5019+       {0x000083bc, 0x00000000}, 
     5020+       {0x000083c0, 0x00000000}, 
     5021+       {0x000083c4, 0x00000000}, 
     5022+       {0x000083c8, 0x00000000}, 
     5023+       {0x000083cc, 0x00000200}, 
     5024+       {0x000083d0, 0x000301ff}, 
     5025+}; 
     5026+ 
     5027+static const u32 ar9462_2p0_mac_postamble[][5] = { 
     5028+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     5029+       {0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160}, 
     5030+       {0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c}, 
     5031+       {0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38}, 
     5032+       {0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00}, 
     5033+       {0x0000801c, 0x128d8027, 0x128d804f, 0x12e00057, 0x12e0002b}, 
     5034+       {0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810}, 
     5035+       {0x000081d0, 0x00003210, 0x00003210, 0x0000320a, 0x0000320a}, 
     5036+       {0x00008318, 0x00003e80, 0x00007d00, 0x00006880, 0x00003440}, 
     5037+}; 
     5038+ 
     5039+static const u32 ar9462_common_mixed_rx_gain_table_2p0[][2] = { 
     5040+       /* Addr      allmodes  */ 
     5041+       {0x0000a000, 0x00010000}, 
     5042+       {0x0000a004, 0x00030002}, 
     5043+       {0x0000a008, 0x00050004}, 
     5044+       {0x0000a00c, 0x00810080}, 
     5045+       {0x0000a010, 0x00830082}, 
     5046+       {0x0000a014, 0x01810180}, 
     5047+       {0x0000a018, 0x01830182}, 
     5048+       {0x0000a01c, 0x01850184}, 
     5049+       {0x0000a020, 0x01890188}, 
     5050+       {0x0000a024, 0x018b018a}, 
     5051+       {0x0000a028, 0x018d018c}, 
     5052+       {0x0000a02c, 0x03820190}, 
     5053+       {0x0000a030, 0x03840383}, 
     5054+       {0x0000a034, 0x03880385}, 
     5055+       {0x0000a038, 0x038a0389}, 
     5056+       {0x0000a03c, 0x038c038b}, 
     5057+       {0x0000a040, 0x0390038d}, 
     5058+       {0x0000a044, 0x03920391}, 
     5059+       {0x0000a048, 0x03940393}, 
     5060+       {0x0000a04c, 0x03960395}, 
     5061+       {0x0000a050, 0x00000000}, 
     5062+       {0x0000a054, 0x00000000}, 
     5063+       {0x0000a058, 0x00000000}, 
     5064+       {0x0000a05c, 0x00000000}, 
     5065+       {0x0000a060, 0x00000000}, 
     5066+       {0x0000a064, 0x00000000}, 
     5067+       {0x0000a068, 0x00000000}, 
     5068+       {0x0000a06c, 0x00000000}, 
     5069+       {0x0000a070, 0x00000000}, 
     5070+       {0x0000a074, 0x00000000}, 
     5071+       {0x0000a078, 0x00000000}, 
     5072+       {0x0000a07c, 0x00000000}, 
     5073+       {0x0000a080, 0x29292929}, 
     5074+       {0x0000a084, 0x29292929}, 
     5075+       {0x0000a088, 0x29292929}, 
     5076+       {0x0000a08c, 0x29292929}, 
     5077+       {0x0000a090, 0x22292929}, 
     5078+       {0x0000a094, 0x1d1d2222}, 
     5079+       {0x0000a098, 0x0c111117}, 
     5080+       {0x0000a09c, 0x00030303}, 
     5081+       {0x0000a0a0, 0x00000000}, 
     5082+       {0x0000a0a4, 0x00000000}, 
     5083+       {0x0000a0a8, 0x00000000}, 
     5084+       {0x0000a0ac, 0x00000000}, 
     5085+       {0x0000a0b0, 0x00000000}, 
     5086+       {0x0000a0b4, 0x00000000}, 
     5087+       {0x0000a0b8, 0x00000000}, 
     5088+       {0x0000a0bc, 0x00000000}, 
     5089+       {0x0000a0c0, 0x001f0000}, 
     5090+       {0x0000a0c4, 0x01000101}, 
     5091+       {0x0000a0c8, 0x011e011f}, 
     5092+       {0x0000a0cc, 0x011c011d}, 
     5093+       {0x0000a0d0, 0x02030204}, 
     5094+       {0x0000a0d4, 0x02010202}, 
     5095+       {0x0000a0d8, 0x021f0200}, 
     5096+       {0x0000a0dc, 0x0302021e}, 
     5097+       {0x0000a0e0, 0x03000301}, 
     5098+       {0x0000a0e4, 0x031e031f}, 
     5099+       {0x0000a0e8, 0x0402031d}, 
     5100+       {0x0000a0ec, 0x04000401}, 
     5101+       {0x0000a0f0, 0x041e041f}, 
     5102+       {0x0000a0f4, 0x0502041d}, 
     5103+       {0x0000a0f8, 0x05000501}, 
     5104+       {0x0000a0fc, 0x051e051f}, 
     5105+       {0x0000a100, 0x06010602}, 
     5106+       {0x0000a104, 0x061f0600}, 
     5107+       {0x0000a108, 0x061d061e}, 
     5108+       {0x0000a10c, 0x07020703}, 
     5109+       {0x0000a110, 0x07000701}, 
     5110+       {0x0000a114, 0x00000000}, 
     5111+       {0x0000a118, 0x00000000}, 
     5112+       {0x0000a11c, 0x00000000}, 
     5113+       {0x0000a120, 0x00000000}, 
     5114+       {0x0000a124, 0x00000000}, 
     5115+       {0x0000a128, 0x00000000}, 
     5116+       {0x0000a12c, 0x00000000}, 
     5117+       {0x0000a130, 0x00000000}, 
     5118+       {0x0000a134, 0x00000000}, 
     5119+       {0x0000a138, 0x00000000}, 
     5120+       {0x0000a13c, 0x00000000}, 
     5121+       {0x0000a140, 0x001f0000}, 
     5122+       {0x0000a144, 0x01000101}, 
     5123+       {0x0000a148, 0x011e011f}, 
     5124+       {0x0000a14c, 0x011c011d}, 
     5125+       {0x0000a150, 0x02030204}, 
     5126+       {0x0000a154, 0x02010202}, 
     5127+       {0x0000a158, 0x021f0200}, 
     5128+       {0x0000a15c, 0x0302021e}, 
     5129+       {0x0000a160, 0x03000301}, 
     5130+       {0x0000a164, 0x031e031f}, 
     5131+       {0x0000a168, 0x0402031d}, 
     5132+       {0x0000a16c, 0x04000401}, 
     5133+       {0x0000a170, 0x041e041f}, 
     5134+       {0x0000a174, 0x0502041d}, 
     5135+       {0x0000a178, 0x05000501}, 
     5136+       {0x0000a17c, 0x051e051f}, 
     5137+       {0x0000a180, 0x06010602}, 
     5138+       {0x0000a184, 0x061f0600}, 
     5139+       {0x0000a188, 0x061d061e}, 
     5140+       {0x0000a18c, 0x07020703}, 
     5141+       {0x0000a190, 0x07000701}, 
     5142+       {0x0000a194, 0x00000000}, 
     5143+       {0x0000a198, 0x00000000}, 
     5144+       {0x0000a19c, 0x00000000}, 
     5145+       {0x0000a1a0, 0x00000000}, 
     5146+       {0x0000a1a4, 0x00000000}, 
     5147+       {0x0000a1a8, 0x00000000}, 
     5148+       {0x0000a1ac, 0x00000000}, 
     5149+       {0x0000a1b0, 0x00000000}, 
     5150+       {0x0000a1b4, 0x00000000}, 
     5151+       {0x0000a1b8, 0x00000000}, 
     5152+       {0x0000a1bc, 0x00000000}, 
     5153+       {0x0000a1c0, 0x00000000}, 
     5154+       {0x0000a1c4, 0x00000000}, 
     5155+       {0x0000a1c8, 0x00000000}, 
     5156+       {0x0000a1cc, 0x00000000}, 
     5157+       {0x0000a1d0, 0x00000000}, 
     5158+       {0x0000a1d4, 0x00000000}, 
     5159+       {0x0000a1d8, 0x00000000}, 
     5160+       {0x0000a1dc, 0x00000000}, 
     5161+       {0x0000a1e0, 0x00000000}, 
     5162+       {0x0000a1e4, 0x00000000}, 
     5163+       {0x0000a1e8, 0x00000000}, 
     5164+       {0x0000a1ec, 0x00000000}, 
     5165+       {0x0000a1f0, 0x00000396}, 
     5166+       {0x0000a1f4, 0x00000396}, 
     5167+       {0x0000a1f8, 0x00000396}, 
     5168+       {0x0000a1fc, 0x00000196}, 
     5169+       {0x0000b000, 0x00010000}, 
     5170+       {0x0000b004, 0x00030002}, 
     5171+       {0x0000b008, 0x00050004}, 
     5172+       {0x0000b00c, 0x00810080}, 
     5173+       {0x0000b010, 0x00830082}, 
     5174+       {0x0000b014, 0x01810180}, 
     5175+       {0x0000b018, 0x01830182}, 
     5176+       {0x0000b01c, 0x01850184}, 
     5177+       {0x0000b020, 0x02810280}, 
     5178+       {0x0000b024, 0x02830282}, 
     5179+       {0x0000b028, 0x02850284}, 
     5180+       {0x0000b02c, 0x02890288}, 
     5181+       {0x0000b030, 0x028b028a}, 
     5182+       {0x0000b034, 0x0388028c}, 
     5183+       {0x0000b038, 0x038a0389}, 
     5184+       {0x0000b03c, 0x038c038b}, 
     5185+       {0x0000b040, 0x0390038d}, 
     5186+       {0x0000b044, 0x03920391}, 
     5187+       {0x0000b048, 0x03940393}, 
     5188+       {0x0000b04c, 0x03960395}, 
     5189+       {0x0000b050, 0x00000000}, 
     5190+       {0x0000b054, 0x00000000}, 
     5191+       {0x0000b058, 0x00000000}, 
     5192+       {0x0000b05c, 0x00000000}, 
     5193+       {0x0000b060, 0x00000000}, 
     5194+       {0x0000b064, 0x00000000}, 
     5195+       {0x0000b068, 0x00000000}, 
     5196+       {0x0000b06c, 0x00000000}, 
     5197+       {0x0000b070, 0x00000000}, 
     5198+       {0x0000b074, 0x00000000}, 
     5199+       {0x0000b078, 0x00000000}, 
     5200+       {0x0000b07c, 0x00000000}, 
     5201+       {0x0000b080, 0x2a2d2f32}, 
     5202+       {0x0000b084, 0x21232328}, 
     5203+       {0x0000b088, 0x19191c1e}, 
     5204+       {0x0000b08c, 0x12141417}, 
     5205+       {0x0000b090, 0x07070e0e}, 
     5206+       {0x0000b094, 0x03030305}, 
     5207+       {0x0000b098, 0x00000003}, 
     5208+       {0x0000b09c, 0x00000000}, 
     5209+       {0x0000b0a0, 0x00000000}, 
     5210+       {0x0000b0a4, 0x00000000}, 
     5211+       {0x0000b0a8, 0x00000000}, 
     5212+       {0x0000b0ac, 0x00000000}, 
     5213+       {0x0000b0b0, 0x00000000}, 
     5214+       {0x0000b0b4, 0x00000000}, 
     5215+       {0x0000b0b8, 0x00000000}, 
     5216+       {0x0000b0bc, 0x00000000}, 
     5217+       {0x0000b0c0, 0x003f0020}, 
     5218+       {0x0000b0c4, 0x00400041}, 
     5219+       {0x0000b0c8, 0x0140005f}, 
     5220+       {0x0000b0cc, 0x0160015f}, 
     5221+       {0x0000b0d0, 0x017e017f}, 
     5222+       {0x0000b0d4, 0x02410242}, 
     5223+       {0x0000b0d8, 0x025f0240}, 
     5224+       {0x0000b0dc, 0x027f0260}, 
     5225+       {0x0000b0e0, 0x0341027e}, 
     5226+       {0x0000b0e4, 0x035f0340}, 
     5227+       {0x0000b0e8, 0x037f0360}, 
     5228+       {0x0000b0ec, 0x04400441}, 
     5229+       {0x0000b0f0, 0x0460045f}, 
     5230+       {0x0000b0f4, 0x0541047f}, 
     5231+       {0x0000b0f8, 0x055f0540}, 
     5232+       {0x0000b0fc, 0x057f0560}, 
     5233+       {0x0000b100, 0x06400641}, 
     5234+       {0x0000b104, 0x0660065f}, 
     5235+       {0x0000b108, 0x067e067f}, 
     5236+       {0x0000b10c, 0x07410742}, 
     5237+       {0x0000b110, 0x075f0740}, 
     5238+       {0x0000b114, 0x077f0760}, 
     5239+       {0x0000b118, 0x07800781}, 
     5240+       {0x0000b11c, 0x07a0079f}, 
     5241+       {0x0000b120, 0x07c107bf}, 
     5242+       {0x0000b124, 0x000007c0}, 
     5243+       {0x0000b128, 0x00000000}, 
     5244+       {0x0000b12c, 0x00000000}, 
     5245+       {0x0000b130, 0x00000000}, 
     5246+       {0x0000b134, 0x00000000}, 
     5247+       {0x0000b138, 0x00000000}, 
     5248+       {0x0000b13c, 0x00000000}, 
     5249+       {0x0000b140, 0x003f0020}, 
     5250+       {0x0000b144, 0x00400041}, 
     5251+       {0x0000b148, 0x0140005f}, 
     5252+       {0x0000b14c, 0x0160015f}, 
     5253+       {0x0000b150, 0x017e017f}, 
     5254+       {0x0000b154, 0x02410242}, 
     5255+       {0x0000b158, 0x025f0240}, 
     5256+       {0x0000b15c, 0x027f0260}, 
     5257+       {0x0000b160, 0x0341027e}, 
     5258+       {0x0000b164, 0x035f0340}, 
     5259+       {0x0000b168, 0x037f0360}, 
     5260+       {0x0000b16c, 0x04400441}, 
     5261+       {0x0000b170, 0x0460045f}, 
     5262+       {0x0000b174, 0x0541047f}, 
     5263+       {0x0000b178, 0x055f0540}, 
     5264+       {0x0000b17c, 0x057f0560}, 
     5265+       {0x0000b180, 0x06400641}, 
     5266+       {0x0000b184, 0x0660065f}, 
     5267+       {0x0000b188, 0x067e067f}, 
     5268+       {0x0000b18c, 0x07410742}, 
     5269+       {0x0000b190, 0x075f0740}, 
     5270+       {0x0000b194, 0x077f0760}, 
     5271+       {0x0000b198, 0x07800781}, 
     5272+       {0x0000b19c, 0x07a0079f}, 
     5273+       {0x0000b1a0, 0x07c107bf}, 
     5274+       {0x0000b1a4, 0x000007c0}, 
     5275+       {0x0000b1a8, 0x00000000}, 
     5276+       {0x0000b1ac, 0x00000000}, 
     5277+       {0x0000b1b0, 0x00000000}, 
     5278+       {0x0000b1b4, 0x00000000}, 
     5279+       {0x0000b1b8, 0x00000000}, 
     5280+       {0x0000b1bc, 0x00000000}, 
     5281+       {0x0000b1c0, 0x00000000}, 
     5282+       {0x0000b1c4, 0x00000000}, 
     5283+       {0x0000b1c8, 0x00000000}, 
     5284+       {0x0000b1cc, 0x00000000}, 
     5285+       {0x0000b1d0, 0x00000000}, 
     5286+       {0x0000b1d4, 0x00000000}, 
     5287+       {0x0000b1d8, 0x00000000}, 
     5288+       {0x0000b1dc, 0x00000000}, 
     5289+       {0x0000b1e0, 0x00000000}, 
     5290+       {0x0000b1e4, 0x00000000}, 
     5291+       {0x0000b1e8, 0x00000000}, 
     5292+       {0x0000b1ec, 0x00000000}, 
     5293+       {0x0000b1f0, 0x00000396}, 
     5294+       {0x0000b1f4, 0x00000396}, 
     5295+       {0x0000b1f8, 0x00000396}, 
     5296+       {0x0000b1fc, 0x00000196}, 
     5297+}; 
     5298+ 
     5299+static const u32 ar9462_modes_green_ob_db_tx_gain_table_2p0[][5] = { 
     5300+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */ 
     5301+       {0x000098bc, 0x00000003, 0x00000003, 0x00000003, 0x00000003}, 
     5302+       {0x0000a2dc, 0x01feee00, 0x01feee00, 0x03aaa352, 0x03aaa352}, 
     5303+       {0x0000a2e0, 0x0000f000, 0x0000f000, 0x03ccc584, 0x03ccc584}, 
     5304+       {0x0000a2e4, 0x01ff0000, 0x01ff0000, 0x03f0f800, 0x03f0f800}, 
     5305+       {0x0000a2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000}, 
     5306+       {0x0000a410, 0x000050d9, 0x000050d9, 0x000050d9, 0x000050d9}, 
     5307+       {0x0000a458, 0x80000000, 0x80000000, 0x80000000, 0x80000000}, 
     5308+       {0x0000a500, 0x00002220, 0x00002220, 0x00000000, 0x00000000}, 
     5309+       {0x0000a504, 0x06002223, 0x06002223, 0x04000002, 0x04000002}, 
     5310+       {0x0000a508, 0x0a022220, 0x0a022220, 0x08000004, 0x08000004}, 
     5311+       {0x0000a50c, 0x0f022223, 0x0f022223, 0x0b000200, 0x0b000200}, 
     5312+  &nb