hostapd: make entropy collection contribute to the kernel pool
[15.05/openwrt.git] / package / mac80211 / patches / 310-pending_work.patch
1 --- a/drivers/net/wireless/ath/ath9k/ath9k.h
2 +++ b/drivers/net/wireless/ath/ath9k/ath9k.h
3 @@ -189,7 +189,6 @@ struct ath_txq {
4         u32 axq_ampdu_depth;
5         bool stopped;
6         bool axq_tx_inprogress;
7 -       bool txq_flush_inprogress;
8         struct list_head axq_acq;
9         struct list_head txq_fifo[ATH_TXFIFO_DEPTH];
10         struct list_head txq_fifo_pending;
11 --- a/drivers/net/wireless/ath/ath9k/beacon.c
12 +++ b/drivers/net/wireless/ath/ath9k/beacon.c
13 @@ -373,6 +373,7 @@ void ath_beacon_tasklet(unsigned long da
14                         ath_dbg(common, ATH_DBG_BSTUCK,
15                                 "missed %u consecutive beacons\n",
16                                 sc->beacon.bmisscnt);
17 +                       ath9k_hw_stop_dma_queue(ah, sc->beacon.beaconq);
18                         ath9k_hw_bstuck_nfcal(ah);
19                 } else if (sc->beacon.bmisscnt >= BSTUCK_THRESH) {
20                         ath_dbg(common, ATH_DBG_BSTUCK,
21 @@ -450,16 +451,6 @@ void ath_beacon_tasklet(unsigned long da
22                 sc->beacon.updateslot = OK;
23         }
24         if (bfaddr != 0) {
25 -               /*
26 -                * Stop any current dma and put the new frame(s) on the queue.
27 -                * This should never fail since we check above that no frames
28 -                * are still pending on the queue.
29 -                */
30 -               if (!ath9k_hw_stoptxdma(ah, sc->beacon.beaconq)) {
31 -                       ath_err(common, "beacon queue %u did not stop?\n",
32 -                               sc->beacon.beaconq);
33 -               }
34 -
35                 /* NB: cabq traffic should already be queued and primed */
36                 ath9k_hw_puttxbuf(ah, sc->beacon.beaconq, bfaddr);
37                 ath9k_hw_txstart(ah, sc->beacon.beaconq);
38 @@ -780,7 +771,7 @@ void ath9k_set_beaconing_status(struct a
39                 ah->imask &= ~ATH9K_INT_SWBA;
40                 ath9k_hw_set_interrupts(ah, ah->imask);
41                 tasklet_kill(&sc->bcon_tasklet);
42 -               ath9k_hw_stoptxdma(ah, sc->beacon.beaconq);
43 +               ath9k_hw_stop_dma_queue(ah, sc->beacon.beaconq);
44         }
45         ath9k_ps_restore(sc);
46  }
47 --- a/drivers/net/wireless/ath/ath9k/hw.h
48 +++ b/drivers/net/wireless/ath/ath9k/hw.h
49 @@ -95,9 +95,9 @@
50  #define REG_READ_FIELD(_a, _r, _f) \
51         (((REG_READ(_a, _r) & _f) >> _f##_S))
52  #define REG_SET_BIT(_a, _r, _f) \
53 -       REG_WRITE(_a, _r, REG_READ(_a, _r) | _f)
54 +       REG_WRITE(_a, _r, REG_READ(_a, _r) | (_f))
55  #define REG_CLR_BIT(_a, _r, _f) \
56 -       REG_WRITE(_a, _r, REG_READ(_a, _r) & ~_f)
57 +       REG_WRITE(_a, _r, REG_READ(_a, _r) & ~(_f))
58  
59  #define DO_DELAY(x) do {                       \
60                 if ((++(x) % 64) == 0)          \
61 --- a/drivers/net/wireless/ath/ath9k/mac.c
62 +++ b/drivers/net/wireless/ath/ath9k/mac.c
63 @@ -143,84 +143,59 @@ bool ath9k_hw_updatetxtriglevel(struct a
64  }
65  EXPORT_SYMBOL(ath9k_hw_updatetxtriglevel);
66  
67 -bool ath9k_hw_stoptxdma(struct ath_hw *ah, u32 q)
68 +void ath9k_hw_abort_tx_dma(struct ath_hw *ah)
69  {
70 -#define ATH9K_TX_STOP_DMA_TIMEOUT      4000    /* usec */
71 -#define ATH9K_TIME_QUANTUM             100     /* usec */
72 -       struct ath_common *common = ath9k_hw_common(ah);
73 -       struct ath9k_hw_capabilities *pCap = &ah->caps;
74 -       struct ath9k_tx_queue_info *qi;
75 -       u32 tsfLow, j, wait;
76 -       u32 wait_time = ATH9K_TX_STOP_DMA_TIMEOUT / ATH9K_TIME_QUANTUM;
77 +       int i, q;
78  
79 -       if (q >= pCap->total_queues) {
80 -               ath_dbg(common, ATH_DBG_QUEUE,
81 -                       "Stopping TX DMA, invalid queue: %u\n", q);
82 -               return false;
83 -       }
84 +       REG_WRITE(ah, AR_Q_TXD, AR_Q_TXD_M);
85  
86 -       qi = &ah->txq[q];
87 -       if (qi->tqi_type == ATH9K_TX_QUEUE_INACTIVE) {
88 -               ath_dbg(common, ATH_DBG_QUEUE,
89 -                       "Stopping TX DMA, inactive queue: %u\n", q);
90 -               return false;
91 -       }
92 +       REG_SET_BIT(ah, AR_PCU_MISC, AR_PCU_FORCE_QUIET_COLL | AR_PCU_CLEAR_VMF);
93 +       REG_SET_BIT(ah, AR_DIAG_SW, AR_DIAG_FORCE_CH_IDLE_HIGH);
94 +       REG_SET_BIT(ah, AR_D_GBL_IFS_MISC, AR_D_GBL_IFS_MISC_IGNORE_BACKOFF);
95  
96 -       REG_WRITE(ah, AR_Q_TXD, 1 << q);
97 +       for (q = 0; q < AR_NUM_QCU; q++) {
98 +               for (i = 0; i < 1000; i++) {
99 +                       if (i)
100 +                               udelay(5);
101  
102 -       for (wait = wait_time; wait != 0; wait--) {
103 -               if (ath9k_hw_numtxpending(ah, q) == 0)
104 -                       break;
105 -               udelay(ATH9K_TIME_QUANTUM);
106 +                       if (!ath9k_hw_numtxpending(ah, q))
107 +                               break;
108 +               }
109         }
110  
111 -       if (ath9k_hw_numtxpending(ah, q)) {
112 -               ath_dbg(common, ATH_DBG_QUEUE,
113 -                       "%s: Num of pending TX Frames %d on Q %d\n",
114 -                       __func__, ath9k_hw_numtxpending(ah, q), q);
115 -
116 -               for (j = 0; j < 2; j++) {
117 -                       tsfLow = REG_READ(ah, AR_TSF_L32);
118 -                       REG_WRITE(ah, AR_QUIET2,
119 -                                 SM(10, AR_QUIET2_QUIET_DUR));
120 -                       REG_WRITE(ah, AR_QUIET_PERIOD, 100);
121 -                       REG_WRITE(ah, AR_NEXT_QUIET_TIMER, tsfLow >> 10);
122 -                       REG_SET_BIT(ah, AR_TIMER_MODE,
123 -                                      AR_QUIET_TIMER_EN);
124 -
125 -                       if ((REG_READ(ah, AR_TSF_L32) >> 10) == (tsfLow >> 10))
126 -                               break;
127 +       REG_CLR_BIT(ah, AR_PCU_MISC, AR_PCU_FORCE_QUIET_COLL | AR_PCU_CLEAR_VMF);
128 +       REG_CLR_BIT(ah, AR_DIAG_SW, AR_DIAG_FORCE_CH_IDLE_HIGH);
129 +       REG_CLR_BIT(ah, AR_D_GBL_IFS_MISC, AR_D_GBL_IFS_MISC_IGNORE_BACKOFF);
130  
131 -                       ath_dbg(common, ATH_DBG_QUEUE,
132 -                               "TSF has moved while trying to set quiet time TSF: 0x%08x\n",
133 -                               tsfLow);
134 -               }
135 +       REG_WRITE(ah, AR_Q_TXD, 0);
136 +}
137 +EXPORT_SYMBOL(ath9k_hw_abort_tx_dma);
138  
139 -               REG_SET_BIT(ah, AR_DIAG_SW, AR_DIAG_FORCE_CH_IDLE_HIGH);
140 +bool ath9k_hw_stop_dma_queue(struct ath_hw *ah, u32 q)
141 +{
142 +#define ATH9K_TX_STOP_DMA_TIMEOUT      1000    /* usec */
143 +#define ATH9K_TIME_QUANTUM             100     /* usec */
144 +       int wait_time = ATH9K_TX_STOP_DMA_TIMEOUT / ATH9K_TIME_QUANTUM;
145 +       int wait;
146  
147 -               udelay(200);
148 -               REG_CLR_BIT(ah, AR_TIMER_MODE, AR_QUIET_TIMER_EN);
149 +       REG_WRITE(ah, AR_Q_TXD, 1 << q);
150  
151 -               wait = wait_time;
152 -               while (ath9k_hw_numtxpending(ah, q)) {
153 -                       if ((--wait) == 0) {
154 -                               ath_err(common,
155 -                                       "Failed to stop TX DMA in 100 msec after killing last frame\n");
156 -                               break;
157 -                       }
158 +       for (wait = wait_time; wait != 0; wait--) {
159 +               if (wait != wait_time)
160                         udelay(ATH9K_TIME_QUANTUM);
161 -               }
162  
163 -               REG_CLR_BIT(ah, AR_DIAG_SW, AR_DIAG_FORCE_CH_IDLE_HIGH);
164 +               if (ath9k_hw_numtxpending(ah, q) == 0)
165 +                       break;
166         }
167  
168         REG_WRITE(ah, AR_Q_TXD, 0);
169 +
170         return wait != 0;
171  
172  #undef ATH9K_TX_STOP_DMA_TIMEOUT
173  #undef ATH9K_TIME_QUANTUM
174  }
175 -EXPORT_SYMBOL(ath9k_hw_stoptxdma);
176 +EXPORT_SYMBOL(ath9k_hw_stop_dma_queue);
177  
178  void ath9k_hw_gettxintrtxqs(struct ath_hw *ah, u32 *txqs)
179  {
180 --- a/drivers/net/wireless/ath/ath9k/mac.h
181 +++ b/drivers/net/wireless/ath/ath9k/mac.h
182 @@ -676,7 +676,8 @@ void ath9k_hw_txstart(struct ath_hw *ah,
183  void ath9k_hw_cleartxdesc(struct ath_hw *ah, void *ds);
184  u32 ath9k_hw_numtxpending(struct ath_hw *ah, u32 q);
185  bool ath9k_hw_updatetxtriglevel(struct ath_hw *ah, bool bIncTrigLevel);
186 -bool ath9k_hw_stoptxdma(struct ath_hw *ah, u32 q);
187 +bool ath9k_hw_stop_dma_queue(struct ath_hw *ah, u32 q);
188 +void ath9k_hw_abort_tx_dma(struct ath_hw *ah);
189  void ath9k_hw_gettxintrtxqs(struct ath_hw *ah, u32 *txqs);
190  bool ath9k_hw_set_txq_props(struct ath_hw *ah, int q,
191                             const struct ath9k_tx_queue_info *qinfo);
192 --- a/drivers/net/wireless/ath/ath9k/main.c
193 +++ b/drivers/net/wireless/ath/ath9k/main.c
194 @@ -2128,56 +2128,42 @@ static void ath9k_set_coverage_class(str
195  
196  static void ath9k_flush(struct ieee80211_hw *hw, bool drop)
197  {
198 -#define ATH_FLUSH_TIMEOUT      60 /* ms */
199         struct ath_softc *sc = hw->priv;
200 -       struct ath_txq *txq = NULL;
201 -       struct ath_hw *ah = sc->sc_ah;
202 -       struct ath_common *common = ath9k_hw_common(ah);
203 -       int i, j, npend = 0;
204 +       int timeout = 200; /* ms */
205 +       int i, j;
206  
207 +       ath9k_ps_wakeup(sc);
208         mutex_lock(&sc->mutex);
209  
210         cancel_delayed_work_sync(&sc->tx_complete_work);
211  
212 -       for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++) {
213 -               if (!ATH_TXQ_SETUP(sc, i))
214 -                       continue;
215 -               txq = &sc->tx.txq[i];
216 -
217 -               if (!drop) {
218 -                       for (j = 0; j < ATH_FLUSH_TIMEOUT; j++) {
219 -                               if (!ath9k_has_pending_frames(sc, txq))
220 -                                       break;
221 -                               usleep_range(1000, 2000);
222 -                       }
223 -               }
224 +       if (drop)
225 +               timeout = 1;
226 +
227 +       for (j = 0; j < timeout; j++) {
228 +               int npend = 0;
229 +
230 +               if (j)
231 +                       usleep_range(1000, 2000);
232  
233 -               if (drop || ath9k_has_pending_frames(sc, txq)) {
234 -                       ath_dbg(common, ATH_DBG_QUEUE, "Drop frames from hw queue:%d\n",
235 -                               txq->axq_qnum);
236 -                       spin_lock_bh(&txq->axq_lock);
237 -                       txq->txq_flush_inprogress = true;
238 -                       spin_unlock_bh(&txq->axq_lock);
239 -
240 -                       ath9k_ps_wakeup(sc);
241 -                       ath9k_hw_stoptxdma(ah, txq->axq_qnum);
242 -                       npend = ath9k_hw_numtxpending(ah, txq->axq_qnum);
243 -                       ath9k_ps_restore(sc);
244 -                       if (npend)
245 -                               break;
246 +               for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++) {
247 +                       if (!ATH_TXQ_SETUP(sc, i))
248 +                               continue;
249  
250 -                       ath_draintxq(sc, txq, false);
251 -                       txq->txq_flush_inprogress = false;
252 +                       npend += ath9k_has_pending_frames(sc, &sc->tx.txq[i]);
253                 }
254 +
255 +               if (!npend)
256 +                   goto out;
257         }
258  
259 -       if (npend) {
260 +       if (!ath_drain_all_txq(sc, false))
261                 ath_reset(sc, false);
262 -               txq->txq_flush_inprogress = false;
263 -       }
264  
265 +out:
266         ieee80211_queue_delayed_work(hw, &sc->tx_complete_work, 0);
267         mutex_unlock(&sc->mutex);
268 +       ath9k_ps_restore(sc);
269  }
270  
271  struct ieee80211_ops ath9k_ops = {
272 --- a/drivers/net/wireless/ath/ath9k/xmit.c
273 +++ b/drivers/net/wireless/ath/ath9k/xmit.c
274 @@ -166,7 +166,7 @@ static void ath_tx_flush_tid(struct ath_
275                 fi = get_frame_info(bf->bf_mpdu);
276                 if (fi->retries) {
277                         ath_tx_update_baw(sc, tid, fi->seqno);
278 -                       ath_tx_complete_buf(sc, bf, txq, &bf_head, &ts, 0, 0);
279 +                       ath_tx_complete_buf(sc, bf, txq, &bf_head, &ts, 0, 1);
280                 } else {
281                         ath_tx_send_normal(sc, txq, NULL, &bf_head);
282                 }
283 @@ -1194,16 +1194,14 @@ bool ath_drain_all_txq(struct ath_softc 
284         if (sc->sc_flags & SC_OP_INVALID)
285                 return true;
286  
287 -       /* Stop beacon queue */
288 -       ath9k_hw_stoptxdma(sc->sc_ah, sc->beacon.beaconq);
289 +       ath9k_hw_abort_tx_dma(ah);
290  
291 -       /* Stop data queues */
292 +       /* Check if any queue remains active */
293         for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++) {
294 -               if (ATH_TXQ_SETUP(sc, i)) {
295 -                       txq = &sc->tx.txq[i];
296 -                       ath9k_hw_stoptxdma(ah, txq->axq_qnum);
297 -                       npend += ath9k_hw_numtxpending(ah, txq->axq_qnum);
298 -               }
299 +               if (!ATH_TXQ_SETUP(sc, i))
300 +                       continue;
301 +
302 +               npend += ath9k_hw_numtxpending(ah, sc->tx.txq[i].axq_qnum);
303         }
304  
305         if (npend)
306 @@ -2014,8 +2012,7 @@ static void ath_tx_processq(struct ath_s
307                 spin_lock_bh(&txq->axq_lock);
308                 if (list_empty(&txq->axq_q)) {
309                         txq->axq_link = NULL;
310 -                       if (sc->sc_flags & SC_OP_TXAGGR &&
311 -                           !txq->txq_flush_inprogress)
312 +                       if (sc->sc_flags & SC_OP_TXAGGR)
313                                 ath_txq_schedule(sc, txq);
314                         spin_unlock_bh(&txq->axq_lock);
315                         break;
316 @@ -2096,7 +2093,7 @@ static void ath_tx_processq(struct ath_s
317  
318                 spin_lock_bh(&txq->axq_lock);
319  
320 -               if (sc->sc_flags & SC_OP_TXAGGR && !txq->txq_flush_inprogress)
321 +               if (sc->sc_flags & SC_OP_TXAGGR)
322                         ath_txq_schedule(sc, txq);
323                 spin_unlock_bh(&txq->axq_lock);
324         }
325 @@ -2267,18 +2264,17 @@ void ath_tx_edma_tasklet(struct ath_soft
326  
327                 spin_lock_bh(&txq->axq_lock);
328  
329 -               if (!txq->txq_flush_inprogress) {
330 -                       if (!list_empty(&txq->txq_fifo_pending)) {
331 -                               INIT_LIST_HEAD(&bf_head);
332 -                               bf = list_first_entry(&txq->txq_fifo_pending,
333 -                                                     struct ath_buf, list);
334 -                               list_cut_position(&bf_head,
335 -                                                 &txq->txq_fifo_pending,
336 -                                                 &bf->bf_lastbf->list);
337 -                               ath_tx_txqaddbuf(sc, txq, &bf_head);
338 -                       } else if (sc->sc_flags & SC_OP_TXAGGR)
339 -                               ath_txq_schedule(sc, txq);
340 -               }
341 +               if (!list_empty(&txq->txq_fifo_pending)) {
342 +                       INIT_LIST_HEAD(&bf_head);
343 +                       bf = list_first_entry(&txq->txq_fifo_pending,
344 +                                             struct ath_buf, list);
345 +                       list_cut_position(&bf_head,
346 +                                         &txq->txq_fifo_pending,
347 +                                         &bf->bf_lastbf->list);
348 +                       ath_tx_txqaddbuf(sc, txq, &bf_head);
349 +               } else if (sc->sc_flags & SC_OP_TXAGGR)
350 +                       ath_txq_schedule(sc, txq);
351 +
352                 spin_unlock_bh(&txq->axq_lock);
353         }
354  }
355 --- a/net/mac80211/chan.c
356 +++ b/net/mac80211/chan.c
357 @@ -77,6 +77,9 @@ bool ieee80211_set_channel_type(struct i
358                 switch (tmp->vif.bss_conf.channel_type) {
359                 case NL80211_CHAN_NO_HT:
360                 case NL80211_CHAN_HT20:
361 +                       if (superchan > tmp->vif.bss_conf.channel_type)
362 +                               break;
363 +
364                         superchan = tmp->vif.bss_conf.channel_type;
365                         break;
366                 case NL80211_CHAN_HT40PLUS:
367 --- a/drivers/net/wireless/ath/ath9k/ar9003_hw.c
368 +++ b/drivers/net/wireless/ath/ath9k/ar9003_hw.c
369 @@ -88,66 +88,6 @@ static void ar9003_hw_init_mode_regs(str
370                                 ar9485_1_1_pcie_phy_clkreq_disable_L1,
371                                 ARRAY_SIZE(ar9485_1_1_pcie_phy_clkreq_disable_L1),
372                                 2);
373 -       } else if (AR_SREV_9485(ah)) {
374 -               /* mac */
375 -               INIT_INI_ARRAY(&ah->iniMac[ATH_INI_PRE], NULL, 0, 0);
376 -               INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE],
377 -                               ar9485_1_0_mac_core,
378 -                               ARRAY_SIZE(ar9485_1_0_mac_core), 2);
379 -               INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST],
380 -                               ar9485_1_0_mac_postamble,
381 -                               ARRAY_SIZE(ar9485_1_0_mac_postamble), 5);
382 -
383 -               /* bb */
384 -               INIT_INI_ARRAY(&ah->iniBB[ATH_INI_PRE], ar9485_1_0,
385 -                               ARRAY_SIZE(ar9485_1_0), 2);
386 -               INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE],
387 -                               ar9485_1_0_baseband_core,
388 -                               ARRAY_SIZE(ar9485_1_0_baseband_core), 2);
389 -               INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST],
390 -                               ar9485_1_0_baseband_postamble,
391 -                               ARRAY_SIZE(ar9485_1_0_baseband_postamble), 5);
392 -
393 -               /* radio */
394 -               INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_PRE], NULL, 0, 0);
395 -               INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE],
396 -                               ar9485_1_0_radio_core,
397 -                               ARRAY_SIZE(ar9485_1_0_radio_core), 2);
398 -               INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_POST],
399 -                               ar9485_1_0_radio_postamble,
400 -                               ARRAY_SIZE(ar9485_1_0_radio_postamble), 2);
401 -
402 -               /* soc */
403 -               INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE],
404 -                               ar9485_1_0_soc_preamble,
405 -                               ARRAY_SIZE(ar9485_1_0_soc_preamble), 2);
406 -               INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_CORE], NULL, 0, 0);
407 -               INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_POST], NULL, 0, 0);
408 -
409 -               /* rx/tx gain */
410 -               INIT_INI_ARRAY(&ah->iniModesRxGain,
411 -                               ar9485Common_rx_gain_1_0,
412 -                               ARRAY_SIZE(ar9485Common_rx_gain_1_0), 2);
413 -               INIT_INI_ARRAY(&ah->iniModesTxGain,
414 -                               ar9485Modes_lowest_ob_db_tx_gain_1_0,
415 -                               ARRAY_SIZE(ar9485Modes_lowest_ob_db_tx_gain_1_0),
416 -                               5);
417 -
418 -               /* Load PCIE SERDES settings from INI */
419 -
420 -               /* Awake Setting */
421 -
422 -               INIT_INI_ARRAY(&ah->iniPcieSerdes,
423 -                               ar9485_1_0_pcie_phy_pll_on_clkreq_disable_L1,
424 -                               ARRAY_SIZE(ar9485_1_0_pcie_phy_pll_on_clkreq_disable_L1),
425 -                               2);
426 -
427 -               /* Sleep Setting */
428 -
429 -               INIT_INI_ARRAY(&ah->iniPcieSerdesLowPower,
430 -                               ar9485_1_0_pcie_phy_pll_on_clkreq_disable_L1,
431 -                               ARRAY_SIZE(ar9485_1_0_pcie_phy_pll_on_clkreq_disable_L1),
432 -                               2);
433         } else {
434                 /* mac */
435                 INIT_INI_ARRAY(&ah->iniMac[ATH_INI_PRE], NULL, 0, 0);
436 @@ -228,11 +168,6 @@ static void ar9003_tx_gain_table_apply(s
437                                        ar9485_modes_lowest_ob_db_tx_gain_1_1,
438                                        ARRAY_SIZE(ar9485_modes_lowest_ob_db_tx_gain_1_1),
439                                        5);
440 -               else if (AR_SREV_9485(ah))
441 -                       INIT_INI_ARRAY(&ah->iniModesTxGain,
442 -                                      ar9485Modes_lowest_ob_db_tx_gain_1_0,
443 -                                      ARRAY_SIZE(ar9485Modes_lowest_ob_db_tx_gain_1_0),
444 -                                      5);
445                 else
446                         INIT_INI_ARRAY(&ah->iniModesTxGain,
447                                        ar9300Modes_lowest_ob_db_tx_gain_table_2p2,
448 @@ -245,11 +180,6 @@ static void ar9003_tx_gain_table_apply(s
449                                        ar9485Modes_high_ob_db_tx_gain_1_1,
450                                        ARRAY_SIZE(ar9485Modes_high_ob_db_tx_gain_1_1),
451                                        5);
452 -               else if (AR_SREV_9485(ah))
453 -                       INIT_INI_ARRAY(&ah->iniModesTxGain,
454 -                                      ar9485Modes_high_ob_db_tx_gain_1_0,
455 -                                      ARRAY_SIZE(ar9485Modes_high_ob_db_tx_gain_1_0),
456 -                                      5);
457                 else
458                         INIT_INI_ARRAY(&ah->iniModesTxGain,
459                                        ar9300Modes_high_ob_db_tx_gain_table_2p2,
460 @@ -262,11 +192,6 @@ static void ar9003_tx_gain_table_apply(s
461                                        ar9485Modes_low_ob_db_tx_gain_1_1,
462                                        ARRAY_SIZE(ar9485Modes_low_ob_db_tx_gain_1_1),
463                                        5);
464 -               else if (AR_SREV_9485(ah))
465 -                       INIT_INI_ARRAY(&ah->iniModesTxGain,
466 -                                      ar9485Modes_low_ob_db_tx_gain_1_0,
467 -                                      ARRAY_SIZE(ar9485Modes_low_ob_db_tx_gain_1_0),
468 -                                      5);
469                 else
470                         INIT_INI_ARRAY(&ah->iniModesTxGain,
471                                        ar9300Modes_low_ob_db_tx_gain_table_2p2,
472 @@ -279,11 +204,6 @@ static void ar9003_tx_gain_table_apply(s
473                                        ar9485Modes_high_power_tx_gain_1_1,
474                                        ARRAY_SIZE(ar9485Modes_high_power_tx_gain_1_1),
475                                        5);
476 -               else if (AR_SREV_9485(ah))
477 -                       INIT_INI_ARRAY(&ah->iniModesTxGain,
478 -                                      ar9485Modes_high_power_tx_gain_1_0,
479 -                                      ARRAY_SIZE(ar9485Modes_high_power_tx_gain_1_0),
480 -                                      5);
481                 else
482                         INIT_INI_ARRAY(&ah->iniModesTxGain,
483                                        ar9300Modes_high_power_tx_gain_table_2p2,
484 @@ -303,11 +223,6 @@ static void ar9003_rx_gain_table_apply(s
485                                        ar9485_common_rx_gain_1_1,
486                                        ARRAY_SIZE(ar9485_common_rx_gain_1_1),
487                                        2);
488 -               else if (AR_SREV_9485(ah))
489 -                       INIT_INI_ARRAY(&ah->iniModesRxGain,
490 -                                      ar9485Common_rx_gain_1_0,
491 -                                      ARRAY_SIZE(ar9485Common_rx_gain_1_0),
492 -                                      2);
493                 else
494                         INIT_INI_ARRAY(&ah->iniModesRxGain,
495                                        ar9300Common_rx_gain_table_2p2,
496 @@ -320,11 +235,6 @@ static void ar9003_rx_gain_table_apply(s
497                                        ar9485Common_wo_xlna_rx_gain_1_1,
498                                        ARRAY_SIZE(ar9485Common_wo_xlna_rx_gain_1_1),
499                                        2);
500 -               else if (AR_SREV_9485(ah))
501 -                       INIT_INI_ARRAY(&ah->iniModesRxGain,
502 -                                      ar9485Common_wo_xlna_rx_gain_1_0,
503 -                                      ARRAY_SIZE(ar9485Common_wo_xlna_rx_gain_1_0),
504 -                                      2);
505                 else
506                         INIT_INI_ARRAY(&ah->iniModesRxGain,
507                                        ar9300Common_wo_xlna_rx_gain_table_2p2,
508 --- a/drivers/net/wireless/ath/ath9k/ar9485_initvals.h
509 +++ b/drivers/net/wireless/ath/ath9k/ar9485_initvals.h
510 @@ -17,931 +17,6 @@
511  #ifndef INITVALS_9485_H
512  #define INITVALS_9485_H
513  
514 -static const u32 ar9485Common_1_0[][2] = {
515 -       /*   Addr     allmodes */
516 -       {0x00007010, 0x00000022},
517 -       {0x00007020, 0x00000000},
518 -       {0x00007034, 0x00000002},
519 -       {0x00007038, 0x000004c2},
520 -};
521 -
522 -static const u32 ar9485_1_0_mac_postamble[][5] = {
523 -       /* Addr     5G_HT20     5G_HT40     2G_HT40     2G_HT20    */
524 -       {0x00001030, 0x00000230, 0x00000460, 0x000002c0, 0x00000160},
525 -       {0x00001070, 0x00000168, 0x000002d0, 0x00000318, 0x0000018c},
526 -       {0x000010b0, 0x00000e60, 0x00001cc0, 0x00007c70, 0x00003e38},
527 -       {0x00008014, 0x03e803e8, 0x07d007d0, 0x10801600, 0x08400b00},
528 -       {0x0000801c, 0x128d8027, 0x128d804f, 0x12e00057, 0x12e0002b},
529 -       {0x00008120, 0x08f04800, 0x08f04800, 0x08f04810, 0x08f04810},
530 -       {0x000081d0, 0x00003210, 0x00003210, 0x0000320a, 0x0000320a},
531 -       {0x00008318, 0x00003e80, 0x00007d00, 0x00006880, 0x00003440},
532 -};
533 -
534 -static const u32 ar9485_1_0_pcie_phy_pll_on_clkreq_disable_L1[][2] = {
535 -       /*   Addr     allmodes */
536 -       {0x00018c00, 0x10212e5e},
537 -       {0x00018c04, 0x000801d8},
538 -       {0x00018c08, 0x0000580c},
539 -};
540 -
541 -static const u32 ar9485Common_wo_xlna_rx_gain_1_0[][2] = {
542 -       /*   Addr     allmodes */
543 -       {0x0000a000, 0x00010000},
544 -       {0x0000a004, 0x00030002},
545 -       {0x0000a008, 0x00050004},
546 -       {0x0000a00c, 0x00810080},
547 -       {0x0000a010, 0x01800082},
548 -       {0x0000a014, 0x01820181},
549 -       {0x0000a018, 0x01840183},
550 -       {0x0000a01c, 0x01880185},
551 -       {0x0000a020, 0x018a0189},
552 -       {0x0000a024, 0x02850284},
553 -       {0x0000a028, 0x02890288},
554 -       {0x0000a02c, 0x03850384},
555 -       {0x0000a030, 0x03890388},
556 -       {0x0000a034, 0x038b038a},
557 -       {0x0000a038, 0x038d038c},
558 -       {0x0000a03c, 0x03910390},
559 -       {0x0000a040, 0x03930392},
560 -       {0x0000a044, 0x03950394},
561 -       {0x0000a048, 0x00000396},
562 -       {0x0000a04c, 0x00000000},
563 -       {0x0000a050, 0x00000000},
564 -       {0x0000a054, 0x00000000},
565 -       {0x0000a058, 0x00000000},
566 -       {0x0000a05c, 0x00000000},
567 -       {0x0000a060, 0x00000000},
568 -       {0x0000a064, 0x00000000},
569 -       {0x0000a068, 0x00000000},
570 -       {0x0000a06c, 0x00000000},
571 -       {0x0000a070, 0x00000000},
572 -       {0x0000a074, 0x00000000},
573 -       {0x0000a078, 0x00000000},
574 -       {0x0000a07c, 0x00000000},
575 -       {0x0000a080, 0x28282828},
576 -       {0x0000a084, 0x28282828},
577 -       {0x0000a088, 0x28282828},
578 -       {0x0000a08c, 0x28282828},
579 -       {0x0000a090, 0x28282828},
580 -       {0x0000a094, 0x21212128},
581 -       {0x0000a098, 0x171c1c1c},
582 -       {0x0000a09c, 0x02020212},
583 -       {0x0000a0a0, 0x00000202},
584 -       {0x0000a0a4, 0x00000000},
585 -       {0x0000a0a8, 0x00000000},
586 -       {0x0000a0ac, 0x00000000},
587 -       {0x0000a0b0, 0x00000000},
588 -       {0x0000a0b4, 0x00000000},
589 -       {0x0000a0b8, 0x00000000},
590 -       {0x0000a0bc, 0x00000000},
591 -       {0x0000a0c0, 0x001f0000},
592 -       {0x0000a0c4, 0x111f1100},
593 -       {0x0000a0c8, 0x111d111e},
594 -       {0x0000a0cc, 0x111b111c},
595 -       {0x0000a0d0, 0x22032204},
596 -       {0x0000a0d4, 0x22012202},
597 -       {0x0000a0d8, 0x221f2200},
598 -       {0x0000a0dc, 0x221d221e},
599 -       {0x0000a0e0, 0x33013302},
600 -       {0x0000a0e4, 0x331f3300},
601 -       {0x0000a0e8, 0x4402331e},
602 -       {0x0000a0ec, 0x44004401},
603 -       {0x0000a0f0, 0x441e441f},
604 -       {0x0000a0f4, 0x55015502},
605 -       {0x0000a0f8, 0x551f5500},
606 -       {0x0000a0fc, 0x6602551e},
607 -       {0x0000a100, 0x66006601},
608 -       {0x0000a104, 0x661e661f},
609 -       {0x0000a108, 0x7703661d},
610 -       {0x0000a10c, 0x77017702},
611 -       {0x0000a110, 0x00007700},
612 -       {0x0000a114, 0x00000000},
613 -       {0x0000a118, 0x00000000},
614 -       {0x0000a11c, 0x00000000},
615 -       {0x0000a120, 0x00000000},
616 -       {0x0000a124, 0x00000000},
617 -       {0x0000a128, 0x00000000},
618 -       {0x0000a12c, 0x00000000},
619 -       {0x0000a130, 0x00000000},
620 -       {0x0000a134, 0x00000000},
621 -       {0x0000a138, 0x00000000},
622 -       {0x0000a13c, 0x00000000},
623 -       {0x0000a140, 0x001f0000},
624 -       {0x0000a144, 0x111f1100},
625 -       {0x0000a148, 0x111d111e},
626 -       {0x0000a14c, 0x111b111c},
627 -       {0x0000a150, 0x22032204},
628 -       {0x0000a154, 0x22012202},
629 -       {0x0000a158, 0x221f2200},
630 -       {0x0000a15c, 0x221d221e},
631 -       {0x0000a160, 0x33013302},
632 -       {0x0000a164, 0x331f3300},
633 -       {0x0000a168, 0x4402331e},
634 -       {0x0000a16c, 0x44004401},
635 -       {0x0000a170, 0x441e441f},
636 -       {0x0000a174, 0x55015502},
637 -       {0x0000a178, 0x551f5500},
638 -       {0x0000a17c, 0x6602551e},
639 -       {0x0000a180, 0x66006601},
640 -       {0x0000a184, 0x661e661f},
641 -       {0x0000a188, 0x7703661d},
642 -       {0x0000a18c, 0x77017702},
643 -       {0x0000a190, 0x00007700},
644 -       {0x0000a194, 0x00000000},
645 -       {0x0000a198, 0x00000000},
646 -       {0x0000a19c, 0x00000000},
647 -       {0x0000a1a0, 0x00000000},
648 -       {0x0000a1a4, 0x00000000},
649 -       {0x0000a1a8, 0x00000000},
650 -       {0x0000a1ac, 0x00000000},
651 -       {0x0000a1b0, 0x00000000},
652 -       {0x0000a1b4, 0x00000000},
653 -       {0x0000a1b8, 0x00000000},
654 -       {0x0000a1bc, 0x00000000},
655 -       {0x0000a1c0, 0x00000000},
656 -       {0x0000a1c4, 0x00000000},
657 -       {0x0000a1c8, 0x00000000},
658 -       {0x0000a1cc, 0x00000000},
659 -       {0x0000a1d0, 0x00000000},
660 -       {0x0000a1d4, 0x00000000},
661 -       {0x0000a1d8, 0x00000000},
662 -       {0x0000a1dc, 0x00000000},
663 -       {0x0000a1e0, 0x00000000},
664 -       {0x0000a1e4, 0x00000000},
665 -       {0x0000a1e8, 0x00000000},
666 -       {0x0000a1ec, 0x00000000},
667 -       {0x0000a1f0, 0x00000396},
668 -       {0x0000a1f4, 0x00000396},
669 -       {0x0000a1f8, 0x00000396},
670 -       {0x0000a1fc, 0x00000296},
671 -};
672 -
673 -static const u32 ar9485Modes_high_power_tx_gain_1_0[][5] = {
674 -       /*   Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20 */
675 -       {0x0000a410, 0x000050d9, 0x000050d9, 0x000050d8, 0x000050d8},
676 -       {0x0000a500, 0x00022200, 0x00022200, 0x00000000, 0x00000000},
677 -       {0x0000a504, 0x05062002, 0x05062002, 0x04000002, 0x04000002},
678 -       {0x0000a508, 0x0c002e00, 0x0c002e00, 0x08000004, 0x08000004},
679 -       {0x0000a50c, 0x11062202, 0x11062202, 0x0d000200, 0x0d000200},
680 -       {0x0000a510, 0x17022e00, 0x17022e00, 0x11000202, 0x11000202},
681 -       {0x0000a514, 0x1d000ec2, 0x1d000ec2, 0x15000400, 0x15000400},
682 -       {0x0000a518, 0x25020ec0, 0x25020ec0, 0x19000402, 0x19000402},
683 -       {0x0000a51c, 0x2b020ec3, 0x2b020ec3, 0x1d000404, 0x1d000404},
684 -       {0x0000a520, 0x2f001f04, 0x2f001f04, 0x21000603, 0x21000603},
685 -       {0x0000a524, 0x35001fc4, 0x35001fc4, 0x25000605, 0x25000605},
686 -       {0x0000a528, 0x3c022f04, 0x3c022f04, 0x2a000a03, 0x2a000a03},
687 -       {0x0000a52c, 0x41023e85, 0x41023e85, 0x2c000a04, 0x2c000a04},
688 -       {0x0000a530, 0x48023ec6, 0x48023ec6, 0x2e000a20, 0x2e000a20},
689 -       {0x0000a534, 0x4d023f01, 0x4d023f01, 0x34000e20, 0x34000e20},
690 -       {0x0000a538, 0x53023f4b, 0x53023f4b, 0x38000e22, 0x38000e22},
691 -       {0x0000a53c, 0x5a027f09, 0x5a027f09, 0x3c000e24, 0x3c000e24},
692 -       {0x0000a540, 0x5f027fc9, 0x5f027fc9, 0x40000e26, 0x40000e26},
693 -       {0x0000a544, 0x6502feca, 0x6502feca, 0x43001640, 0x43001640},
694 -       {0x0000a548, 0x6b02ff4a, 0x6b02ff4a, 0x46001660, 0x46001660},
695 -       {0x0000a54c, 0x7203feca, 0x7203feca, 0x49001861, 0x49001861},
696 -       {0x0000a550, 0x7703ff0b, 0x7703ff0b, 0x4c001a81, 0x4c001a81},
697 -       {0x0000a554, 0x7d06ffcb, 0x7d06ffcb, 0x4f001a83, 0x4f001a83},
698 -       {0x0000a558, 0x8407ff0b, 0x8407ff0b, 0x54001c85, 0x54001c85},
699 -       {0x0000a55c, 0x8907ffcb, 0x8907ffcb, 0x58001ce5, 0x58001ce5},
700 -       {0x0000a560, 0x900fff0b, 0x900fff0b, 0x5b001ce9, 0x5b001ce9},
701 -       {0x0000a564, 0x960fffcb, 0x960fffcb, 0x60001eeb, 0x60001eeb},
702 -       {0x0000a568, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
703 -       {0x0000a56c, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
704 -       {0x0000a570, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
705 -       {0x0000a574, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
706 -       {0x0000a578, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
707 -       {0x0000a57c, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
708 -       {0x00016044, 0x05b6b2db, 0x05b6b2db, 0x05b6b2db, 0x05b6b2db},
709 -};
710 -
711 -static const u32 ar9485_1_0[][2] = {
712 -       /*  Addr      allmodes */
713 -       {0x0000a580, 0x00000000},
714 -       {0x0000a584, 0x00000000},
715 -       {0x0000a588, 0x00000000},
716 -       {0x0000a58c, 0x00000000},
717 -       {0x0000a590, 0x00000000},
718 -       {0x0000a594, 0x00000000},
719 -       {0x0000a598, 0x00000000},
720 -       {0x0000a59c, 0x00000000},
721 -       {0x0000a5a0, 0x00000000},
722 -       {0x0000a5a4, 0x00000000},
723 -       {0x0000a5a8, 0x00000000},
724 -       {0x0000a5ac, 0x00000000},
725 -       {0x0000a5b0, 0x00000000},
726 -       {0x0000a5b4, 0x00000000},
727 -       {0x0000a5b8, 0x00000000},
728 -       {0x0000a5bc, 0x00000000},
729 -};
730 -
731 -static const u32 ar9485_1_0_radio_core[][2] = {
732 -       /*   Addr     allmodes */
733 -       {0x00016000, 0x36db6db6},
734 -       {0x00016004, 0x6db6db40},
735 -       {0x00016008, 0x73800000},
736 -       {0x0001600c, 0x00000000},
737 -       {0x00016040, 0x7f80fff8},
738 -       {0x00016048, 0x6c92426e},
739 -       {0x0001604c, 0x000f0278},
740 -       {0x00016050, 0x6db6db6c},
741 -       {0x00016054, 0x6db60000},
742 -       {0x00016080, 0x00080000},
743 -       {0x00016084, 0x0e48048c},
744 -       {0x00016088, 0x14214514},
745 -       {0x0001608c, 0x119f081e},
746 -       {0x00016090, 0x24926490},
747 -       {0x00016098, 0xd28b3330},
748 -       {0x000160a0, 0xc2108ffe},
749 -       {0x000160a4, 0x812fc370},
750 -       {0x000160a8, 0x423c8000},
751 -       {0x000160b4, 0x92480040},
752 -       {0x000160c0, 0x006db6db},
753 -       {0x000160c4, 0x0186db60},
754 -       {0x000160c8, 0x6db6db6c},
755 -       {0x000160cc, 0x6de6fbe0},
756 -       {0x000160d0, 0xf7dfcf3c},
757 -       {0x00016100, 0x04cb0001},
758 -       {0x00016104, 0xfff80015},
759 -       {0x00016108, 0x00080010},
760 -       {0x00016144, 0x01884080},
761 -       {0x00016148, 0x00008040},
762 -       {0x00016180, 0x08453333},
763 -       {0x00016184, 0x18e82f01},
764 -       {0x00016188, 0x00000000},
765 -       {0x0001618c, 0x00000000},
766 -       {0x00016240, 0x08400000},
767 -       {0x00016244, 0x1bf90f00},
768 -       {0x00016248, 0x00000000},
769 -       {0x0001624c, 0x00000000},
770 -       {0x00016280, 0x01000015},
771 -       {0x00016284, 0x00d30000},
772 -       {0x00016288, 0x00318000},
773 -       {0x0001628c, 0x50000000},
774 -       {0x00016290, 0x4b96210f},
775 -       {0x00016380, 0x00000000},
776 -       {0x00016384, 0x00000000},
777 -       {0x00016388, 0x00800700},
778 -       {0x0001638c, 0x00800700},
779 -       {0x00016390, 0x00800700},
780 -       {0x00016394, 0x00000000},
781 -       {0x00016398, 0x00000000},
782 -       {0x0001639c, 0x00000000},
783 -       {0x000163a0, 0x00000001},
784 -       {0x000163a4, 0x00000001},
785 -       {0x000163a8, 0x00000000},
786 -       {0x000163ac, 0x00000000},
787 -       {0x000163b0, 0x00000000},
788 -       {0x000163b4, 0x00000000},
789 -       {0x000163b8, 0x00000000},
790 -       {0x000163bc, 0x00000000},
791 -       {0x000163c0, 0x000000a0},
792 -       {0x000163c4, 0x000c0000},
793 -       {0x000163c8, 0x14021402},
794 -       {0x000163cc, 0x00001402},
795 -       {0x000163d0, 0x00000000},
796 -       {0x000163d4, 0x00000000},
797 -       {0x00016c40, 0x1319c178},
798 -       {0x00016c44, 0x10000000},
799 -};
800 -
801 -static const u32 ar9485Modes_lowest_ob_db_tx_gain_1_0[][5] = {
802 -       /*  Addr       5G_HT20     5G_HT40     2G_HT40     2G_HT20 */
803 -       {0x0000a410, 0x000050d9, 0x000050d9, 0x000050d8, 0x000050d8},
804 -       {0x0000a500, 0x00022200, 0x00022200, 0x00000000, 0x00000000},
805 -       {0x0000a504, 0x05062002, 0x05062002, 0x04000002, 0x04000002},
806 -       {0x0000a508, 0x0c002e00, 0x0c002e00, 0x08000004, 0x08000004},
807 -       {0x0000a50c, 0x11062202, 0x11062202, 0x0d000200, 0x0d000200},
808 -       {0x0000a510, 0x17022e00, 0x17022e00, 0x11000202, 0x11000202},
809 -       {0x0000a514, 0x1d000ec2, 0x1d000ec2, 0x15000400, 0x15000400},
810 -       {0x0000a518, 0x25020ec0, 0x25020ec0, 0x19000402, 0x19000402},
811 -       {0x0000a51c, 0x2b020ec3, 0x2b020ec3, 0x1d000404, 0x1d000404},
812 -       {0x0000a520, 0x2f001f04, 0x2f001f04, 0x21000603, 0x21000603},
813 -       {0x0000a524, 0x35001fc4, 0x35001fc4, 0x25000605, 0x25000605},
814 -       {0x0000a528, 0x3c022f04, 0x3c022f04, 0x2a000a03, 0x2a000a03},
815 -       {0x0000a52c, 0x41023e85, 0x41023e85, 0x2c000a04, 0x2c000a04},
816 -       {0x0000a530, 0x48023ec6, 0x48023ec6, 0x2e000a20, 0x2e000a20},
817 -       {0x0000a534, 0x4d023f01, 0x4d023f01, 0x34000e20, 0x34000e20},
818 -       {0x0000a538, 0x53023f4b, 0x53023f4b, 0x38000e22, 0x38000e22},
819 -       {0x0000a53c, 0x5a027f09, 0x5a027f09, 0x3c000e24, 0x3c000e24},
820 -       {0x0000a540, 0x5f027fc9, 0x5f027fc9, 0x40000e26, 0x40000e26},
821 -       {0x0000a544, 0x6502feca, 0x6502feca, 0x43001640, 0x43001640},
822 -       {0x0000a548, 0x6b02ff4a, 0x6b02ff4a, 0x46001660, 0x46001660},
823 -       {0x0000a54c, 0x7203feca, 0x7203feca, 0x49001861, 0x49001861},
824 -       {0x0000a550, 0x7703ff0b, 0x7703ff0b, 0x4c001a81, 0x4c001a81},
825 -       {0x0000a554, 0x7d06ffcb, 0x7d06ffcb, 0x4f001a83, 0x4f001a83},
826 -       {0x0000a558, 0x8407ff0b, 0x8407ff0b, 0x54001c85, 0x54001c85},
827 -       {0x0000a55c, 0x8907ffcb, 0x8907ffcb, 0x58001ce5, 0x58001ce5},
828 -       {0x0000a560, 0x900fff0b, 0x900fff0b, 0x5b001ce9, 0x5b001ce9},
829 -       {0x0000a564, 0x960fffcb, 0x960fffcb, 0x60001eeb, 0x60001eeb},
830 -       {0x0000a568, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
831 -       {0x0000a56c, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
832 -       {0x0000a570, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
833 -       {0x0000a574, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
834 -       {0x0000a578, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
835 -       {0x0000a57c, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
836 -       {0x00016044, 0x05b6b2db, 0x05b6b2db, 0x05b6b2db, 0x05b6b2db},
837 -};
838 -
839 -static const u32 ar9485_1_0_baseband_core[][2] = {
840 -       /* Addr      allmodes  */
841 -       {0x00009800, 0xafe68e30},
842 -       {0x00009804, 0xfd14e000},
843 -       {0x00009808, 0x9c0a8f6b},
844 -       {0x0000980c, 0x04800000},
845 -       {0x00009814, 0x9280c00a},
846 -       {0x00009818, 0x00000000},
847 -       {0x0000981c, 0x00020028},
848 -       {0x00009834, 0x5f3ca3de},
849 -       {0x00009838, 0x0108ecff},
850 -       {0x0000983c, 0x14750600},
851 -       {0x00009880, 0x201fff00},
852 -       {0x00009884, 0x00001042},
853 -       {0x000098a4, 0x00200400},
854 -       {0x000098b0, 0x52440bbe},
855 -       {0x000098bc, 0x00000002},
856 -       {0x000098d0, 0x004b6a8e},
857 -       {0x000098d4, 0x00000820},
858 -       {0x000098dc, 0x00000000},
859 -       {0x000098f0, 0x00000000},
860 -       {0x000098f4, 0x00000000},
861 -       {0x00009c04, 0x00000000},
862 -       {0x00009c08, 0x03200000},
863 -       {0x00009c0c, 0x00000000},
864 -       {0x00009c10, 0x00000000},
865 -       {0x00009c14, 0x00046384},
866 -       {0x00009c18, 0x05b6b440},
867 -       {0x00009c1c, 0x00b6b440},
868 -       {0x00009d00, 0xc080a333},
869 -       {0x00009d04, 0x40206c10},
870 -       {0x00009d08, 0x009c4060},
871 -       {0x00009d0c, 0x1883800a},
872 -       {0x00009d10, 0x01834061},
873 -       {0x00009d14, 0x00c00400},
874 -       {0x00009d18, 0x00000000},
875 -       {0x00009d1c, 0x00000000},
876 -       {0x00009e08, 0x0038233c},
877 -       {0x00009e24, 0x990bb515},
878 -       {0x00009e28, 0x0a6f0000},
879 -       {0x00009e30, 0x06336f77},
880 -       {0x00009e34, 0x6af6532f},
881 -       {0x00009e38, 0x0cc80c00},
882 -       {0x00009e40, 0x0d261820},
883 -       {0x00009e4c, 0x00001004},
884 -       {0x00009e50, 0x00ff03f1},
885 -       {0x00009fc0, 0x80be4788},
886 -       {0x00009fc4, 0x0001efb5},
887 -       {0x00009fcc, 0x40000014},
888 -       {0x0000a20c, 0x00000000},
889 -       {0x0000a210, 0x00000000},
890 -       {0x0000a220, 0x00000000},
891 -       {0x0000a224, 0x00000000},
892 -       {0x0000a228, 0x10002310},
893 -       {0x0000a23c, 0x00000000},
894 -       {0x0000a244, 0x0c000000},
895 -       {0x0000a2a0, 0x00000001},
896 -       {0x0000a2c0, 0x00000001},
897 -       {0x0000a2c8, 0x00000000},
898 -       {0x0000a2cc, 0x18c43433},
899 -       {0x0000a2d4, 0x00000000},
900 -       {0x0000a2dc, 0x00000000},
901 -       {0x0000a2e0, 0x00000000},
902 -       {0x0000a2e4, 0x00000000},
903 -       {0x0000a2e8, 0x00000000},
904 -       {0x0000a2ec, 0x00000000},
905 -       {0x0000a2f0, 0x00000000},
906 -       {0x0000a2f4, 0x00000000},
907 -       {0x0000a2f8, 0x00000000},
908 -       {0x0000a344, 0x00000000},
909 -       {0x0000a34c, 0x00000000},
910 -       {0x0000a350, 0x0000a000},
911 -       {0x0000a364, 0x00000000},
912 -       {0x0000a370, 0x00000000},
913 -       {0x0000a390, 0x00000001},
914 -       {0x0000a394, 0x00000444},
915 -       {0x0000a398, 0x001f0e0f},
916 -       {0x0000a39c, 0x0075393f},
917 -       {0x0000a3a0, 0xb79f6427},
918 -       {0x0000a3a4, 0x00000000},
919 -       {0x0000a3a8, 0xaaaaaaaa},
920 -       {0x0000a3ac, 0x3c466478},
921 -       {0x0000a3c0, 0x20202020},
922 -       {0x0000a3c4, 0x22222220},
923 -       {0x0000a3c8, 0x20200020},
924 -       {0x0000a3cc, 0x20202020},
925 -       {0x0000a3d0, 0x20202020},
926 -       {0x0000a3d4, 0x20202020},
927 -       {0x0000a3d8, 0x20202020},
928 -       {0x0000a3dc, 0x20202020},
929 -       {0x0000a3e0, 0x20202020},
930 -       {0x0000a3e4, 0x20202020},
931 -       {0x0000a3e8, 0x20202020},
932 -       {0x0000a3ec, 0x20202020},
933 -       {0x0000a3f0, 0x00000000},
934 -       {0x0000a3f4, 0x00000006},
935 -       {0x0000a3f8, 0x0cdbd380},
936 -       {0x0000a3fc, 0x000f0f01},
937 -       {0x0000a400, 0x8fa91f01},
938 -       {0x0000a404, 0x00000000},
939 -       {0x0000a408, 0x0e79e5c6},
940 -       {0x0000a40c, 0x00820820},
941 -       {0x0000a414, 0x1ce739ce},
942 -       {0x0000a418, 0x2d0011ce},
943 -       {0x0000a41c, 0x1ce739ce},
944 -       {0x0000a420, 0x000001ce},
945 -       {0x0000a424, 0x1ce739ce},
946 -       {0x0000a428, 0x000001ce},
947 -       {0x0000a42c, 0x1ce739ce},
948 -       {0x0000a430, 0x1ce739ce},
949 -       {0x0000a434, 0x00000000},
950 -       {0x0000a438, 0x00001801},
951 -       {0x0000a43c, 0x00000000},
952 -       {0x0000a440, 0x00000000},
953 -       {0x0000a444, 0x00000000},
954 -       {0x0000a448, 0x04000000},
955 -       {0x0000a44c, 0x00000001},
956 -       {0x0000a450, 0x00010000},
957 -       {0x0000a458, 0x00000000},
958 -       {0x0000a5c4, 0x3fad9d74},
959 -       {0x0000a5c8, 0x0048060a},
960 -       {0x0000a5cc, 0x00000637},
961 -       {0x0000a760, 0x03020100},
962 -       {0x0000a764, 0x09080504},
963 -       {0x0000a768, 0x0d0c0b0a},
964 -       {0x0000a76c, 0x13121110},
965 -       {0x0000a770, 0x31301514},
966 -       {0x0000a774, 0x35343332},
967 -       {0x0000a778, 0x00000036},
968 -       {0x0000a780, 0x00000838},
969 -       {0x0000a7c0, 0x00000000},
970 -       {0x0000a7c4, 0xfffffffc},
971 -       {0x0000a7c8, 0x00000000},
972 -       {0x0000a7cc, 0x00000000},
973 -       {0x0000a7d0, 0x00000000},
974 -       {0x0000a7d4, 0x00000004},
975 -       {0x0000a7dc, 0x00000001},
976 -};
977 -
978 -static const u32 ar9485Modes_high_ob_db_tx_gain_1_0[][5] = {
979 -       /* Addr        5G_HT20     5G_HT40     2G_HT40    2G_HT20  */
980 -       {0x0000a410, 0x000050d9, 0x000050d9, 0x000050d8, 0x000050d8},
981 -       {0x0000a500, 0x00022200, 0x00022200, 0x00000000, 0x00000000},
982 -       {0x0000a504, 0x05062002, 0x05062002, 0x04000002, 0x04000002},
983 -       {0x0000a508, 0x0c002e00, 0x0c002e00, 0x08000004, 0x08000004},
984 -       {0x0000a50c, 0x11062202, 0x11062202, 0x0d000200, 0x0d000200},
985 -       {0x0000a510, 0x17022e00, 0x17022e00, 0x11000202, 0x11000202},
986 -       {0x0000a514, 0x1d000ec2, 0x1d000ec2, 0x15000400, 0x15000400},
987 -       {0x0000a518, 0x25020ec0, 0x25020ec0, 0x19000402, 0x19000402},
988 -       {0x0000a51c, 0x2b020ec3, 0x2b020ec3, 0x1d000404, 0x1d000404},
989 -       {0x0000a520, 0x2f001f04, 0x2f001f04, 0x21000603, 0x21000603},
990 -       {0x0000a524, 0x35001fc4, 0x35001fc4, 0x25000605, 0x25000605},
991 -       {0x0000a528, 0x3c022f04, 0x3c022f04, 0x2a000a03, 0x2a000a03},
992 -       {0x0000a52c, 0x41023e85, 0x41023e85, 0x2c000a04, 0x2c000a04},
993 -       {0x0000a530, 0x48023ec6, 0x48023ec6, 0x2e000a20, 0x2e000a20},
994 -       {0x0000a534, 0x4d023f01, 0x4d023f01, 0x34000e20, 0x34000e20},
995 -       {0x0000a538, 0x53023f4b, 0x53023f4b, 0x38000e22, 0x38000e22},
996 -       {0x0000a53c, 0x5a027f09, 0x5a027f09, 0x3c000e24, 0x3c000e24},
997 -       {0x0000a540, 0x5f027fc9, 0x5f027fc9, 0x40000e26, 0x40000e26},
998 -       {0x0000a544, 0x6502feca, 0x6502feca, 0x43001640, 0x43001640},
999 -       {0x0000a548, 0x6b02ff4a, 0x6b02ff4a, 0x46001660, 0x46001660},
1000 -       {0x0000a54c, 0x7203feca, 0x7203feca, 0x49001861, 0x49001861},
1001 -       {0x0000a550, 0x7703ff0b, 0x7703ff0b, 0x4c001a81, 0x4c001a81},
1002 -       {0x0000a554, 0x7d06ffcb, 0x7d06ffcb, 0x4f001a83, 0x4f001a83},
1003 -       {0x0000a558, 0x8407ff0b, 0x8407ff0b, 0x54001c85, 0x54001c85},
1004 -       {0x0000a55c, 0x8907ffcb, 0x8907ffcb, 0x58001ce5, 0x58001ce5},
1005 -       {0x0000a560, 0x900fff0b, 0x900fff0b, 0x5b001ce9, 0x5b001ce9},
1006 -       {0x0000a564, 0x960fffcb, 0x960fffcb, 0x60001eeb, 0x60001eeb},
1007 -       {0x0000a568, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
1008 -       {0x0000a56c, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
1009 -       {0x0000a570, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
1010 -       {0x0000a574, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
1011 -       {0x0000a578, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
1012 -       {0x0000a57c, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
1013 -       {0x00016044, 0x05b6b2db, 0x05b6b2db, 0x05b6b2db, 0x05b6b2db},
1014 -};
1015 -
1016 -static const u32 ar9485Common_rx_gain_1_0[][2] = {
1017 -       /* Addr      allmodes  */
1018 -       {0x0000a000, 0x00010000},
1019 -       {0x0000a004, 0x00030002},
1020 -       {0x0000a008, 0x00050004},
1021 -       {0x0000a00c, 0x00810080},
1022 -       {0x0000a010, 0x01800082},
1023 -       {0x0000a014, 0x01820181},
1024 -       {0x0000a018, 0x01840183},
1025 -       {0x0000a01c, 0x01880185},
1026 -       {0x0000a020, 0x018a0189},
1027 -       {0x0000a024, 0x02850284},
1028 -       {0x0000a028, 0x02890288},
1029 -       {0x0000a02c, 0x03850384},
1030 -       {0x0000a030, 0x03890388},
1031 -       {0x0000a034, 0x038b038a},
1032 -       {0x0000a038, 0x038d038c},
1033 -       {0x0000a03c, 0x03910390},
1034 -       {0x0000a040, 0x03930392},
1035 -       {0x0000a044, 0x03950394},
1036 -       {0x0000a048, 0x00000396},
1037 -       {0x0000a04c, 0x00000000},
1038 -       {0x0000a050, 0x00000000},
1039 -       {0x0000a054, 0x00000000},
1040 -       {0x0000a058, 0x00000000},
1041 -       {0x0000a05c, 0x00000000},
1042 -       {0x0000a060, 0x00000000},
1043 -       {0x0000a064, 0x00000000},
1044 -       {0x0000a068, 0x00000000},
1045 -       {0x0000a06c, 0x00000000},
1046 -       {0x0000a070, 0x00000000},
1047 -       {0x0000a074, 0x00000000},
1048 -       {0x0000a078, 0x00000000},
1049 -       {0x0000a07c, 0x00000000},
1050 -       {0x0000a080, 0x28282828},
1051 -       {0x0000a084, 0x28282828},
1052 -       {0x0000a088, 0x28282828},
1053 -       {0x0000a08c, 0x28282828},
1054 -       {0x0000a090, 0x28282828},
1055 -       {0x0000a094, 0x21212128},
1056 -       {0x0000a098, 0x171c1c1c},
1057 -       {0x0000a09c, 0x02020212},
1058 -       {0x0000a0a0, 0x00000202},
1059 -       {0x0000a0a4, 0x00000000},
1060 -       {0x0000a0a8, 0x00000000},
1061 -       {0x0000a0ac, 0x00000000},
1062 -       {0x0000a0b0, 0x00000000},
1063 -       {0x0000a0b4, 0x00000000},
1064 -       {0x0000a0b8, 0x00000000},
1065 -       {0x0000a0bc, 0x00000000},
1066 -       {0x0000a0c0, 0x001f0000},
1067 -       {0x0000a0c4, 0x111f1100},
1068 -       {0x0000a0c8, 0x111d111e},
1069 -       {0x0000a0cc, 0x111b111c},
1070 -       {0x0000a0d0, 0x22032204},
1071 -       {0x0000a0d4, 0x22012202},
1072 -       {0x0000a0d8, 0x221f2200},
1073 -       {0x0000a0dc, 0x221d221e},
1074 -       {0x0000a0e0, 0x33013302},
1075 -       {0x0000a0e4, 0x331f3300},
1076 -       {0x0000a0e8, 0x4402331e},
1077 -       {0x0000a0ec, 0x44004401},
1078 -       {0x0000a0f0, 0x441e441f},
1079 -       {0x0000a0f4, 0x55015502},
1080 -       {0x0000a0f8, 0x551f5500},
1081 -       {0x0000a0fc, 0x6602551e},
1082 -       {0x0000a100, 0x66006601},
1083 -       {0x0000a104, 0x661e661f},
1084 -       {0x0000a108, 0x7703661d},
1085 -       {0x0000a10c, 0x77017702},
1086 -       {0x0000a110, 0x00007700},
1087 -       {0x0000a114, 0x00000000},
1088 -       {0x0000a118, 0x00000000},
1089 -       {0x0000a11c, 0x00000000},
1090 -       {0x0000a120, 0x00000000},
1091 -       {0x0000a124, 0x00000000},
1092 -       {0x0000a128, 0x00000000},
1093 -       {0x0000a12c, 0x00000000},
1094 -       {0x0000a130, 0x00000000},
1095 -       {0x0000a134, 0x00000000},
1096 -       {0x0000a138, 0x00000000},
1097 -       {0x0000a13c, 0x00000000},
1098 -       {0x0000a140, 0x001f0000},
1099 -       {0x0000a144, 0x111f1100},
1100 -       {0x0000a148, 0x111d111e},
1101 -       {0x0000a14c, 0x111b111c},
1102 -       {0x0000a150, 0x22032204},
1103 -       {0x0000a154, 0x22012202},
1104 -       {0x0000a158, 0x221f2200},
1105 -       {0x0000a15c, 0x221d221e},
1106 -       {0x0000a160, 0x33013302},
1107 -       {0x0000a164, 0x331f3300},
1108 -       {0x0000a168, 0x4402331e},
1109 -       {0x0000a16c, 0x44004401},
1110 -       {0x0000a170, 0x441e441f},
1111 -       {0x0000a174, 0x55015502},
1112 -       {0x0000a178, 0x551f5500},
1113 -       {0x0000a17c, 0x6602551e},
1114 -       {0x0000a180, 0x66006601},
1115 -       {0x0000a184, 0x661e661f},
1116 -       {0x0000a188, 0x7703661d},
1117 -       {0x0000a18c, 0x77017702},
1118 -       {0x0000a190, 0x00007700},
1119 -       {0x0000a194, 0x00000000},
1120 -       {0x0000a198, 0x00000000},
1121 -       {0x0000a19c, 0x00000000},
1122 -       {0x0000a1a0, 0x00000000},
1123 -       {0x0000a1a4, 0x00000000},
1124 -       {0x0000a1a8, 0x00000000},
1125 -       {0x0000a1ac, 0x00000000},
1126 -       {0x0000a1b0, 0x00000000},
1127 -       {0x0000a1b4, 0x00000000},
1128 -       {0x0000a1b8, 0x00000000},
1129 -       {0x0000a1bc, 0x00000000},
1130 -       {0x0000a1c0, 0x00000000},
1131 -       {0x0000a1c4, 0x00000000},
1132 -       {0x0000a1c8, 0x00000000},
1133 -       {0x0000a1cc, 0x00000000},
1134 -       {0x0000a1d0, 0x00000000},
1135 -       {0x0000a1d4, 0x00000000},
1136 -       {0x0000a1d8, 0x00000000},
1137 -       {0x0000a1dc, 0x00000000},
1138 -       {0x0000a1e0, 0x00000000},
1139 -       {0x0000a1e4, 0x00000000},
1140 -       {0x0000a1e8, 0x00000000},
1141 -       {0x0000a1ec, 0x00000000},
1142 -       {0x0000a1f0, 0x00000396},
1143 -       {0x0000a1f4, 0x00000396},
1144 -       {0x0000a1f8, 0x00000396},
1145 -       {0x0000a1fc, 0x00000296},
1146 -};
1147 -
1148 -static const u32 ar9485_1_0_pcie_phy_pll_on_clkreq_enable_L1[][2] = {
1149 -       /*   Addr    allmodes  */
1150 -       {0x00018c00, 0x10252e5e},
1151 -       {0x00018c04, 0x000801d8},
1152 -       {0x00018c08, 0x0000580c},
1153 -};
1154 -
1155 -static const u32 ar9485_1_0_pcie_phy_clkreq_enable_L1[][2] = {
1156 -       /*  Addr    allmodes   */
1157 -       {0x00018c00, 0x10253e5e},
1158 -       {0x00018c04, 0x000801d8},
1159 -       {0x00018c08, 0x0000580c},
1160 -};
1161 -
1162 -static const u32 ar9485_1_0_soc_preamble[][2] = {
1163 -       /*   Addr     allmodes */
1164 -       {0x00004090, 0x00aa10aa},
1165 -       {0x000040a4, 0x00a0c9c9},
1166 -       {0x00007048, 0x00000004},
1167 -};
1168 -
1169 -static const u32 ar9485_fast_clock_1_0_baseband_postamble[][3] = {
1170 -       /*   Addr      5G_HT20     5G_HT40 */
1171 -       {0x00009e00, 0x03721821, 0x03721821},
1172 -       {0x0000a230, 0x0000400b, 0x00004016},
1173 -       {0x0000a254, 0x00000898, 0x00001130},
1174 -};
1175 -
1176 -static const u32 ar9485_1_0_baseband_postamble[][5] = {
1177 -       /* Addr        5G_HT20     5G_HT40     2G_HT40     2G_HT20 */
1178 -       {0x00009810, 0xd00a8005, 0xd00a8005, 0xd00a8005, 0xd00a8005},
1179 -       {0x00009820, 0x206a002e, 0x206a002e, 0x206a002e, 0x206a002e},
1180 -       {0x00009824, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0, 0x5ac640d0},
1181 -       {0x00009828, 0x06903081, 0x06903081, 0x06903881, 0x06903881},
1182 -       {0x0000982c, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4, 0x05eea6d4},
1183 -       {0x00009830, 0x0000059c, 0x0000059c, 0x0000059c, 0x0000059c},
1184 -       {0x00009c00, 0x00000044, 0x00000044, 0x00000044, 0x00000044},
1185 -       {0x00009e00, 0x0372161e, 0x0372161e, 0x037216a0, 0x037216a0},
1186 -       {0x00009e04, 0x00182020, 0x00182020, 0x00182020, 0x00182020},
1187 -       {0x00009e0c, 0x6c4000e2, 0x6d4000e2, 0x6d4000e2, 0x6c4000e2},
1188 -       {0x00009e10, 0x7ec88d2e, 0x7ec88d2e, 0x7ec80d2e, 0x7ec80d2e},
1189 -       {0x00009e14, 0x31395d5e, 0x3139605e, 0x3139605e, 0x31395d5e},
1190 -       {0x00009e18, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1191 -       {0x00009e1c, 0x0001cf9c, 0x0001cf9c, 0x00021f9c, 0x00021f9c},
1192 -       {0x00009e20, 0x000003b5, 0x000003b5, 0x000003ce, 0x000003ce},
1193 -       {0x00009e2c, 0x0000001c, 0x0000001c, 0x00000021, 0x00000021},
1194 -       {0x00009e3c, 0xcf946220, 0xcf946220, 0xcf946222, 0xcf946222},
1195 -       {0x00009e44, 0x02321e27, 0x02321e27, 0x02282324, 0x02282324},
1196 -       {0x00009e48, 0x5030201a, 0x5030201a, 0x50302010, 0x50302010},
1197 -       {0x00009fc8, 0x0003f000, 0x0003f000, 0x0001a000, 0x0001a000},
1198 -       {0x0000a204, 0x01303fc0, 0x01303fc4, 0x01303fc4, 0x01303fc0},
1199 -       {0x0000a208, 0x00000104, 0x00000104, 0x00000004, 0x00000004},
1200 -       {0x0000a230, 0x0000400a, 0x00004014, 0x00004016, 0x0000400b},
1201 -       {0x0000a234, 0x10000fff, 0x10000fff, 0x10000fff, 0x10000fff},
1202 -       {0x0000a238, 0xffb81018, 0xffb81018, 0xffb81018, 0xffb81018},
1203 -       {0x0000a250, 0x00000000, 0x00000000, 0x00000210, 0x00000108},
1204 -       {0x0000a254, 0x000007d0, 0x00000fa0, 0x00001130, 0x00000898},
1205 -       {0x0000a258, 0x02020002, 0x02020002, 0x02020002, 0x02020002},
1206 -       {0x0000a25c, 0x01000e0e, 0x01000e0e, 0x01000e0e, 0x01000e0e},
1207 -       {0x0000a260, 0x3a021501, 0x3a021501, 0x3a021501, 0x3a021501},
1208 -       {0x0000a264, 0x00000e0e, 0x00000e0e, 0x00000e0e, 0x00000e0e},
1209 -       {0x0000a280, 0x00000007, 0x00000007, 0x0000000b, 0x0000000b},
1210 -       {0x0000a284, 0x00000000, 0x00000000, 0x000002a0, 0x000002a0},
1211 -       {0x0000a288, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1212 -       {0x0000a28c, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1213 -       {0x0000a2c4, 0x00158d18, 0x00158d18, 0x00158d18, 0x00158d18},
1214 -       {0x0000a2d0, 0x00071981, 0x00071981, 0x00071981, 0x00071982},
1215 -       {0x0000a2d8, 0xf999a83a, 0xf999a83a, 0xf999a83a, 0xf999a83a},
1216 -       {0x0000a358, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1217 -       {0x0000be04, 0x00802020, 0x00802020, 0x00802020, 0x00802020},
1218 -       {0x0000be18, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
1219 -};
1220 -
1221 -static const u32 ar9485Modes_low_ob_db_tx_gain_1_0[][5] = {
1222 -       /*  Addr      5G_HT20    5G_HT40     2G_HT40     2G_HT20   */
1223 -       {0x0000a410, 0x000050d9, 0x000050d9, 0x000050d8, 0x000050d8},
1224 -       {0x0000a500, 0x00022200, 0x00022200, 0x00000000, 0x00000000},
1225 -       {0x0000a504, 0x05062002, 0x05062002, 0x04000002, 0x04000002},
1226 -       {0x0000a508, 0x0c002e00, 0x0c002e00, 0x08000004, 0x08000004},
1227 -       {0x0000a50c, 0x11062202, 0x11062202, 0x0d000200, 0x0d000200},
1228 -       {0x0000a510, 0x17022e00, 0x17022e00, 0x11000202, 0x11000202},
1229 -       {0x0000a514, 0x1d000ec2, 0x1d000ec2, 0x15000400, 0x15000400},
1230 -       {0x0000a518, 0x25020ec0, 0x25020ec0, 0x19000402, 0x19000402},
1231 -       {0x0000a51c, 0x2b020ec3, 0x2b020ec3, 0x1d000404, 0x1d000404},
1232 -       {0x0000a520, 0x2f001f04, 0x2f001f04, 0x21000603, 0x21000603},
1233 -       {0x0000a524, 0x35001fc4, 0x35001fc4, 0x25000605, 0x25000605},
1234 -       {0x0000a528, 0x3c022f04, 0x3c022f04, 0x2a000a03, 0x2a000a03},
1235 -       {0x0000a52c, 0x41023e85, 0x41023e85, 0x2c000a04, 0x2c000a04},
1236 -       {0x0000a530, 0x48023ec6, 0x48023ec6, 0x2e000a20, 0x2e000a20},
1237 -       {0x0000a534, 0x4d023f01, 0x4d023f01, 0x34000e20, 0x34000e20},
1238 -       {0x0000a538, 0x53023f4b, 0x53023f4b, 0x38000e22, 0x38000e22},
1239 -       {0x0000a53c, 0x5a027f09, 0x5a027f09, 0x3c000e24, 0x3c000e24},
1240 -       {0x0000a540, 0x5f027fc9, 0x5f027fc9, 0x40000e26, 0x40000e26},
1241 -       {0x0000a544, 0x6502feca, 0x6502feca, 0x43001640, 0x43001640},
1242 -       {0x0000a548, 0x6b02ff4a, 0x6b02ff4a, 0x46001660, 0x46001660},
1243 -       {0x0000a54c, 0x7203feca, 0x7203feca, 0x49001861, 0x49001861},
1244 -       {0x0000a550, 0x7703ff0b, 0x7703ff0b, 0x4c001a81, 0x4c001a81},
1245 -       {0x0000a554, 0x7d06ffcb, 0x7d06ffcb, 0x4f001a83, 0x4f001a83},
1246 -       {0x0000a558, 0x8407ff0b, 0x8407ff0b, 0x54001c85, 0x54001c85},
1247 -       {0x0000a55c, 0x8907ffcb, 0x8907ffcb, 0x58001ce5, 0x58001ce5},
1248 -       {0x0000a560, 0x900fff0b, 0x900fff0b, 0x5b001ce9, 0x5b001ce9},
1249 -       {0x0000a564, 0x960fffcb, 0x960fffcb, 0x60001eeb, 0x60001eeb},
1250 -       {0x0000a568, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
1251 -       {0x0000a56c, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
1252 -       {0x0000a570, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
1253 -       {0x0000a574, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
1254 -       {0x0000a578, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
1255 -       {0x0000a57c, 0x9c1fff0b, 0x9c1fff0b, 0x60001eeb, 0x60001eeb},
1256 -       {0x00016044, 0x05b6b2db, 0x05b6b2db, 0x05b6b2db, 0x05b6b2db},
1257 -};
1258 -
1259 -static const u32 ar9485_1_0_pcie_phy_clkreq_disable_L1[][2] = {
1260 -       /*   Addr     allmodes */
1261 -       {0x00018c00, 0x10213e5e},
1262 -       {0x00018c04, 0x000801d8},
1263 -       {0x00018c08, 0x0000580c},
1264 -};
1265 -
1266 -static const u32 ar9485_1_0_radio_postamble[][2] = {
1267 -       /*   Addr     allmodes */
1268 -       {0x0001609c, 0x0b283f31},
1269 -       {0x000160ac, 0x24611800},
1270 -       {0x000160b0, 0x03284f3e},
1271 -       {0x0001610c, 0x00170000},
1272 -       {0x00016140, 0x10804008},
1273 -};
1274 -
1275 -static const u32 ar9485_1_0_mac_core[][2] = {
1276 -       /*  Addr      allmodes */
1277 -       {0x00000008, 0x00000000},
1278 -       {0x00000030, 0x00020085},
1279 -       {0x00000034, 0x00000005},
1280 -       {0x00000040, 0x00000000},
1281 -       {0x00000044, 0x00000000},
1282 -       {0x00000048, 0x00000008},
1283 -       {0x0000004c, 0x00000010},
1284 -       {0x00000050, 0x00000000},
1285 -       {0x00001040, 0x002ffc0f},
1286 -       {0x00001044, 0x002ffc0f},
1287 -       {0x00001048, 0x002ffc0f},
1288 -       {0x0000104c, 0x002ffc0f},
1289 -       {0x00001050, 0x002ffc0f},
1290 -       {0x00001054, 0x002ffc0f},
1291 -       {0x00001058, 0x002ffc0f},
1292 -       {0x0000105c, 0x002ffc0f},
1293 -       {0x00001060, 0x002ffc0f},
1294 -       {0x00001064, 0x002ffc0f},
1295 -       {0x000010f0, 0x00000100},
1296 -       {0x00001270, 0x00000000},
1297 -       {0x000012b0, 0x00000000},
1298 -       {0x000012f0, 0x00000000},
1299 -       {0x0000143c, 0x00000000},
1300 -       {0x0000147c, 0x00000000},
1301 -       {0x00008000, 0x00000000},
1302 -       {0x00008004, 0x00000000},
1303 -       {0x00008008, 0x00000000},
1304 -       {0x0000800c, 0x00000000},
1305 -       {0x00008018, 0x00000000},
1306 -       {0x00008020, 0x00000000},
1307 -       {0x00008038, 0x00000000},
1308 -       {0x0000803c, 0x00000000},
1309 -       {0x00008040, 0x00000000},
1310 -       {0x00008044, 0x00000000},
1311 -       {0x00008048, 0x00000000},
1312 -       {0x0000804c, 0xffffffff},
1313 -       {0x00008054, 0x00000000},
1314 -       {0x00008058, 0x00000000},
1315 -       {0x0000805c, 0x000fc78f},
1316 -       {0x00008060, 0x0000000f},
1317 -       {0x00008064, 0x00000000},
1318 -       {0x00008070, 0x00000310},
1319 -       {0x00008074, 0x00000020},
1320 -       {0x00008078, 0x00000000},
1321 -       {0x0000809c, 0x0000000f},
1322 -       {0x000080a0, 0x00000000},
1323 -       {0x000080a4, 0x02ff0000},
1324 -       {0x000080a8, 0x0e070605},
1325 -       {0x000080ac, 0x0000000d},
1326 -       {0x000080b0, 0x00000000},
1327 -       {0x000080b4, 0x00000000},
1328 -       {0x000080b8, 0x00000000},
1329 -       {0x000080bc, 0x00000000},
1330 -       {0x000080c0, 0x2a800000},
1331 -       {0x000080c4, 0x06900168},
1332 -       {0x000080c8, 0x13881c20},
1333 -       {0x000080cc, 0x01f40000},
1334 -       {0x000080d0, 0x00252500},
1335 -       {0x000080d4, 0x00a00000},
1336 -       {0x000080d8, 0x00400000},
1337 -       {0x000080dc, 0x00000000},
1338 -       {0x000080e0, 0xffffffff},
1339 -       {0x000080e4, 0x0000ffff},
1340 -       {0x000080e8, 0x3f3f3f3f},
1341 -       {0x000080ec, 0x00000000},
1342 -       {0x000080f0, 0x00000000},
1343 -       {0x000080f4, 0x00000000},
1344 -       {0x000080fc, 0x00020000},
1345 -       {0x00008100, 0x00000000},
1346 -       {0x00008108, 0x00000052},
1347 -       {0x0000810c, 0x00000000},
1348 -       {0x00008110, 0x00000000},
1349 -       {0x00008114, 0x000007ff},
1350 -       {0x00008118, 0x000000aa},
1351 -       {0x0000811c, 0x00003210},
1352 -       {0x00008124, 0x00000000},
1353 -       {0x00008128, 0x00000000},
1354 -       {0x0000812c, 0x00000000},
1355 -       {0x00008130, 0x00000000},
1356 -       {0x00008134, 0x00000000},
1357 -       {0x00008138, 0x00000000},
1358 -       {0x0000813c, 0x0000ffff},
1359 -       {0x00008144, 0xffffffff},
1360 -       {0x00008168, 0x00000000},
1361 -       {0x0000816c, 0x00000000},
1362 -       {0x00008170, 0x18486200},
1363 -       {0x00008174, 0x33332210},
1364 -       {0x00008178, 0x00000000},
1365 -       {0x0000817c, 0x00020000},
1366 -       {0x000081c0, 0x00000000},
1367 -       {0x000081c4, 0x33332210},
1368 -       {0x000081c8, 0x00000000},
1369 -       {0x000081cc, 0x00000000},
1370 -       {0x000081d4, 0x00000000},
1371 -       {0x000081ec, 0x00000000},
1372 -       {0x000081f0, 0x00000000},
1373 -       {0x000081f4, 0x00000000},
1374 -       {0x000081f8, 0x00000000},
1375 -       {0x000081fc, 0x00000000},
1376 -       {0x00008240, 0x00100000},
1377 -       {0x00008244, 0x0010f400},
1378 -       {0x00008248, 0x00000800},
1379 -       {0x0000824c, 0x0001e800},
1380 -       {0x00008250, 0x00000000},
1381 -       {0x00008254, 0x00000000},
1382 -       {0x00008258, 0x00000000},
1383 -       {0x0000825c, 0x40000000},
1384 -       {0x00008260, 0x00080922},
1385 -       {0x00008264, 0x9ca00010},
1386 -       {0x00008268, 0xffffffff},
1387 -       {0x0000826c, 0x0000ffff},
1388 -       {0x00008270, 0x00000000},
1389 -       {0x00008274, 0x40000000},
1390 -       {0x00008278, 0x003e4180},
1391 -       {0x0000827c, 0x00000004},
1392 -       {0x00008284, 0x0000002c},
1393 -       {0x00008288, 0x0000002c},
1394 -       {0x0000828c, 0x000000ff},
1395 -       {0x00008294, 0x00000000},
1396 -       {0x00008298, 0x00000000},
1397 -       {0x0000829c, 0x00000000},
1398 -       {0x00008300, 0x00000140},
1399 -       {0x00008314, 0x00000000},
1400 -       {0x0000831c, 0x0000010d},
1401 -       {0x00008328, 0x00000000},
1402 -       {0x0000832c, 0x00000007},
1403 -       {0x00008330, 0x00000302},
1404 -       {0x00008334, 0x00000700},
1405 -       {0x00008338, 0x00ff0000},
1406 -       {0x0000833c, 0x02400000},
1407 -       {0x00008340, 0x000107ff},
1408 -       {0x00008344, 0xa248105b},
1409 -       {0x00008348, 0x008f0000},
1410 -       {0x0000835c, 0x00000000},
1411 -       {0x00008360, 0xffffffff},
1412 -       {0x00008364, 0xffffffff},
1413 -       {0x00008368, 0x00000000},
1414 -       {0x00008370, 0x00000000},
1415 -       {0x00008374, 0x000000ff},
1416 -       {0x00008378, 0x00000000},
1417 -       {0x0000837c, 0x00000000},
1418 -       {0x00008380, 0xffffffff},
1419 -       {0x00008384, 0xffffffff},
1420 -       {0x00008390, 0xffffffff},
1421 -       {0x00008394, 0xffffffff},
1422 -       {0x00008398, 0x00000000},
1423 -       {0x0000839c, 0x00000000},
1424 -       {0x000083a0, 0x00000000},
1425 -       {0x000083a4, 0x0000fa14},
1426 -       {0x000083a8, 0x000f0c00},
1427 -       {0x000083ac, 0x33332210},
1428 -       {0x000083b0, 0x33332210},
1429 -       {0x000083b4, 0x33332210},
1430 -       {0x000083b8, 0x33332210},
1431 -       {0x000083bc, 0x00000000},
1432 -       {0x000083c0, 0x00000000},
1433 -       {0x000083c4, 0x00000000},
1434 -       {0x000083c8, 0x00000000},
1435 -       {0x000083cc, 0x00000200},
1436 -       {0x000083d0, 0x000301ff},
1437 -};
1438 -
1439  static const u32 ar9485_1_1_mac_core[][2] = {
1440         /*  Addr       allmodes */
1441         {0x00000008, 0x00000000},