1e113789bSAdrian Chadd /*
2e113789bSAdrian Chadd * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting
3e113789bSAdrian Chadd * Copyright (c) 2002-2008 Atheros Communications, Inc.
4e113789bSAdrian Chadd *
5e113789bSAdrian Chadd * Permission to use, copy, modify, and/or distribute this software for any
6e113789bSAdrian Chadd * purpose with or without fee is hereby granted, provided that the above
7e113789bSAdrian Chadd * copyright notice and this permission notice appear in all copies.
8e113789bSAdrian Chadd *
9e113789bSAdrian Chadd * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10e113789bSAdrian Chadd * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11e113789bSAdrian Chadd * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12e113789bSAdrian Chadd * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13e113789bSAdrian Chadd * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14e113789bSAdrian Chadd * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15e113789bSAdrian Chadd * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16e113789bSAdrian Chadd *
17e113789bSAdrian Chadd * $FreeBSD: head/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c 235972 2012-05-25 05:01:27Z adrian $
18e113789bSAdrian Chadd */
19e113789bSAdrian Chadd #include "opt_ah.h"
20e113789bSAdrian Chadd
21e113789bSAdrian Chadd #include "ah.h"
22e113789bSAdrian Chadd #include "ah_internal.h"
23e113789bSAdrian Chadd #include "ah_devid.h"
24e113789bSAdrian Chadd
25e113789bSAdrian Chadd #include "ar9300/ar9300.h"
26e113789bSAdrian Chadd #include "ar9300/ar9300reg.h"
27e113789bSAdrian Chadd #include "ar9300/ar9300phy.h"
28e113789bSAdrian Chadd
29e113789bSAdrian Chadd #include "ar9300/ar9300_stub.h"
30e113789bSAdrian Chadd #include "ar9300/ar9300_stub_funcs.h"
31e113789bSAdrian Chadd
32e113789bSAdrian Chadd void
ar9300_set_stub_functions(struct ath_hal * ah)33e113789bSAdrian Chadd ar9300_set_stub_functions(struct ath_hal *ah)
34e113789bSAdrian Chadd {
35e113789bSAdrian Chadd
36*f3bf9163SAdrian Chadd // ath_hal_printf(ah, "%s: setting stub functions\n", __func__);
37e113789bSAdrian Chadd
38e113789bSAdrian Chadd ah->ah_getRateTable = ar9300_Stub_GetRateTable;
39e113789bSAdrian Chadd // ah->ah_detach = ar9300_Stub_detach;
40e113789bSAdrian Chadd
41e113789bSAdrian Chadd /* Reset Functions */
42e113789bSAdrian Chadd ah->ah_reset = ar9300_Stub_Reset;
43e113789bSAdrian Chadd ah->ah_phyDisable = ar9300_Stub_PhyDisable;
44e113789bSAdrian Chadd ah->ah_disable = ar9300_Stub_Disable;
45e113789bSAdrian Chadd ah->ah_configPCIE = ar9300_Stub_ConfigPCIE;
46e113789bSAdrian Chadd ah->ah_disablePCIE = ar9300_Stub_DisablePCIE;
47e113789bSAdrian Chadd ah->ah_setPCUConfig = ar9300_Stub_SetPCUConfig;
48e113789bSAdrian Chadd ah->ah_perCalibration = ar9300_Stub_PerCalibration;
49e113789bSAdrian Chadd ah->ah_perCalibrationN = ar9300_Stub_PerCalibrationN;
50e113789bSAdrian Chadd ah->ah_resetCalValid = ar9300_Stub_ResetCalValid;
51e113789bSAdrian Chadd ah->ah_setTxPowerLimit = ar9300_Stub_SetTxPowerLimit;
52e113789bSAdrian Chadd ah->ah_getChanNoise = ath_hal_getChanNoise;
53e113789bSAdrian Chadd
54e113789bSAdrian Chadd /* Transmit functions */
55e113789bSAdrian Chadd ah->ah_updateTxTrigLevel = ar9300_Stub_UpdateTxTrigLevel;
56e113789bSAdrian Chadd ah->ah_setupTxQueue = ar9300_Stub_SetupTxQueue;
57e113789bSAdrian Chadd ah->ah_setTxQueueProps = ar9300_Stub_SetTxQueueProps;
58e113789bSAdrian Chadd ah->ah_getTxQueueProps = ar9300_Stub_GetTxQueueProps;
59e113789bSAdrian Chadd ah->ah_releaseTxQueue = ar9300_Stub_ReleaseTxQueue;
60e113789bSAdrian Chadd ah->ah_resetTxQueue = ar9300_Stub_ResetTxQueue;
61e113789bSAdrian Chadd ah->ah_getTxDP = ar9300_Stub_GetTxDP;
62e113789bSAdrian Chadd ah->ah_setTxDP = ar9300_Stub_SetTxDP;
63e113789bSAdrian Chadd ah->ah_numTxPending = ar9300_Stub_NumTxPending;
64e113789bSAdrian Chadd ah->ah_startTxDma = ar9300_Stub_StartTxDma;
65e113789bSAdrian Chadd ah->ah_stopTxDma = ar9300_Stub_StopTxDma;
66e113789bSAdrian Chadd ah->ah_setupTxDesc = ar9300_Stub_SetupTxDesc;
67e113789bSAdrian Chadd ah->ah_setupXTxDesc = ar9300_Stub_SetupXTxDesc;
68e113789bSAdrian Chadd ah->ah_fillTxDesc = ar9300_Stub_FillTxDesc;
69e113789bSAdrian Chadd ah->ah_procTxDesc = ar9300_Stub_ProcTxDesc;
70e113789bSAdrian Chadd ah->ah_getTxIntrQueue = ar9300_Stub_GetTxIntrQueue;
71e113789bSAdrian Chadd ah->ah_reqTxIntrDesc = ar9300_Stub_IntrReqTxDesc;
72e113789bSAdrian Chadd ah->ah_getTxCompletionRates = ar9300_Stub_GetTxCompletionRates;
73e113789bSAdrian Chadd
74e113789bSAdrian Chadd /* RX Functions */
75e113789bSAdrian Chadd ah->ah_getRxDP = ar9300_Stub_GetRxDP;
76e113789bSAdrian Chadd ah->ah_setRxDP = ar9300_Stub_SetRxDP;
77e113789bSAdrian Chadd ah->ah_enableReceive = ar9300_Stub_EnableReceive;
78e113789bSAdrian Chadd ah->ah_stopDmaReceive = ar9300_Stub_StopDmaReceive;
79e113789bSAdrian Chadd ah->ah_startPcuReceive = ar9300_Stub_StartPcuReceive;
80e113789bSAdrian Chadd ah->ah_stopPcuReceive = ar9300_Stub_StopPcuReceive;
81e113789bSAdrian Chadd ah->ah_setMulticastFilter = ar9300_Stub_SetMulticastFilter;
82e113789bSAdrian Chadd ah->ah_setMulticastFilterIndex = ar9300_Stub_SetMulticastFilterIndex;
83e113789bSAdrian Chadd ah->ah_clrMulticastFilterIndex = ar9300_Stub_ClrMulticastFilterIndex;
84e113789bSAdrian Chadd ah->ah_getRxFilter = ar9300_Stub_GetRxFilter;
85e113789bSAdrian Chadd ah->ah_setRxFilter = ar9300_Stub_SetRxFilter;
86e113789bSAdrian Chadd ah->ah_setupRxDesc = ar9300_Stub_SetupRxDesc;
87e113789bSAdrian Chadd ah->ah_procRxDesc = ar9300_Stub_ProcRxDesc;
88e113789bSAdrian Chadd ah->ah_rxMonitor = ar9300_Stub_RxMonitor;
89e113789bSAdrian Chadd ah->ah_aniPoll = ar9300_Stub_AniPoll;
90e113789bSAdrian Chadd ah->ah_procMibEvent = ar9300_Stub_ProcessMibIntr;
91e113789bSAdrian Chadd
92e113789bSAdrian Chadd /* Misc Functions */
93e113789bSAdrian Chadd ah->ah_getCapability = ar9300_Stub_GetCapability;
94e113789bSAdrian Chadd ah->ah_setCapability = ar9300_Stub_SetCapability;
95e113789bSAdrian Chadd ah->ah_getDiagState = ar9300_Stub_GetDiagState;
96e113789bSAdrian Chadd ah->ah_getMacAddress = ar9300_Stub_GetMacAddress;
97e113789bSAdrian Chadd ah->ah_setMacAddress = ar9300_Stub_SetMacAddress;
98e113789bSAdrian Chadd ah->ah_getBssIdMask = ar9300_Stub_GetBssIdMask;
99e113789bSAdrian Chadd ah->ah_setBssIdMask = ar9300_Stub_SetBssIdMask;
100e113789bSAdrian Chadd ah->ah_setRegulatoryDomain = ar9300_Stub_SetRegulatoryDomain;
101e113789bSAdrian Chadd ah->ah_setLedState = ar9300_Stub_SetLedState;
102e113789bSAdrian Chadd ah->ah_writeAssocid = ar9300_Stub_WriteAssocid;
103e113789bSAdrian Chadd ah->ah_gpioCfgInput = ar9300_Stub_GpioCfgInput;
104e113789bSAdrian Chadd ah->ah_gpioCfgOutput = ar9300_Stub_GpioCfgOutput;
105e113789bSAdrian Chadd ah->ah_gpioGet = ar9300_Stub_GpioGet;
106e113789bSAdrian Chadd ah->ah_gpioSet = ar9300_Stub_GpioSet;
107e113789bSAdrian Chadd ah->ah_gpioSetIntr = ar9300_Stub_GpioSetIntr;
108e113789bSAdrian Chadd ah->ah_getTsf32 = ar9300_Stub_GetTsf32;
109e113789bSAdrian Chadd ah->ah_getTsf64 = ar9300_Stub_GetTsf64;
110e113789bSAdrian Chadd ah->ah_resetTsf = ar9300_Stub_ResetTsf;
111e113789bSAdrian Chadd ah->ah_detectCardPresent = ar9300_Stub_DetectCardPresent;
112e113789bSAdrian Chadd ah->ah_updateMibCounters = ar9300_Stub_UpdateMibCounters;
113e113789bSAdrian Chadd ah->ah_getRfGain = ar9300_Stub_GetRfgain;
114e113789bSAdrian Chadd ah->ah_getDefAntenna = ar9300_Stub_GetDefAntenna;
115e113789bSAdrian Chadd ah->ah_setDefAntenna = ar9300_Stub_SetDefAntenna;
116e113789bSAdrian Chadd ah->ah_getAntennaSwitch = ar9300_Stub_GetAntennaSwitch;
117e113789bSAdrian Chadd ah->ah_setAntennaSwitch = ar9300_Stub_SetAntennaSwitch;
118e113789bSAdrian Chadd ah->ah_setSifsTime = ar9300_Stub_SetSifsTime;
119e113789bSAdrian Chadd ah->ah_getSifsTime = ar9300_Stub_GetSifsTime;
120e113789bSAdrian Chadd ah->ah_setSlotTime = ar9300_Stub_SetSlotTime;
121e113789bSAdrian Chadd ah->ah_getSlotTime = ar9300_Stub_GetSlotTime;
122e113789bSAdrian Chadd ah->ah_setAckTimeout = ar9300_Stub_SetAckTimeout;
123e113789bSAdrian Chadd ah->ah_getAckTimeout = ar9300_Stub_GetAckTimeout;
124e113789bSAdrian Chadd ah->ah_setAckCTSRate = ar9300_Stub_SetAckCTSRate;
125e113789bSAdrian Chadd ah->ah_getAckCTSRate = ar9300_Stub_GetAckCTSRate;
126e113789bSAdrian Chadd ah->ah_setCTSTimeout = ar9300_Stub_SetCTSTimeout;
127e113789bSAdrian Chadd ah->ah_getCTSTimeout = ar9300_Stub_GetCTSTimeout;
128e113789bSAdrian Chadd ah->ah_setDecompMask = ar9300_Stub_SetDecompMask;
129e113789bSAdrian Chadd ah->ah_setCoverageClass = ar9300_Stub_SetCoverageClass;
130e113789bSAdrian Chadd ah->ah_setQuiet = ar9300_Stub_SetQuiet;
131e113789bSAdrian Chadd ah->ah_getMibCycleCounts = ar9300_Stub_GetMibCycleCounts;
132e113789bSAdrian Chadd
133e113789bSAdrian Chadd /* DFS Functions */
134e113789bSAdrian Chadd ah->ah_enableDfs = ar9300_Stub_EnableDfs;
135e113789bSAdrian Chadd ah->ah_getDfsThresh = ar9300_Stub_GetDfsThresh;
136e113789bSAdrian Chadd ah->ah_procRadarEvent = ar9300_Stub_ProcessRadarEvent;
137e113789bSAdrian Chadd ah->ah_isFastClockEnabled = ar9300_Stub_IsFastClockEnabled;
138e113789bSAdrian Chadd ah->ah_get11nExtBusy = ar9300_Stub_Get11nExtBusy;
139e113789bSAdrian Chadd
140e113789bSAdrian Chadd /* Key Cache Functions */
141e113789bSAdrian Chadd ah->ah_getKeyCacheSize = ar9300_Stub_GetKeyCacheSize;
142e113789bSAdrian Chadd ah->ah_resetKeyCacheEntry = ar9300_Stub_ResetKeyCacheEntry;
143e113789bSAdrian Chadd ah->ah_isKeyCacheEntryValid = ar9300_Stub_IsKeyCacheEntryValid;
144e113789bSAdrian Chadd ah->ah_setKeyCacheEntry = ar9300_Stub_SetKeyCacheEntry;
145e113789bSAdrian Chadd ah->ah_setKeyCacheEntryMac = ar9300_Stub_SetKeyCacheEntryMac;
146e113789bSAdrian Chadd
147e113789bSAdrian Chadd /* Power Management Functions */
148e113789bSAdrian Chadd ah->ah_setPowerMode = ar9300_Stub_SetPowerMode;
149e113789bSAdrian Chadd ah->ah_getPowerMode = ar9300_Stub_GetPowerMode;
150e113789bSAdrian Chadd
151e113789bSAdrian Chadd /* Beacon Functions */
152e113789bSAdrian Chadd ah->ah_setBeaconTimers = ar9300_Stub_SetBeaconTimers;
153e113789bSAdrian Chadd ah->ah_beaconInit = ar9300_Stub_BeaconInit;
154e113789bSAdrian Chadd ah->ah_setStationBeaconTimers = ar9300_Stub_SetStaBeaconTimers;
155e113789bSAdrian Chadd ah->ah_resetStationBeaconTimers = ar9300_Stub_ResetStaBeaconTimers;
156e113789bSAdrian Chadd ah->ah_getNextTBTT = ar9300_Stub_GetNextTBTT;
157e113789bSAdrian Chadd
158e113789bSAdrian Chadd /* Interrupt Functions */
159e113789bSAdrian Chadd ah->ah_isInterruptPending = ar9300_Stub_IsInterruptPending;
160e113789bSAdrian Chadd ah->ah_getPendingInterrupts = ar9300_Stub_GetPendingInterrupts;
161e113789bSAdrian Chadd ah->ah_getInterrupts = ar9300_Stub_GetInterrupts;
162e113789bSAdrian Chadd ah->ah_setInterrupts = ar9300_Stub_SetInterrupts;
163e113789bSAdrian Chadd
164e113789bSAdrian Chadd AH_PRIVATE(ah)->ah_getChannelEdges = ar9300_Stub_GetChannelEdges;
165e113789bSAdrian Chadd AH_PRIVATE(ah)->ah_getWirelessModes = ar9300_Stub_GetWirelessModes;
166e113789bSAdrian Chadd AH_PRIVATE(ah)->ah_eepromRead = ar9300_Stub_EepromRead;
167e113789bSAdrian Chadd #ifdef AH_SUPPORT_WRITE_EEPROM
168e113789bSAdrian Chadd AH_PRIVATE(ah)->ah_eepromWrite = ar9300_Stub_EepromWrite;
169e113789bSAdrian Chadd #endif
170e113789bSAdrian Chadd AH_PRIVATE(ah)->ah_getChipPowerLimits = ar9300_Stub_GetChipPowerLimits;
171e113789bSAdrian Chadd }
172