#include <Hal8723PwrSeq.h>
#include <rtl8723a_hal.h>
#include <rtl8723a_led.h>
+#include <linux/ieee80211.h>
#ifdef CONFIG_IOL
#include <rtw_iol.h>
#include <asm/uaccess.h>
#endif //CONFIG_EFUSE_CONFIG_FILE
-#ifndef CONFIG_USB_HCI
-
-#error "CONFIG_USB_HCI shall be on!\n"
-
-#endif
-
#include <usb_ops.h>
#include <usb_hal.h>
#include <usb_osintf.h>
#endif
-static VOID
+static void
_ConfigChipOutEP(
- IN PADAPTER pAdapter,
- IN u8 NumOutPipe
+ PADAPTER pAdapter,
+ u8 NumOutPipe
)
{
u8 value8;
}
// TODO: Error recovery for this case
- //RT_ASSERT((NumOutPipe == pHalData->OutEpNumber), ("Out EP number isn't match! %d(Descriptor) != %d (SIE reg)\n", (u4Byte)NumOutPipe, (u4Byte)pHalData->OutEpNumber));
+ //RT_ASSERT((NumOutPipe == pHalData->OutEpNumber), ("Out EP number isn't match! %d(Descriptor) != %d (SIE reg)\n", (u32)NumOutPipe, (u32)pHalData->OutEpNumber));
}
static bool HalUsbSetQueuePipeMapping8192CUsb(
- IN PADAPTER pAdapter,
- IN u8 NumInPipe,
- IN u8 NumOutPipe
+ PADAPTER pAdapter,
+ u8 NumInPipe,
+ u8 NumOutPipe
)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
//
//-------------------------------------------------------------------------
static u8 _LLTWrite(
- IN PADAPTER Adapter,
- IN u32 address,
- IN u32 data
+ PADAPTER Adapter,
+ u32 address,
+ u32 data
)
{
u8 status = _SUCCESS;
static u8 _LLTRead(
- IN PADAPTER Adapter,
- IN u32 address
+ PADAPTER Adapter,
+ u32 address
)
{
int count = 0;
// MAC init functions
//
//---------------------------------------------------------------
-static VOID
+static void
_SetMacID(
- IN PADAPTER Adapter, u8* MacID
+ PADAPTER Adapter, u8* MacID
)
{
u32 i;
}
}
-static VOID
+static void
_SetBSSID(
- IN PADAPTER Adapter, u8* BSSID
+ PADAPTER Adapter, u8* BSSID
)
{
u32 i;
// Shall USB interface init this?
-static VOID
+static void
_InitInterrupt(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
u32 value32;
}
-static VOID
+static void
_InitQueueReservedPage(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
rtw_write32(Adapter, REG_RQPN, value32);
}
-static VOID
+static void
_InitTxBufferBoundary(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
struct registry_priv *pregistrypriv = &Adapter->registrypriv;
#endif
}
-static VOID
+static void
_InitPageBoundary(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
// RX Page Boundary
}
-static VOID
+static void
_InitNormalChipRegPriority(
- IN PADAPTER Adapter,
- IN u16 beQ,
- IN u16 bkQ,
- IN u16 viQ,
- IN u16 voQ,
- IN u16 mgtQ,
- IN u16 hiQ
+ PADAPTER Adapter,
+ u16 beQ,
+ u16 bkQ,
+ u16 viQ,
+ u16 voQ,
+ u16 mgtQ,
+ u16 hiQ
)
{
u16 value16 = (rtw_read16(Adapter, REG_TRXDMA_CTRL) & 0x7);
rtw_write16(Adapter, REG_TRXDMA_CTRL, value16);
}
-static VOID
+static void
_InitNormalChipOneOutEpPriority(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
}
-static VOID
+static void
_InitNormalChipTwoOutEpPriority(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
}
-static VOID
+static void
_InitNormalChipThreeOutEpPriority(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
struct registry_priv *pregistrypriv = &Adapter->registrypriv;
_InitNormalChipRegPriority(Adapter,beQ,bkQ,viQ,voQ,mgtQ,hiQ);
}
-static VOID
+static void
_InitNormalChipQueuePriority(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
}
-static VOID
+static void
_InitQueuePriority(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
_InitNormalChipQueuePriority(Adapter);
}
-static VOID
+static void
_InitHardwareDropIncorrectBulkOut(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
u32 value32 = rtw_read32(Adapter, REG_TXDMA_OFFSET_CHK);
rtw_write32(Adapter, REG_TXDMA_OFFSET_CHK, value32);
}
-static VOID
+static void
_InitNetworkType(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
u32 value32;
// RASSERT(pIoBase->rtw_read8(REG_CR + 2) == 0x2);
}
-static VOID
+static void
_InitTransferPageSize(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
// Tx page size is always 128.
rtw_write8(Adapter, REG_PBP, value8);
}
-static VOID
+static void
_InitDriverInfoSize(
- IN PADAPTER Adapter,
- IN u8 drvInfoSize
+ PADAPTER Adapter,
+ u8 drvInfoSize
)
{
rtw_write8(Adapter,REG_RX_DRVINFO_SZ, drvInfoSize);
}
-static VOID
+static void
_InitWMACSetting(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
- //u4Byte value32;
+ //u32 value32;
//u16 value16;
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
}
-static VOID
+static void
_InitAdaptiveCtrl(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
u16 value16;
}
-static VOID
+static void
_InitRateFallback(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
// Set Data Auto Rate Fallback Retry Count register.
}
-static VOID
+static void
_InitEDCA(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
// Set Spec SIFS (used in NAV)
}
#endif //CONFIG_LED
-static VOID
+static void
_InitRDGSetting(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
rtw_write8(Adapter,REG_RD_CTRL,0xFF);
rtw_write8(Adapter,REG_RD_RESP_PKT_TH,0x05);
}
-static VOID
+static void
_InitRxSetting(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
rtw_write32(Adapter, REG_MACID, 0x87654321);
rtw_write32(Adapter, 0x0700, 0x87654321);
}
-static VOID
+static void
_InitRetryFunction(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
u8 value8;
* 12/10/2010 MHC Seperate to smaller function.
*
*---------------------------------------------------------------------------*/
-static VOID
+static void
usb_AggSettingTxUpdate(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
#ifdef CONFIG_USB_TX_AGGREGATION
* 12/10/2010 MHC Seperate to smaller function.
*
*---------------------------------------------------------------------------*/
-static VOID
+static void
usb_AggSettingRxUpdate(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
#ifdef CONFIG_USB_RX_AGGREGATION
#endif
} // usb_AggSettingRxUpdate
-static VOID
+static void
InitUsbAggregationSetting(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
* 12/10/2010 MHC Create Version 0.
*
*---------------------------------------------------------------------------*/
-VOID
+void
USB_AggModeSwitch(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
-#if 0
- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
- struct mlme_priv *pmlmepriv = &(Adapter->mlmepriv);
-
- //pHalData->UsbRxHighSpeedMode = FALSE;
- // How to measure the RX speed? We assume that when traffic is more than
- if (pMgntInfo->bRegAggDMEnable == _FALSE)
- {
- return; // Inf not support.
- }
-
-
- if (pmlmepriv->LinkDetectInfo.bHigherBusyTraffic == _TRUE &&
- pHalData->UsbRxHighSpeedMode == _FALSE)
- {
- pHalData->UsbRxHighSpeedMode = _TRUE;
- DBG_8723A("UsbAggModeSwitchCheck to HIGH\n");
- }
- else if (pmlmepriv->LinkDetectInfo.bHigherBusyTraffic == _FALSE &&
- pHalData->UsbRxHighSpeedMode == _TRUE)
- {
- pHalData->UsbRxHighSpeedMode = _FALSE;
- DBG_8723A("UsbAggModeSwitchCheck to LOW\n");
- }
- else
- {
- return;
- }
-
- // 2010/12/10 MH Add for USB Aggregation judgement we need to
- //if( pMgntInfo->LinkDetectInfo.NumRxOkInPeriod > 4000 ||
- // pMgntInfo->LinkDetectInfo.NumTxOkInPeriod > 4000 )
-
-#ifdef CONFIG_USB_TX_AGGREGATION
- //usb_AggSettingTxUpdate(Adapter);
-#endif
-
-#ifdef CONFIG_USB_RX_AGGREGATION
- if (pHalData->UsbRxHighSpeedMode == _TRUE)
- {
- // 2010/12/10 MH The parameter is tested by SD1 engineer and SD3 channel emulator.
- // USB mode
- pHalData->UsbRxAggBlockCount = 40;
- pHalData->UsbRxAggBlockTimeout = 5;
- // Mix mode
- pHalData->UsbRxAggPageCount = 72;
- pHalData->UsbRxAggPageTimeout = 6;
- }
- else
- {
- // USB mode
- pHalData->UsbRxAggBlockCount = pMgntInfo->RegUsbRxAggBlockCount;
- pHalData->UsbRxAggBlockTimeout = pMgntInfo->RegUsbRxAggBlockTimeout;
- // Mix mode
- pHalData->UsbRxAggPageCount = pMgntInfo->RegUsbRxAggPageCount;
- pHalData->UsbRxAggPageTimeout = pMgntInfo->RegUsbRxAggPageTimeout;
- }
-#endif
-#endif
} // USB_AggModeSwitch
-static VOID
+static void
_InitOperationMode(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
-#if 0//gtest
- PHAL_DATA_8192CUSB pHalData = GetHalData8192CUsb(Adapter);
- u1Byte regBwOpMode = 0;
- u4Byte regRATR = 0, regRRSR = 0;
-
-
- //1 This part need to modified according to the rate set we filtered!!
- //
- // Set RRSR, RATR, and REG_BWOPMODE registers
- //
- switch(Adapter->RegWirelessMode)
- {
- case WIRELESS_MODE_B:
- regBwOpMode = BW_OPMODE_20MHZ;
- regRATR = RATE_ALL_CCK;
- regRRSR = RATE_ALL_CCK;
- break;
- case WIRELESS_MODE_A:
- ASSERT(FALSE);
-#if 0
- regBwOpMode = BW_OPMODE_5G |BW_OPMODE_20MHZ;
- regRATR = RATE_ALL_OFDM_AG;
- regRRSR = RATE_ALL_OFDM_AG;
-#endif
- break;
- case WIRELESS_MODE_G:
- regBwOpMode = BW_OPMODE_20MHZ;
- regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
- regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
- break;
- case WIRELESS_MODE_AUTO:
- if (Adapter->bInHctTest)
- {
- regBwOpMode = BW_OPMODE_20MHZ;
- regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
- regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
- }
- else
- {
- regBwOpMode = BW_OPMODE_20MHZ;
- regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS;
- regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
- }
- break;
- case WIRELESS_MODE_N_24G:
- // It support CCK rate by default.
- // CCK rate will be filtered out only when associated AP does not support it.
- regBwOpMode = BW_OPMODE_20MHZ;
- regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS;
- regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
- break;
- case WIRELESS_MODE_N_5G:
- ASSERT(FALSE);
-#if 0
- regBwOpMode = BW_OPMODE_5G;
- regRATR = RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS;
- regRRSR = RATE_ALL_OFDM_AG;
-#endif
- break;
- }
-
- // Ziv ????????
- //PlatformEFIOWrite4Byte(Adapter, REG_INIRTS_RATE_SEL, regRRSR);
- rtw_write8(Adapter, REG_BWOPMODE, regBwOpMode);
-
- // For Min Spacing configuration.
- switch(pHalData->RF_Type)
- {
- case RF_1T2R:
- case RF_1T1R:
- RT_TRACE(COMP_INIT, DBG_LOUD, ("Initializeadapter: RF_Type%s\n", (pHalData->RF_Type==RF_1T1R? "(1T1R)":"(1T2R)")));
- Adapter->MgntInfo.MinSpaceCfg = (MAX_MSS_DENSITY_1T<<3);
- break;
- case RF_2T2R:
- case RF_2T2R_GREEN:
- RT_TRACE(COMP_INIT, DBG_LOUD, ("Initializeadapter:RF_Type(2T2R)\n"));
- Adapter->MgntInfo.MinSpaceCfg = (MAX_MSS_DENSITY_2T<<3);
- break;
- }
-
- rtw_write8(Adapter, REG_AMPDU_MIN_SPACE, Adapter->MgntInfo.MinSpaceCfg);
-#endif
}
-static VOID
+static void
_InitRFType(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
struct registry_priv *pregpriv = &Adapter->registrypriv;
}
-static VOID _InitAdhocWorkaroundParams(IN PADAPTER Adapter)
+static void _InitAdhocWorkaroundParams(PADAPTER Adapter)
{
#ifdef RTL8192CU_ADHOC_WORKAROUND_SETTING
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
}
// Set CCK and OFDM Block "ON"
-static VOID _BBTurnOnBlock(
- IN PADAPTER Adapter
+static void _BBTurnOnBlock(
+ PADAPTER Adapter
)
{
#if (DISABLE_BB_RF)
#define MgntActSet_RF_State(...)
static void _RfPowerSave(PADAPTER padapter)
{
-#if 0
- PHAL_DATA_TYPE pHalData = GET_HAL_DATA(padapter);
- struct pwrctrl_priv *ppwrctrl = &padapter->pwrctrlpriv;
- rt_rf_power_state eRfPowerStateToSet;
- u8 u1bTmp;
-
-
-#if (DISABLE_BB_RF)
- return;
-#endif
- //
- // 2010/08/11 MH Merge from 8192SE for Minicard init. We need to confirm current radio status
- // and then decide to enable RF or not.!!!??? For Selective suspend mode. We may not
- // call init_adapter. May cause some problem??
- //
- // Fix the bug that Hw/Sw radio off before S3/S4, the RF off action will not be executed
- // in MgntActSet_RF_State() after wake up, because the value of pHalData->eRFPowerState
- // is the same as eRfOff, we should change it to eRfOn after we config RF parameters.
- // Added by tynli. 2010.03.30.
- ppwrctrl->rf_pwrstate = rf_on;
- RT_CLEAR_PS_LEVEL(ppwrctrl, RT_RF_OFF_LEVL_HALT_NIC);
- //Added by chiyokolin, 2011.10.12 for Tx
- rtw_write8(padapter, REG_TXPAUSE, 0x00);
-
- // 20100326 Joseph: Copy from GPIOChangeRFWorkItemCallBack() function to check HW radio on/off.
- // 20100329 Joseph: Revise and integrate the HW/SW radio off code in initialization.
-
- eRfPowerStateToSet = (rt_rf_power_state) RfOnOffDetect(padapter);
- ppwrctrl->rfoff_reason |= eRfPowerStateToSet==rf_on ? RF_CHANGE_BY_INIT : RF_CHANGE_BY_HW;
- ppwrctrl->rfoff_reason |= (ppwrctrl->reg_rfoff) ? RF_CHANGE_BY_SW : 0;
-
- if (ppwrctrl->rfoff_reason & RF_CHANGE_BY_HW)
- ppwrctrl->b_hw_radio_off = _TRUE;
-
- if (ppwrctrl->reg_rfoff == _TRUE)
- {
- // User disable RF via registry.
- RT_TRACE(_module_hci_hal_init_c_, _drv_notice_, ("InitializeAdapter8192CUsb(): Turn off RF for RegRfOff.\n"));
- MgntActSet_RF_State(padapter, rf_off, RF_CHANGE_BY_SW, _TRUE);
-
-// if (padapter->bSlaveOfDMSP)
-// return;
- }
- else if (ppwrctrl->rfoff_reason > RF_CHANGE_BY_PS)
- {
- // H/W or S/W RF OFF before sleep.
- RT_TRACE(_module_hci_hal_init_c_, _drv_notice_, ("InitializeAdapter8192CUsb(): Turn off RF for RfOffReason(%ld).\n", pMgntInfo->RfOffReason));
- MgntActSet_RF_State(padapter, rf_off, ppwrctrl->rfoff_reason, _TRUE);
- }
- else
- {
- // Perform GPIO polling to find out current RF state. added by Roger, 2010.04.09.
-#if 0
-// if (RT_GetInterfaceSelection(padapter)==INTF_SEL2_MINICARD &&
- if ((pHalData->BoardType == BOARD_MINICARD) &&
- (padapter->MgntInfo.PowerSaveControl.bGpioRfSw))
- {
- RT_TRACE(_module_hci_hal_init_c_, _drv_notice_, ("InitializeAdapter8192CU(): RF=%d \n", eRfPowerStateToSet));
- if (eRfPowerStateToSet == rf_off)
- {
- MgntActSet_RF_State(padapter, rf_off, RF_CHANGE_BY_HW, _TRUE);
- ppwrctrl->b_hw_radio_off = _TRUE;
- }
- else
- {
- ppwrctrl->rf_pwrstate = rf_off;
- ppwrctrl->rfoff_reason = RF_CHANGE_BY_INIT;
- ppwrctrl->b_hw_radio_off = _FALSE;
- MgntActSet_RF_State(padapter, rf_on, ppwrctrl->rfoff_reason, _TRUE);
- }
- }
- else
-#endif
- {
- ppwrctrl->rf_pwrstate = rf_off;
- ppwrctrl->rfoff_reason = RF_CHANGE_BY_INIT;
- MgntActSet_RF_State(padapter, rf_on, ppwrctrl->rfoff_reason, _TRUE);
- }
-
- ppwrctrl->rfoff_reason = 0;
- ppwrctrl->b_hw_radio_off = _FALSE;
- ppwrctrl->rf_pwrstate = rf_on;
- if (padapter->ledpriv.LedControlHandler)
- padapter->ledpriv.LedControlHandler(padapter, LED_CTL_POWER_ON);
- }
-
- // 2010/-8/09 MH For power down module, we need to enable register block contrl reg at 0x1c.
- // Then enable power down control bit of register 0x04 BIT4 and BIT15 as 1.
- if (pHalData->pwrdown && eRfPowerStateToSet == rf_off)
- {
- // Enable register area 0x0-0xc.
- rtw_write8(padapter, REG_RSV_CTRL, 0x0);
-
- //
- // <Roger_Notes> We should configure HW PDn source for WiFi ONLY, and then
- // our HW will be set in power-down mode if PDn source from all functions are configured.
- // 2010.10.06.
- //
- u1bTmp = rtw_read8(padapter, REG_MULTI_FUNC_CTRL);
- u1bTmp |= WL_HWPDN_EN;
- rtw_write8(padapter, REG_MULTI_FUNC_CTRL, u1bTmp);
- }
-#endif
}
enum {
//
static bool
HalDetectPwrDownMode(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
u8 tmpvalue;
// If Efuse 0x0e bit1 is not enabled, we can not support selective suspend for Minicard and
// slim card.
//
-static VOID
+static void
HalDetectSelectiveSuspendMode(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
u8 tmpvalue;
* When Who Remark
* 08/23/2010 MHC HW suspend mode switch test..
*---------------------------------------------------------------------------*/
-static VOID
+static void
HwSuspendModeEnable92Cu(
- IN PADAPTER pAdapter,
- IN u8 Type
+ PADAPTER pAdapter,
+ u8 Type
)
{
} // HwSuspendModeEnable92Cu
-rt_rf_power_state RfOnOffDetect(IN PADAPTER pAdapter )
+rt_rf_power_state RfOnOffDetect(PADAPTER pAdapter )
{
//HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
u8 val8;
("%s: MAC has already power on\n", __FUNCTION__));
}
-#if 0
- if(bSupportRemoteWakeUp && Adapter->bWakeFromPnpSleep && pHalData->bMACFuncEnable)
- {
- if(IS_HARDWARE_TYPE_8723AU(Adapter))
- {
- FW_CTRL_PS_MODE FwPwrMode = FW_PS_ACTIVE_MODE;
-
- pHalData->H2CStopInsertQueue = FALSE;
-
- if(pMgntInfo->mAssoc &&
- pMgntInfo->OpMode == RT_OP_MODE_INFRASTRUCTURE &&
- (pMgntInfo->PowerSaveControl.WoWLANLPSLevel > 0))
- {
- RT_TRACE(COMP_POWER, DBG_LOUD, ("FwLPS: Active!!\n"));
- rtw_hal_set_hwreg(Adapter, HW_VAR_H2C_FW_PWRMODE, (pu1Byte)(&FwPwrMode));
- }
-
- HalSetFWWoWlanMode92C(Adapter, FALSE);
-
- // Clear WoWLAN event FTISR[WWLAN_INT_EN].
- if(IS_FW_8723A(Adapter) && Adapter->MgntInfo.FirmwareVersion < 10)
- {
- // Fw revises the bug after version 10.
- value8 = rtw_read8(Adapter, REG_FTISR+3);
- rtw_write8(Adapter, REG_FTISR+3, value8|BIT2);
- }
-
- SimpleInitializeAdapter8192CUsb(Adapter);
-
- pMgntInfo->init_adpt_in_progress = FALSE;
- return RT_STATUS_SUCCESS;
- }
- }
-#endif
-
-
HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_INIT_PW_ON);
status = _InitPowerOn(Adapter);
if(status == _FAIL){
goto exit;
}
-#ifdef CONFIG_BT_COEXIST
- //
- // 2010/09/23 MH Accordgin to Alfred's siggestion. we need to enable SIC to prevent HW
- // to enter suspend mode automatically. If host does not send SOF every 3ms. Or under DTM
- // test with rtl8188cu selective suspend enabler filter driver, WIN host will trigger the device to
- // enter suspend mode after some test (unknow reason now). We need to prevent the case otherwise
- // the register will be 0xea and all TX/RX path stop accidently.
- //
- //
- // 2010/10/01 MH If the OS is XP, host will trigger USB device to enter D3 mode. In CU HW design
- // it will enter suspend mode automatically. In slim combo card, the BT clock will be cut off if HW
- // enter suspend mode. We need to seperate differet case.
- //
- if (BT_IsBtExist(Adapter))
- {
-#if 0
-#if OS_WIN_FROM_VISTA(OS_VERSION)
- RT_TRACE(COMP_INIT, DBG_LOUD, ("Slim_combo win7/vista need not enable SIC\n"));
-#else
- RT_TRACE(COMP_INIT, DBG_LOUD, ("Slim_combo XP enable SIC\n"));
- // 2010/10/15 MH According to Alfre's description, e need to enable bit14 at first an then enable bit12.
- // Otherwise, HW will enter debug mode and 8051 can not work. We need to stay at test mode to enable SIC.
- rtw_write16(Adapter, REG_GPIO_MUXCFG, rtw_read16(Adapter, REG_GPIO_MUXCFG)|BIT14);
- rtw_write16(Adapter, REG_GPIO_MUXCFG, rtw_read16(Adapter, REG_GPIO_MUXCFG)|BIT12);
-#endif
-#endif
- }
-#endif // CONFIG_BT_COEXIST
-
HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_INIT_LLTT);
if (!pregistrypriv->wifi_spec) {
boundary = TX_PAGE_BOUNDARY;
// HAL_AdjustPwrIndexDiffRateOffset(Adapter);
// HAL_AdjustPwrIndexbyRegistry(Adapter);
-#if 0
- // The FW command register update must after MAC and FW init ready.
- if (Adapter->bFWReady == TRUE)
- {
- if(pDevice->RegUsbSS)
- {
- u1Byte u1H2CSSRf[3]={0};
-
- SET_H2CCMD_SELECTIVE_SUSPEND_ROF_CMD_ON(u1H2CSSRf, 1);
- SET_H2CCMD_SELECTIVE_SUSPEND_ROF_CMD_GPIO_PERIOD(u1H2CSSRf, 500);
-
- FillH2CCmd92C(Adapter, H2C_SELECTIVE_SUSPEND_ROF_CMD, 3, u1H2CSSRf);
- RT_TRACE(COMP_INIT, DBG_LOUD,
- ("SS Set H2C_CMD for FW detect GPIO time=%d\n", GET_H2CCMD_SELECTIVE_SUSPEND_ROF_CMD_GPIO_PERIOD(u1H2CSSRf)));
- }
- else
- RT_TRACE(COMP_INIT, DBG_LOUD, ("Non-SS Driver detect GPIO by itself\n"));
- }
- else
- {
- RT_TRACE(COMP_INIT, DBG_LOUD, ("Adapter->bFWReady == FALSE\n"));
- // 2011/02/11 MH If FW is not ready, we can not enter seecitve suspend mode, otherwise,
- // We can not support GPIO/PBC detection by FW with selectiev suspend support.
- pDevice->RegUsbSS = FALSE;
- }
-#endif
-
-
HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_RF);
#if (HAL_RF_ENABLE == 1)
status = PHY_RFConfig8723A(Adapter);
HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_INIT_HAL_DM);
rtl8723a_InitHalDm(Adapter);
-#if 0
- // 2010/05/20 MH We need to init timer after update setting. Otherwise, we can not get correct inf setting.
- // 2010/05/18 MH For SE series only now. Init GPIO detect time
- if(pDevice->RegUsbSS)
- {
- RT_TRACE(COMP_INIT, DBG_LOUD, (" call GpioDetectTimerStart8192CU\n"));
- GpioDetectTimerStart8192CU(Adapter); // Disable temporarily
- }
-
- // 2010/08/23 MH According to Alfred's suggestion, we need to to prevent HW enter
- // suspend mode automatically.
- HwSuspendModeEnable92Cu(Adapter, _FALSE);
-#endif
-
HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_MISC31);
rtw_hal_set_hwreg(Adapter, HW_VAR_NAV_UPPER, (u8*)&NavUpper);
// 2011/03/09 MH debug only, UMC-B cut pass 2500 S5 test, but we need to fin root cause.
- if (!IS_HARDWARE_TYPE_8192DU(Adapter) && ((rtw_read32(Adapter, rFPGA0_RFMOD) & 0xFF000000) != 0x83000000))
- {
+ if (((rtw_read32(Adapter, rFPGA0_RFMOD) & 0xFF000000) != 0x83000000)) {
PHY_SetBBReg(Adapter, rFPGA0_RFMOD, BIT(24), 1);
RT_TRACE(_module_hci_hal_init_c_, _drv_err_, ("%s: IQK fail recorver\n", __FUNCTION__));
}
- else
- {
- RT_TRACE(_module_hci_hal_init_c_, _drv_info_, ("%s: IQK OK\n", __FUNCTION__));
- }
#ifdef CONFIG_XMIT_ACK
//ack for xmit mgmt frames.
#define SYNC_SD7_20110802_phy_SsPwrSwitch92CU
#ifdef SYNC_SD7_20110802_phy_SsPwrSwitch92CU
-VOID
+void
phy_SsPwrSwitch92CU(
- IN PADAPTER Adapter,
- IN rt_rf_power_state eRFPowerState,
- IN int bRegSSPwrLvl
+ PADAPTER Adapter,
+ rt_rf_power_state eRFPowerState,
+ int bRegSSPwrLvl
)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
-static VOID
+static void
_DisableGPIO(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
/***************************************
} //end of _DisableGPIO()
-static VOID
+static void
_ResetFWDownloadRegister(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
u32 value32;
static int
_DisableRF_AFE(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
int rtStatus = _SUCCESS;
}
-static VOID
+static void
_ResetBB(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
u16 value16;
//RT_TRACE(COMP_INIT, DBG_LOUD, ("Reset BB.\n"));
}
-static VOID
+static void
_ResetMCU(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
u16 value16;
//RT_TRACE(COMP_INIT, DBG_LOUD, ("Reset MCU.\n"));
}
-static VOID
+static void
_DisableMAC_AFE_PLL(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
u32 value32;
//RT_TRACE(COMP_INIT, DBG_LOUD, ("Disable MAC, AFE PLL.\n"));
}
-static VOID
+static void
_AutoPowerDownToHostOff(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
u32 value32;
}
-static VOID
+static void
_SetUsbSuspend(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
u32 value32;
}
-static VOID
+static void
_DisableRFAFEAndResetBB(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
/**************************************
//RT_TRACE(COMP_INIT, DBG_LOUD, ("======> RF off and reset BB.\n"));
}
-static VOID
+static void
_ResetDigitalProcedure1(
- IN PADAPTER Adapter,
- IN bool bWithoutHWSM
+ PADAPTER Adapter,
+ bool bWithoutHWSM
)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
if(pHalData->FirmwareVersion <= 0x20){
- #if 0
- /*****************************
- f. SYS_FUNC_EN 0x03[7:0]=0x54 // reset MAC register, DCORE
- g. MCUFWDL 0x80[7:0]=0 // reset MCU ready status
- ******************************/
- u4Byte value32 = 0;
- PlatformIOWrite1Byte(Adapter, REG_SYS_FUNC_EN+1, 0x54);
- PlatformIOWrite1Byte(Adapter, REG_MCUFWDL, 0);
- #else
/*****************************
f. MCUFWDL 0x80[7:0]=0 // reset MCU ready status
g. SYS_FUNC_EN 0x02[10]= 0 // reset MCU register, (8051 reset)
valu16 = rtw_read16(Adapter, REG_SYS_FUNC_EN);
rtw_write16(Adapter, REG_SYS_FUNC_EN, (valu16 | FEN_CPUEN));//enable MCU ,8051
-
-
- #endif
- }
- else{
+ } else{
u8 retry_cnts = 0;
if(rtw_read8(Adapter, REG_MCUFWDL) & BIT1)
}
-static VOID
+static void
_ResetDigitalProcedure2(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
/*****************************
rtw_write8(Adapter, REG_SYS_ISO_CTRL+1, 0x82); //modify to 0x82 by Scott.
}
-static VOID
+static void
_DisableAnalog(
- IN PADAPTER Adapter,
- IN bool bWithoutHWSM
+ PADAPTER Adapter,
+ bool bWithoutHWSM
)
{
u16 value16 = 0;
rtw_write16(Adapter, REG_APS_FSMCO,value16 );//0x4802
rtw_write8(Adapter, REG_RSV_CTRL, 0x0e);
-
- #if 0
- //tynli_test for suspend mode.
- if(!bWithoutHWSM){
- rtw_write8(Adapter, 0xfe10, 0x19);
- }
-#endif
-
- //RT_TRACE(COMP_INIT, DBG_LOUD, ("======> Disable Analog Reg0x04:0x%04x.\n",value16));
}
static void rtl8723au_hw_power_down(_adapter *padapter)
// Description: RTL8723e card disable power sequence v003 which suggested by Scott.
// First created by tynli. 2011.01.28.
//
-VOID
+void
CardDisableRTL8723U(
PADAPTER Adapter
)
static u32
_GetChannelGroup(
- IN u32 channel
+ u32 channel
)
{
//RT_ASSERT((channel < 14), ("Channel %d no is supported!\n"));
//-------------------------------------------------------------------
static void
_ReadIDs(
- IN PADAPTER Adapter,
- IN u8* PROMContent,
- IN bool AutoloadFail
+ PADAPTER Adapter,
+ u8* PROMContent,
+ bool AutoloadFail
)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
}
-static VOID
+static void
_ReadMACAddress(
- IN PADAPTER Adapter,
- IN u8* PROMContent,
- IN bool AutoloadFail
+ PADAPTER Adapter,
+ u8* PROMContent,
+ bool AutoloadFail
)
{
EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(Adapter);
if(_FALSE == AutoloadFail){
//Read Permanent MAC address and set value to hardware
- _rtw_memcpy(pEEPROM->mac_addr, &PROMContent[EEPROM_MAC_ADDR], ETH_ALEN);
+ memcpy(pEEPROM->mac_addr, &PROMContent[EEPROM_MAC_ADDR], ETH_ALEN);
}
else{
//Random assigh MAC address
u8 sMacAddr[MAC_ADDR_LEN] = {0x00, 0xE0, 0x4C, 0x81, 0x92, 0x00};
//sMacAddr[5] = (u8)GetRandomNumber(1, 254);
- _rtw_memcpy(pEEPROM->mac_addr, sMacAddr, ETH_ALEN);
+ memcpy(pEEPROM->mac_addr, sMacAddr, ETH_ALEN);
}
DBG_8723A("%s MAC Address from EFUSE = "MAC_FMT"\n",__FUNCTION__, MAC_ARG(pEEPROM->mac_addr));
//NicIFSetMacAddress(Adapter, Adapter->PermanentAddress);
}
-static VOID
+static void
_ReadBoardType(
- IN PADAPTER Adapter,
- IN u8* PROMContent,
- IN bool AutoloadFail
+ PADAPTER Adapter,
+ u8* PROMContent,
+ bool AutoloadFail
)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
}
-static VOID
+static void
_ReadLEDSetting(
- IN PADAPTER Adapter,
- IN u8* PROMContent,
- IN bool AutoloadFail
+ PADAPTER Adapter,
+ u8* PROMContent,
+ bool AutoloadFail
)
{
struct led_priv *pledpriv = &(Adapter->ledpriv);
#endif //CONFIG_SW_LED
}
-static VOID
+static void
_ReadThermalMeter(
- IN PADAPTER Adapter,
- IN u8* PROMContent,
- IN bool AutoloadFail
+ PADAPTER Adapter,
+ u8* PROMContent,
+ bool AutoloadFail
)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
if(pHalData->EEPROMThermalMeter == 0x1f || AutoloadFail)
pdmpriv->bAPKThermalMeterIgnore = _TRUE;
-#if 0
- if(pHalData->EEPROMThermalMeter < 0x06 || pHalData->EEPROMThermalMeter > 0x1c)
- pHalData->EEPROMThermalMeter = 0x12;
-#endif
-
pdmpriv->ThermalMeter[0] = pHalData->EEPROMThermalMeter;
-
- //RTPRINT(FINIT, INIT_TxPower, ("ThermalMeter = 0x%x\n", pHalData->EEPROMThermalMeter));
-
}
-static VOID
+static void
_ReadRFSetting(
- IN PADAPTER Adapter,
- IN u8* PROMContent,
- IN bool AutoloadFail
+ PADAPTER Adapter,
+ u8* PROMContent,
+ bool AutoloadFail
)
{
}
-
-#if 0
-static VOID
-readAntennaDiversity(
- IN PADAPTER pAdapter,
- IN u8 *hwinfo,
- IN bool AutoLoadFail
- )
-{
-
- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
- struct registry_priv *registry_par = &pAdapter->registrypriv;
-
- if(!AutoLoadFail)
- {
- // Antenna Diversity setting.
- if(registry_par->antdiv_cfg == 2) // 2: From Efuse
- pHalData->AntDivCfg = (hwinfo[EEPROM_RF_OPT1]&0x18)>>3;
- else
- pHalData->AntDivCfg = registry_par->antdiv_cfg ; // 0:OFF , 1:ON,
-
- DBG_8723A("### AntDivCfg(%x)\n",pHalData->AntDivCfg);
-
- //if(pHalData->EEPROMBluetoothCoexist!=0 && pHalData->EEPROMBluetoothAntNum==Ant_x1)
- // pHalData->AntDivCfg = 0;
- }
- else
- {
- pHalData->AntDivCfg = 0;
- }
-
-}
-#endif
// Read HW power down mode selection
-static void _ReadPSSetting(IN PADAPTER Adapter,IN u8*PROMContent,IN u8 AutoloadFail)
+static void _ReadPSSetting(PADAPTER Adapter, u8*PROMContent, u8 AutoloadFail)
{
if(AutoloadFail){
Adapter->pwrctrlpriv.bHWPowerdown = _FALSE;
-VOID
+void
Hal_EfuseParsePIDVID_8723AU(
- IN PADAPTER pAdapter,
- IN u8* hwinfo,
- IN bool AutoLoadFail
+ PADAPTER pAdapter,
+ u8* hwinfo,
+ bool AutoLoadFail
)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
static void
Hal_EfuseParseMACAddr_8723AU(
- IN PADAPTER padapter,
- IN u8* hwinfo,
- IN bool AutoLoadFail
+ PADAPTER padapter,
+ u8* hwinfo,
+ bool AutoLoadFail
)
{
u16 i, usValue;
if (AutoLoadFail)
{
-// sMacAddr[5] = (u1Byte)GetRandomNumber(1, 254);
+// sMacAddr[5] = (u8)GetRandomNumber(1, 254);
for (i=0; i<6; i++)
pEEPROM->mac_addr[i] = sMacAddr[i];
}
{
//Read Permanent MAC address
#if 1
- _rtw_memcpy(pEEPROM->mac_addr, &hwinfo[EEPROM_MAC_ADDR_8723AU], ETH_ALEN);
+ memcpy(pEEPROM->mac_addr, &hwinfo[EEPROM_MAC_ADDR_8723AU], ETH_ALEN);
#else
for(i=0; i<6; i+=2)
{
u8 null_mac_addr[ETH_ALEN] = {0, 0, 0,0, 0, 0};
u8 multi_mac_addr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
- _rtw_memset(source_addr, 0, 18);
- _rtw_memset(pEEPROM->mac_addr, 0, ETH_ALEN);
+ memset(source_addr, 0, 18);
+ memset(pEEPROM->mac_addr, 0, ETH_ALEN);
fp = filp_open("/data/wifimac.txt", O_RDWR, 0644);
if (IS_ERR(fp)) {
filp_close(fp, NULL);
}
- if ( (_rtw_memcmp(pEEPROM->mac_addr, null_mac_addr, ETH_ALEN)) ||
- (_rtw_memcmp(pEEPROM->mac_addr, multi_mac_addr, ETH_ALEN)) ) {
+ if ((!memcmp(pEEPROM->mac_addr, null_mac_addr, ETH_ALEN)) ||
+ (!memcmp(pEEPROM->mac_addr, multi_mac_addr, ETH_ALEN)) ) {
pEEPROM->mac_addr[0] = 0x00;
pEEPROM->mac_addr[1] = 0xe0;
pEEPROM->mac_addr[2] = 0x4c;
#endif //CONFIG_EFUSE_CONFIG_FILE
-static VOID
+static void
readAdapterInfo(
- IN PADAPTER padapter
+ PADAPTER padapter
)
{
EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(padapter);
}
static void _ReadPROMContent(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
EEPROM_EFUSE_PRIV *pEEPROM = GET_EEPROM_EFUSE_PRIV(Adapter);
DBG_8723A("Boot from %s, Autoload %s !\n", (pEEPROM->EepromOrEfuse ? "EEPROM" : "EFUSE"),
(pEEPROM->bautoload_fail_flag ? "Fail" : "OK") );
- //pHalData->EEType = IS_BOOT_FROM_EEPROM(Adapter) ? EEPROM_93C46 : EEPROM_BOOT_EFUSE;
-
- //if(IS_HARDWARE_TYPE_8723A(Adapter))
- // readAdapterInfo_8723U(Adapter);
- //else
- readAdapterInfo(Adapter);
+ readAdapterInfo(Adapter);
}
-static VOID
+static void
_InitOtherVariable(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
//HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
}
-static VOID
+static void
_ReadRFType(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
pHalData->SlimComboDbg = _FALSE; // Default is not debug mode.
-
- // 2010/11/22 MH We need to enter debug mode for TSMA and UMC A cut
- //if ((Adapter->chip_type == RTL8188C_8192C) &&
-/*
- if (IS_HARDWARE_TYPE_8192CU(Adapter) &&
- (pHalData->BoardType == BOARD_USB_COMBO))
- {
- switch (pHalData->VersionID)
- {
- case VERSION_NORMAL_TSMC_CHIP_88C:
- case VERSION_NORMAL_TSMC_CHIP_92C:
- case VERSION_NORMAL_TSMC_CHIP_92C_1T2R:
- case VERSION_NORMAL_UMC_CHIP_88C_A_CUT:
- case VERSION_NORMAL_UMC_CHIP_92C_A_CUT:
- case VERSION_NORMAL_UMC_CHIP_92C_1T2R_A_CUT:
- if ((rtw_read8(Adapter, REG_SYS_CFG+3) &0xF0) == 0x20)
- pHalData->SlimComboDbg = _TRUE;
-
- break;
-
- case VERSION_NORMAL_UMC_CHIP_88C_B_CUT:
- case VERSION_NORMAL_UMC_CHIP_92C_B_CUT:
- case VERSION_NORMAL_UMC_CHIP_92C_1T2R_B_CUT:
- // 2011/02/15 MH UNC-B cut ECO fail, we need to support slim combo debug mode.
- if ((rtw_read8(Adapter, REG_SYS_CFG+3) &0xF0) == 0x20)
- pHalData->SlimComboDbg = _TRUE;
- break;
-
- default:
- break;
- }
-
- }
-*/
}
//
//
void
hal_EfuseCellSel(
- IN PADAPTER Adapter
+ PADAPTER Adapter
)
{
u32 value32;
//
u8
GetHalDefVar8192CUsb(
- IN PADAPTER Adapter,
- IN HAL_DEF_VARIABLE eVariable,
- IN PVOID pValue
+ PADAPTER Adapter,
+ HAL_DEF_VARIABLE eVariable,
+ void * pValue
)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
*(( u32*)pValue) =pHalData->odmpriv.SupportAbility;
break;
case HW_VAR_MAX_RX_AMPDU_FACTOR:
- *(( u32*)pValue) = MAX_AMPDU_FACTOR_64K;
+ *(( u32*)pValue) = IEEE80211_HT_MAX_AMPDU_64K;
break;
case HW_DEF_ODM_DBG_FLAG:
{
//
u8
SetHalDefVar8192CUsb(
- IN PADAPTER Adapter,
- IN HAL_DEF_VARIABLE eVariable,
- IN PVOID pValue
+ PADAPTER Adapter,
+ HAL_DEF_VARIABLE eVariable,
+ void * pValue
)
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
_func_enter_;
- padapter->HalData = rtw_zmalloc(sizeof(HAL_DATA_TYPE));
+ padapter->HalData = kzalloc(sizeof(HAL_DATA_TYPE), GFP_KERNEL);
if(padapter->HalData == NULL){
DBG_8723A("cant not alloc memory for HAL DATA \n");
}
- //_rtw_memset(padapter->HalData, 0, sizeof(HAL_DATA_TYPE));
+ //memset(padapter->HalData, 0, sizeof(HAL_DATA_TYPE));
padapter->hal_data_sz = sizeof(HAL_DATA_TYPE);
pHalFunc->hal_init = &rtl8723au_hal_init;