Deleted Added
full compact
ar5416_reset.c (222300) ar5416_reset.c (222301)
1/*
2 * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting
3 * Copyright (c) 2002-2008 Atheros Communications, Inc.
4 *
5 * Permission to use, copy, modify, and/or distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 *
1/*
2 * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting
3 * Copyright (c) 2002-2008 Atheros Communications, Inc.
4 *
5 * Permission to use, copy, modify, and/or distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 *
17 * $FreeBSD: head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c 222300 2011-05-26 08:35:47Z adrian $
17 * $FreeBSD: head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c 222301 2011-05-26 09:15:33Z adrian $
18 */
19#include "opt_ah.h"
20
21#include "ah.h"
22#include "ah_internal.h"
23#include "ah_devid.h"
24
25#include "ah_eeprom_v14.h"

--- 136 unchanged lines hidden (view full) ---

162 ar5212SetTsf64(ah, tsf);
163
164 OS_MARK(ah, AH_MARK_RESET_LINE, __LINE__);
165 if (AR_SREV_MERLIN_10_OR_LATER(ah))
166 OS_REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL, AR_GPIO_JTAG_DISABLE);
167
168 AH5416(ah)->ah_writeIni(ah, chan);
169
18 */
19#include "opt_ah.h"
20
21#include "ah.h"
22#include "ah_internal.h"
23#include "ah_devid.h"
24
25#include "ah_eeprom_v14.h"

--- 136 unchanged lines hidden (view full) ---

162 ar5212SetTsf64(ah, tsf);
163
164 OS_MARK(ah, AH_MARK_RESET_LINE, __LINE__);
165 if (AR_SREV_MERLIN_10_OR_LATER(ah))
166 OS_REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL, AR_GPIO_JTAG_DISABLE);
167
168 AH5416(ah)->ah_writeIni(ah, chan);
169
170 if(AR_SREV_KIWI_13_OR_LATER(ah) ) {
171 /* Enable ASYNC FIFO */
172 OS_REG_SET_BIT(ah, AR_MAC_PCU_ASYNC_FIFO_REG3,
173 AR_MAC_PCU_ASYNC_FIFO_REG3_DATAPATH_SEL);
174 OS_REG_SET_BIT(ah, AR_PHY_MODE, AR_PHY_MODE_ASYNCFIFO);
175 OS_REG_CLR_BIT(ah, AR_MAC_PCU_ASYNC_FIFO_REG3,
176 AR_MAC_PCU_ASYNC_FIFO_REG3_SOFT_RESET);
177 OS_REG_SET_BIT(ah, AR_MAC_PCU_ASYNC_FIFO_REG3,
178 AR_MAC_PCU_ASYNC_FIFO_REG3_SOFT_RESET);
179 }
180
170 /* Override ini values (that can be overriden in this fashion) */
171 ar5416OverrideIni(ah, chan);
172
173 /* Setup 11n MAC/Phy mode registers */
174 ar5416Set11nRegs(ah, chan);
175
176 OS_MARK(ah, AH_MARK_RESET_LINE, __LINE__);
177

--- 75 unchanged lines hidden (view full) ---

253 /* Restore previous led state */
254 if (AR_SREV_HOWL(ah))
255 OS_REG_WRITE(ah, AR_MAC_LED,
256 AR_MAC_LED_ASSOC_ACTIVE | AR_CFG_SCLK_32KHZ);
257 else
258 OS_REG_WRITE(ah, AR_MAC_LED, OS_REG_READ(ah, AR_MAC_LED) |
259 saveLedState);
260
181 /* Override ini values (that can be overriden in this fashion) */
182 ar5416OverrideIni(ah, chan);
183
184 /* Setup 11n MAC/Phy mode registers */
185 ar5416Set11nRegs(ah, chan);
186
187 OS_MARK(ah, AH_MARK_RESET_LINE, __LINE__);
188

--- 75 unchanged lines hidden (view full) ---

264 /* Restore previous led state */
265 if (AR_SREV_HOWL(ah))
266 OS_REG_WRITE(ah, AR_MAC_LED,
267 AR_MAC_LED_ASSOC_ACTIVE | AR_CFG_SCLK_32KHZ);
268 else
269 OS_REG_WRITE(ah, AR_MAC_LED, OS_REG_READ(ah, AR_MAC_LED) |
270 saveLedState);
271
272 /* Start TSF2 for generic timer 8-15 */
273#ifdef NOTYET
274 if (AR_SREV_KIWI(ah))
275 ar5416StartTsf2(ah);
276#endif
277
261 /* Restore previous antenna */
262 OS_REG_WRITE(ah, AR_DEF_ANTENNA, saveDefAntenna);
263
264 /* then our BSSID */
265 OS_REG_WRITE(ah, AR_BSS_ID0, LE_READ_4(ahp->ah_bssid));
266 OS_REG_WRITE(ah, AR_BSS_ID1, LE_READ_2(ahp->ah_bssid + 4));
267
268 /* Restore bmiss rssi & count thresholds */

--- 18 unchanged lines hidden (view full) ---

287 ah->ah_resetTxQueue(ah, i);
288
289 ar5416InitIMR(ah, opmode);
290 ar5212SetCoverageClass(ah, AH_PRIVATE(ah)->ah_coverageClass, 1);
291 ar5416InitQoS(ah);
292 /* This may override the AR_DIAG_SW register */
293 ar5416InitUserSettings(ah);
294
278 /* Restore previous antenna */
279 OS_REG_WRITE(ah, AR_DEF_ANTENNA, saveDefAntenna);
280
281 /* then our BSSID */
282 OS_REG_WRITE(ah, AR_BSS_ID0, LE_READ_4(ahp->ah_bssid));
283 OS_REG_WRITE(ah, AR_BSS_ID1, LE_READ_2(ahp->ah_bssid + 4));
284
285 /* Restore bmiss rssi & count thresholds */

--- 18 unchanged lines hidden (view full) ---

304 ah->ah_resetTxQueue(ah, i);
305
306 ar5416InitIMR(ah, opmode);
307 ar5212SetCoverageClass(ah, AH_PRIVATE(ah)->ah_coverageClass, 1);
308 ar5416InitQoS(ah);
309 /* This may override the AR_DIAG_SW register */
310 ar5416InitUserSettings(ah);
311
312 if (AR_SREV_KIWI_13_OR_LATER(ah)) {
313 /*
314 * Enable ASYNC FIFO
315 *
316 * If Async FIFO is enabled, the following counters change
317 * as MAC now runs at 117 Mhz instead of 88/44MHz when
318 * async FIFO is disabled.
319 *
320 * Overwrite the delay/timeouts initialized in ProcessIni()
321 * above.
322 */
323 OS_REG_WRITE(ah, AR_D_GBL_IFS_SIFS,
324 AR_D_GBL_IFS_SIFS_ASYNC_FIFO_DUR);
325 OS_REG_WRITE(ah, AR_D_GBL_IFS_SLOT,
326 AR_D_GBL_IFS_SLOT_ASYNC_FIFO_DUR);
327 OS_REG_WRITE(ah, AR_D_GBL_IFS_EIFS,
328 AR_D_GBL_IFS_EIFS_ASYNC_FIFO_DUR);
329
330 OS_REG_WRITE(ah, AR_TIME_OUT,
331 AR_TIME_OUT_ACK_CTS_ASYNC_FIFO_DUR);
332 OS_REG_WRITE(ah, AR_USEC, AR_USEC_ASYNC_FIFO_DUR);
333
334 OS_REG_SET_BIT(ah, AR_MAC_PCU_LOGIC_ANALYZER,
335 AR_MAC_PCU_LOGIC_ANALYZER_DISBUG20768);
336 OS_REG_RMW_FIELD(ah, AR_AHB_MODE, AR_AHB_CUSTOM_BURST_EN,
337 AR_AHB_CUSTOM_BURST_ASYNC_FIFO_VAL);
338 }
339
340 if (AR_SREV_KIWI_13_OR_LATER(ah)) {
341 /* Enable AGGWEP to accelerate encryption engine */
342 OS_REG_SET_BIT(ah, AR_PCU_MISC_MODE2,
343 AR_PCU_MISC_MODE2_ENABLE_AGGWEP);
344 }
345
346
295 /*
296 * disable seq number generation in hw
297 */
298 OS_REG_WRITE(ah, AR_STA_ID1,
299 OS_REG_READ(ah, AR_STA_ID1) | AR_STA_ID1_PRESERVE_SEQNUM);
300
301 ar5416InitDMA(ah);
302

--- 2376 unchanged lines hidden ---
347 /*
348 * disable seq number generation in hw
349 */
350 OS_REG_WRITE(ah, AR_STA_ID1,
351 OS_REG_READ(ah, AR_STA_ID1) | AR_STA_ID1_PRESERVE_SEQNUM);
352
353 ar5416InitDMA(ah);
354

--- 2376 unchanged lines hidden ---