mirror of
https://github.com/chinawrj/rtl8812au
synced 2024-11-27 15:44:18 +00:00
parent
dc8dcb4fa2
commit
ca797e114b
280
hal/hal_com.c
280
hal/hal_com.c
@ -4330,6 +4330,28 @@ s32 rtw_hal_set_FwMediaStatusRpt_cmd(_adapter *adapter, bool opmode, bool miraca
|
|||||||
if (ret != _SUCCESS)
|
if (ret != _SUCCESS)
|
||||||
goto exit;
|
goto exit;
|
||||||
|
|
||||||
|
#if defined(CONFIG_RTL8188E)
|
||||||
|
if (rtw_get_chip_type(adapter) == RTL8188E) {
|
||||||
|
HAL_DATA_TYPE *hal_data = GET_HAL_DATA(adapter);
|
||||||
|
|
||||||
|
/* 8188E FW doesn't set macid no link, driver does it by self */
|
||||||
|
if (opmode)
|
||||||
|
rtw_hal_set_hwreg(adapter, HW_VAR_MACID_LINK, &macid);
|
||||||
|
else
|
||||||
|
rtw_hal_set_hwreg(adapter, HW_VAR_MACID_NOLINK, &macid);
|
||||||
|
|
||||||
|
/* for 8188E RA */
|
||||||
|
#if (RATE_ADAPTIVE_SUPPORT == 1)
|
||||||
|
if (hal_data->fw_ractrl == _FALSE) {
|
||||||
|
u8 max_macid;
|
||||||
|
|
||||||
|
max_macid = rtw_search_max_mac_id(adapter);
|
||||||
|
rtw_hal_set_hwreg(adapter, HW_VAR_TX_RPT_MAX_MACID, &max_macid);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A)
|
#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A)
|
||||||
/* TODO: this should move to IOT issue area */
|
/* TODO: this should move to IOT issue area */
|
||||||
if (rtw_get_chip_type(adapter) == RTL8812
|
if (rtw_get_chip_type(adapter) == RTL8812
|
||||||
@ -4734,6 +4756,21 @@ static void rtw_hal_force_enable_rxdma(_adapter *adapter)
|
|||||||
rtw_write32(adapter, REG_RXPKT_NUM,
|
rtw_write32(adapter, REG_RXPKT_NUM,
|
||||||
(rtw_read32(adapter, REG_RXPKT_NUM) & (~RW_RELEASE_EN)));
|
(rtw_read32(adapter, REG_RXPKT_NUM) & (~RW_RELEASE_EN)));
|
||||||
}
|
}
|
||||||
|
#if defined(CONFIG_RTL8188E)
|
||||||
|
static void rtw_hal_disable_tx_report(_adapter *adapter)
|
||||||
|
{
|
||||||
|
rtw_write8(adapter, REG_TX_RPT_CTRL,
|
||||||
|
((rtw_read8(adapter, REG_TX_RPT_CTRL) & ~BIT(1))) & ~BIT(5));
|
||||||
|
RTW_INFO("disable TXRPT:0x%02x\n", rtw_read8(adapter, REG_TX_RPT_CTRL));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void rtw_hal_enable_tx_report(_adapter *adapter)
|
||||||
|
{
|
||||||
|
rtw_write8(adapter, REG_TX_RPT_CTRL,
|
||||||
|
((rtw_read8(adapter, REG_TX_RPT_CTRL) | BIT(1))) | BIT(5));
|
||||||
|
RTW_INFO("enable TX_RPT:0x%02x\n", rtw_read8(adapter, REG_TX_RPT_CTRL));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
static void rtw_hal_release_rx_dma(_adapter *adapter)
|
static void rtw_hal_release_rx_dma(_adapter *adapter)
|
||||||
{
|
{
|
||||||
u32 val32 = 0;
|
u32 val32 = 0;
|
||||||
@ -5819,6 +5856,10 @@ static void rtw_hal_ap_wow_enable(_adapter *padapter)
|
|||||||
issue_beacon(padapter, 0);
|
issue_beacon(padapter, 0);
|
||||||
|
|
||||||
rtw_msleep_os(2);
|
rtw_msleep_os(2);
|
||||||
|
#if defined(CONFIG_RTL8188E)
|
||||||
|
if (IS_HARDWARE_TYPE_8188E(padapter))
|
||||||
|
rtw_hal_disable_tx_report(padapter);
|
||||||
|
#endif
|
||||||
/* RX DMA stop */
|
/* RX DMA stop */
|
||||||
res = rtw_hal_pause_rx_dma(padapter);
|
res = rtw_hal_pause_rx_dma(padapter);
|
||||||
if (res == _FAIL)
|
if (res == _FAIL)
|
||||||
@ -5879,6 +5920,11 @@ static void rtw_hal_ap_wow_disable(_adapter *padapter)
|
|||||||
}
|
}
|
||||||
#endif /*DBG_CHECK_FW_PS_STATE*/
|
#endif /*DBG_CHECK_FW_PS_STATE*/
|
||||||
|
|
||||||
|
#if defined(CONFIG_RTL8188E)
|
||||||
|
if (IS_HARDWARE_TYPE_8188E(padapter))
|
||||||
|
rtw_hal_enable_tx_report(padapter);
|
||||||
|
#endif
|
||||||
|
|
||||||
rtw_hal_force_enable_rxdma(padapter);
|
rtw_hal_force_enable_rxdma(padapter);
|
||||||
|
|
||||||
rtw_hal_fw_dl(padapter, _FALSE);
|
rtw_hal_fw_dl(padapter, _FALSE);
|
||||||
@ -9558,6 +9604,10 @@ static void rtw_hal_wow_enable(_adapter *adapter)
|
|||||||
(u8 *)&media_status_rpt);
|
(u8 *)&media_status_rpt);
|
||||||
|
|
||||||
/* RX DMA stop */
|
/* RX DMA stop */
|
||||||
|
#if defined(CONFIG_RTL8188E)
|
||||||
|
if (IS_HARDWARE_TYPE_8188E(adapter))
|
||||||
|
rtw_hal_disable_tx_report(adapter);
|
||||||
|
#endif
|
||||||
|
|
||||||
res = rtw_hal_pause_rx_dma(adapter);
|
res = rtw_hal_pause_rx_dma(adapter);
|
||||||
if (res == _FAIL)
|
if (res == _FAIL)
|
||||||
@ -9746,6 +9796,11 @@ static void rtw_hal_wow_disable(_adapter *adapter)
|
|||||||
#endif
|
#endif
|
||||||
rtw_hal_release_rx_dma(adapter);
|
rtw_hal_release_rx_dma(adapter);
|
||||||
|
|
||||||
|
#if defined(CONFIG_RTL8188E)
|
||||||
|
if (IS_HARDWARE_TYPE_8188E(adapter))
|
||||||
|
rtw_hal_enable_tx_report(adapter);
|
||||||
|
#endif
|
||||||
|
|
||||||
if ((pwrctl->wowlan_wake_reason != RX_DISASSOC) &&
|
if ((pwrctl->wowlan_wake_reason != RX_DISASSOC) &&
|
||||||
(pwrctl->wowlan_wake_reason != RX_DEAUTH) &&
|
(pwrctl->wowlan_wake_reason != RX_DEAUTH) &&
|
||||||
(pwrctl->wowlan_wake_reason != FW_DECISION_DISCONNECT)) {
|
(pwrctl->wowlan_wake_reason != FW_DECISION_DISCONNECT)) {
|
||||||
@ -12549,6 +12604,61 @@ int hal_efuse_macaddr_offset(_adapter *adapter)
|
|||||||
interface_type = rtw_get_intf_type(adapter);
|
interface_type = rtw_get_intf_type(adapter);
|
||||||
|
|
||||||
switch (rtw_get_chip_type(adapter)) {
|
switch (rtw_get_chip_type(adapter)) {
|
||||||
|
#ifdef CONFIG_RTL8723B
|
||||||
|
case RTL8723B:
|
||||||
|
if (interface_type == RTW_USB)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8723BU;
|
||||||
|
else if (interface_type == RTW_SDIO)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8723BS;
|
||||||
|
else if (interface_type == RTW_PCIE)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8723BE;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8703B
|
||||||
|
case RTL8703B:
|
||||||
|
if (interface_type == RTW_USB)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8703BU;
|
||||||
|
else if (interface_type == RTW_SDIO)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8703BS;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8723D
|
||||||
|
case RTL8723D:
|
||||||
|
if (interface_type == RTW_USB)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8723DU;
|
||||||
|
else if (interface_type == RTW_SDIO)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8723DS;
|
||||||
|
else if (interface_type == RTW_PCIE)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8723DE;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_RTL8188E
|
||||||
|
case RTL8188E:
|
||||||
|
if (interface_type == RTW_USB)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_88EU;
|
||||||
|
else if (interface_type == RTW_SDIO)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_88ES;
|
||||||
|
else if (interface_type == RTW_PCIE)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_88EE;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8188F
|
||||||
|
case RTL8188F:
|
||||||
|
if (interface_type == RTW_USB)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8188FU;
|
||||||
|
else if (interface_type == RTW_SDIO)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8188FS;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8188GTV
|
||||||
|
case RTL8188GTV:
|
||||||
|
if (interface_type == RTW_USB)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8188GTVU;
|
||||||
|
else if (interface_type == RTW_SDIO)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8188GTVS;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_RTL8812A
|
#ifdef CONFIG_RTL8812A
|
||||||
case RTL8812:
|
case RTL8812:
|
||||||
if (interface_type == RTW_USB)
|
if (interface_type == RTW_USB)
|
||||||
@ -12567,6 +12677,16 @@ int hal_efuse_macaddr_offset(_adapter *adapter)
|
|||||||
addr_offset = EEPROM_MAC_ADDR_8821AE;
|
addr_offset = EEPROM_MAC_ADDR_8821AE;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8192E
|
||||||
|
case RTL8192E:
|
||||||
|
if (interface_type == RTW_USB)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8192EU;
|
||||||
|
else if (interface_type == RTW_SDIO)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8192ES;
|
||||||
|
else if (interface_type == RTW_PCIE)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8192EE;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_RTL8814A
|
#ifdef CONFIG_RTL8814A
|
||||||
case RTL8814A:
|
case RTL8814A:
|
||||||
if (interface_type == RTW_USB)
|
if (interface_type == RTW_USB)
|
||||||
@ -12576,6 +12696,46 @@ int hal_efuse_macaddr_offset(_adapter *adapter)
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_RTL8822B
|
||||||
|
case RTL8822B:
|
||||||
|
if (interface_type == RTW_USB)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8822BU;
|
||||||
|
else if (interface_type == RTW_SDIO)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8822BS;
|
||||||
|
else if (interface_type == RTW_PCIE)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8822BE;
|
||||||
|
break;
|
||||||
|
#endif /* CONFIG_RTL8822B */
|
||||||
|
|
||||||
|
#ifdef CONFIG_RTL8821C
|
||||||
|
case RTL8821C:
|
||||||
|
if (interface_type == RTW_USB)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8821CU;
|
||||||
|
else if (interface_type == RTW_SDIO)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8821CS;
|
||||||
|
else if (interface_type == RTW_PCIE)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8821CE;
|
||||||
|
break;
|
||||||
|
#endif /* CONFIG_RTL8821C */
|
||||||
|
|
||||||
|
#ifdef CONFIG_RTL8710B
|
||||||
|
case RTL8710B:
|
||||||
|
if (interface_type == RTW_USB)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8710B;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_RTL8192F
|
||||||
|
case RTL8192F:
|
||||||
|
if (interface_type == RTW_USB)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8192FU;
|
||||||
|
else if (interface_type == RTW_SDIO)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8192FS;
|
||||||
|
else if (interface_type == RTW_PCIE)
|
||||||
|
addr_offset = EEPROM_MAC_ADDR_8192FE;
|
||||||
|
break;
|
||||||
|
#endif /* CONFIG_RTL8192F */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (addr_offset == -1) {
|
if (addr_offset == -1) {
|
||||||
@ -12793,6 +12953,32 @@ void rtw_bb_rf_gain_offset(_adapter *padapter)
|
|||||||
} else
|
} else
|
||||||
RTW_INFO("Using the default RF gain.\n");
|
RTW_INFO("Using the default RF gain.\n");
|
||||||
|
|
||||||
|
#elif defined(CONFIG_RTL8188E)
|
||||||
|
if (value & BIT4 && (registry_par->RegPwrTrimEnable == 1)) {
|
||||||
|
RTW_INFO("8188ES Offset RF Gain.\n");
|
||||||
|
RTW_INFO("8188ES Offset RF Gain. EEPROMRFGainVal=0x%x\n",
|
||||||
|
pHalData->EEPROMRFGainVal);
|
||||||
|
|
||||||
|
if (pHalData->EEPROMRFGainVal != 0xff) {
|
||||||
|
res = rtw_hal_read_rfreg(padapter, RF_PATH_A,
|
||||||
|
REG_RF_BB_GAIN_OFFSET, 0xffffffff);
|
||||||
|
|
||||||
|
RTW_INFO("Offset RF Gain. reg 0x55=0x%x\n", res);
|
||||||
|
res &= 0xfff87fff;
|
||||||
|
|
||||||
|
res |= (pHalData->EEPROMRFGainVal & 0x0f) << 15;
|
||||||
|
RTW_INFO("Offset RF Gain. res=0x%x\n", res);
|
||||||
|
|
||||||
|
rtw_hal_write_rfreg(padapter, RF_PATH_A,
|
||||||
|
REG_RF_BB_GAIN_OFFSET,
|
||||||
|
RF_GAIN_OFFSET_MASK, res);
|
||||||
|
} else {
|
||||||
|
RTW_INFO("Offset RF Gain. EEPROMRFGainVal=0x%x == 0xff, didn't run Kfree\n",
|
||||||
|
pHalData->EEPROMRFGainVal);
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
RTW_INFO("Using the default RF gain.\n");
|
||||||
|
#else
|
||||||
/* TODO: call this when channel switch */
|
/* TODO: call this when channel switch */
|
||||||
if (kfree_data->flag & KFREE_FLAG_ON)
|
if (kfree_data->flag & KFREE_FLAG_ON)
|
||||||
rtw_rf_apply_tx_gain_offset(padapter, 6); /* input ch6 to select BB_GAIN_2G */
|
rtw_rf_apply_tx_gain_offset(padapter, 6); /* input ch6 to select BB_GAIN_2G */
|
||||||
@ -13524,8 +13710,14 @@ u8 rtw_get_current_tx_sgi(_adapter *padapter, struct sta_info *psta)
|
|||||||
return curr_tx_sgi;
|
return curr_tx_sgi;
|
||||||
|
|
||||||
if (padapter->fix_rate == 0xff) {
|
if (padapter->fix_rate == 0xff) {
|
||||||
|
#if defined(CONFIG_RTL8188E)
|
||||||
|
#if (RATE_ADAPTIVE_SUPPORT == 1)
|
||||||
|
curr_tx_sgi = hal_data->odmpriv.ra_info[psta->cmn.mac_id].rate_sgi;
|
||||||
|
#endif /* (RATE_ADAPTIVE_SUPPORT == 1)*/
|
||||||
|
#else
|
||||||
ra_info = &psta->cmn.ra_info;
|
ra_info = &psta->cmn.ra_info;
|
||||||
curr_tx_sgi = ((ra_info->curr_tx_rate) & 0x80) >> 7;
|
curr_tx_sgi = ((ra_info->curr_tx_rate) & 0x80) >> 7;
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
curr_tx_sgi = ((padapter->fix_rate) & 0x80) >> 7;
|
curr_tx_sgi = ((padapter->fix_rate) & 0x80) >> 7;
|
||||||
}
|
}
|
||||||
@ -13543,8 +13735,14 @@ u8 rtw_get_current_tx_rate(_adapter *padapter, struct sta_info *psta)
|
|||||||
return rate_id;
|
return rate_id;
|
||||||
|
|
||||||
if (padapter->fix_rate == 0xff) {
|
if (padapter->fix_rate == 0xff) {
|
||||||
|
#if defined(CONFIG_RTL8188E)
|
||||||
|
#if (RATE_ADAPTIVE_SUPPORT == 1)
|
||||||
|
rate_id = hal_data->odmpriv.ra_info[psta->cmn.mac_id].decision_rate;
|
||||||
|
#endif /* (RATE_ADAPTIVE_SUPPORT == 1)*/
|
||||||
|
#else
|
||||||
ra_info = &psta->cmn.ra_info;
|
ra_info = &psta->cmn.ra_info;
|
||||||
rate_id = ra_info->curr_tx_rate & 0x7f;
|
rate_id = ra_info->curr_tx_rate & 0x7f;
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
rate_id = padapter->fix_rate & 0x7f;
|
rate_id = padapter->fix_rate & 0x7f;
|
||||||
}
|
}
|
||||||
@ -13628,6 +13826,14 @@ void hal_set_crystal_cap(_adapter *adapter, u8 crystal_cap)
|
|||||||
crystal_cap = crystal_cap & 0x3F;
|
crystal_cap = crystal_cap & 0x3F;
|
||||||
|
|
||||||
switch (rtw_get_chip_type(adapter)) {
|
switch (rtw_get_chip_type(adapter)) {
|
||||||
|
#if defined(CONFIG_RTL8188E) || defined(CONFIG_RTL8188F) || defined(CONFIG_RTL8188GTV)
|
||||||
|
case RTL8188E:
|
||||||
|
case RTL8188F:
|
||||||
|
case RTL8188GTV:
|
||||||
|
/* write 0x24[16:11] = 0x24[22:17] = CrystalCap */
|
||||||
|
phy_set_bb_reg(adapter, REG_AFE_XTAL_CTRL, 0x007FF800, (crystal_cap | (crystal_cap << 6)));
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
#if defined(CONFIG_RTL8812A)
|
#if defined(CONFIG_RTL8812A)
|
||||||
case RTL8812:
|
case RTL8812:
|
||||||
/* write 0x2C[30:25] = 0x2C[24:19] = CrystalCap */
|
/* write 0x2C[30:25] = 0x2C[24:19] = CrystalCap */
|
||||||
@ -13651,6 +13857,25 @@ void hal_set_crystal_cap(_adapter *adapter, u8 crystal_cap)
|
|||||||
/* write 0x2C[26:21] = 0x2C[20:15] = CrystalCap*/
|
/* write 0x2C[26:21] = 0x2C[20:15] = CrystalCap*/
|
||||||
phy_set_bb_reg(adapter, REG_MAC_PHY_CTRL, 0x07FF8000, (crystal_cap | (crystal_cap << 6)));
|
phy_set_bb_reg(adapter, REG_MAC_PHY_CTRL, 0x07FF8000, (crystal_cap | (crystal_cap << 6)));
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8192F)
|
||||||
|
|
||||||
|
case RTL8822B:
|
||||||
|
case RTL8821C:
|
||||||
|
case RTL8192F:
|
||||||
|
/* write 0x28[6:1] = 0x24[30:25] = CrystalCap */
|
||||||
|
crystal_cap = crystal_cap & 0x3F;
|
||||||
|
phy_set_bb_reg(adapter, REG_AFE_XTAL_CTRL, 0x7E000000, crystal_cap);
|
||||||
|
phy_set_bb_reg(adapter, REG_AFE_PLL_CTRL, 0x7E, crystal_cap);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(CONFIG_RTL8710B)
|
||||||
|
case RTL8710B:
|
||||||
|
/*Change by ylb 20160728, Becase 0x2C[23:12] is removed to syson 0x60[29:18] */
|
||||||
|
/* 0x2C[23:18] = 0x2C[29:24] = CrystalCap //Xo:[29:24], Xi:[23:18]*/
|
||||||
|
crystal_cap = crystal_cap & 0x3F;
|
||||||
|
hal_set_syson_reg(adapter, REG_SYS_XTAL_CTRL0, 0x3FFC0000, (crystal_cap | (crystal_cap << 6)));
|
||||||
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
rtw_warn_on(1);
|
rtw_warn_on(1);
|
||||||
@ -13665,6 +13890,36 @@ int hal_spec_init(_adapter *adapter)
|
|||||||
interface_type = rtw_get_intf_type(adapter);
|
interface_type = rtw_get_intf_type(adapter);
|
||||||
|
|
||||||
switch (rtw_get_chip_type(adapter)) {
|
switch (rtw_get_chip_type(adapter)) {
|
||||||
|
#ifdef CONFIG_RTL8723B
|
||||||
|
case RTL8723B:
|
||||||
|
init_hal_spec_8723b(adapter);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8703B
|
||||||
|
case RTL8703B:
|
||||||
|
init_hal_spec_8703b(adapter);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8723D
|
||||||
|
case RTL8723D:
|
||||||
|
init_hal_spec_8723d(adapter);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8188E
|
||||||
|
case RTL8188E:
|
||||||
|
init_hal_spec_8188e(adapter);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8188F
|
||||||
|
case RTL8188F:
|
||||||
|
init_hal_spec_8188f(adapter);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8188GTV
|
||||||
|
case RTL8188GTV:
|
||||||
|
init_hal_spec_8188gtv(adapter);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_RTL8812A
|
#ifdef CONFIG_RTL8812A
|
||||||
case RTL8812:
|
case RTL8812:
|
||||||
init_hal_spec_8812a(adapter);
|
init_hal_spec_8812a(adapter);
|
||||||
@ -13675,11 +13930,36 @@ int hal_spec_init(_adapter *adapter)
|
|||||||
init_hal_spec_8821a(adapter);
|
init_hal_spec_8821a(adapter);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8192E
|
||||||
|
case RTL8192E:
|
||||||
|
init_hal_spec_8192e(adapter);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_RTL8814A
|
#ifdef CONFIG_RTL8814A
|
||||||
case RTL8814A:
|
case RTL8814A:
|
||||||
init_hal_spec_8814a(adapter);
|
init_hal_spec_8814a(adapter);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8822B
|
||||||
|
case RTL8822B:
|
||||||
|
rtl8822b_init_hal_spec(adapter);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8821C
|
||||||
|
case RTL8821C:
|
||||||
|
init_hal_spec_rtl8821c(adapter);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8710B
|
||||||
|
case RTL8710B:
|
||||||
|
init_hal_spec_8710b(adapter);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8192F
|
||||||
|
case RTL8192F:
|
||||||
|
init_hal_spec_8192f(adapter);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
default:
|
default:
|
||||||
RTW_ERR("%s: unknown chip_type:%u\n"
|
RTW_ERR("%s: unknown chip_type:%u\n"
|
||||||
|
@ -20,9 +20,20 @@
|
|||||||
|
|
||||||
const u32 _chip_type_to_odm_ic_type[] = {
|
const u32 _chip_type_to_odm_ic_type[] = {
|
||||||
0,
|
0,
|
||||||
|
ODM_RTL8188E,
|
||||||
|
ODM_RTL8192E,
|
||||||
ODM_RTL8812,
|
ODM_RTL8812,
|
||||||
ODM_RTL8821,
|
ODM_RTL8821,
|
||||||
|
ODM_RTL8723B,
|
||||||
ODM_RTL8814A,
|
ODM_RTL8814A,
|
||||||
|
ODM_RTL8703B,
|
||||||
|
ODM_RTL8188F,
|
||||||
|
ODM_RTL8188F,
|
||||||
|
ODM_RTL8822B,
|
||||||
|
ODM_RTL8723D,
|
||||||
|
ODM_RTL8821C,
|
||||||
|
ODM_RTL8710B,
|
||||||
|
ODM_RTL8192F,
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1402,6 +1413,7 @@ bool rtw_hal_rfkill_poll(_adapter *adapter, u8 *valid)
|
|||||||
u8 rtw_hal_ops_check(_adapter *padapter)
|
u8 rtw_hal_ops_check(_adapter *padapter)
|
||||||
{
|
{
|
||||||
u8 ret = _SUCCESS;
|
u8 ret = _SUCCESS;
|
||||||
|
#if 1
|
||||||
/*** initialize section ***/
|
/*** initialize section ***/
|
||||||
if (NULL == padapter->hal_func.read_chip_version) {
|
if (NULL == padapter->hal_func.read_chip_version) {
|
||||||
rtw_hal_error_msg("read_chip_version");
|
rtw_hal_error_msg("read_chip_version");
|
||||||
@ -1591,6 +1603,12 @@ u8 rtw_hal_ops_check(_adapter *padapter)
|
|||||||
rtw_hal_error_msg("hal_mac_c2h_handler");
|
rtw_hal_error_msg("hal_mac_c2h_handler");
|
||||||
ret = _FAIL;
|
ret = _FAIL;
|
||||||
}
|
}
|
||||||
|
#elif !defined(CONFIG_RTL8188E)
|
||||||
|
if (NULL == padapter->hal_func.c2h_handler) {
|
||||||
|
rtw_hal_error_msg("c2h_handler");
|
||||||
|
ret = _FAIL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_LPS) || defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN)
|
#if defined(CONFIG_LPS) || defined(CONFIG_WOWLAN) || defined(CONFIG_AP_WOWLAN)
|
||||||
if (NULL == padapter->hal_func.fill_fake_txdesc) {
|
if (NULL == padapter->hal_func.fill_fake_txdesc) {
|
||||||
|
27
hal/hal_mp.c
27
hal/hal_mp.c
@ -21,12 +21,39 @@
|
|||||||
#ifdef RTW_HALMAC
|
#ifdef RTW_HALMAC
|
||||||
#include <hal_data.h> /* struct HAL_DATA_TYPE, RF register definition and etc. */
|
#include <hal_data.h> /* struct HAL_DATA_TYPE, RF register definition and etc. */
|
||||||
#else /* !RTW_HALMAC */
|
#else /* !RTW_HALMAC */
|
||||||
|
#ifdef CONFIG_RTL8188E
|
||||||
|
#include <rtl8188e_hal.h>
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8723B
|
||||||
|
#include <rtl8723b_hal.h>
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8192E
|
||||||
|
#include <rtl8192e_hal.h>
|
||||||
|
#endif
|
||||||
#if defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8812A)
|
#if defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8812A)
|
||||||
#include <rtl8814a_hal.h>
|
#include <rtl8814a_hal.h>
|
||||||
#endif
|
#endif
|
||||||
#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A)
|
#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A)
|
||||||
#include <rtl8812a_hal.h>
|
#include <rtl8812a_hal.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8703B
|
||||||
|
#include <rtl8703b_hal.h>
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8723D
|
||||||
|
#include <rtl8723d_hal.h>
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8710B
|
||||||
|
#include <rtl8710b_hal.h>
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8188F
|
||||||
|
#include <rtl8188f_hal.h>
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8188GTV
|
||||||
|
#include <rtl8188gtv_hal.h>
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_RTL8192F
|
||||||
|
#include <rtl8192f_hal.h>
|
||||||
|
#endif
|
||||||
#endif /* !RTW_HALMAC */
|
#endif /* !RTW_HALMAC */
|
||||||
|
|
||||||
|
|
||||||
|
@ -1202,6 +1202,16 @@ VOID
|
|||||||
IN BOOLEAN is2T
|
IN BOOLEAN is2T
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
#if (RT_PLATFORM == PLATFORM_WINDOWS)
|
||||||
|
#if !(DM_ODM_SUPPORT_TYPE & ODM_AP)
|
||||||
|
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
|
||||||
|
#if (DM_ODM_SUPPORT_TYPE == ODM_CE)
|
||||||
|
PDM_ODM_T pDM_Odm = &pHalData->odmpriv;
|
||||||
|
#endif
|
||||||
|
#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
|
||||||
|
PDM_ODM_T pDM_Odm = &pHalData->DM_OutSrc;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
u4Byte tmpReg, tmpReg2, index, i;
|
u4Byte tmpReg, tmpReg2, index, i;
|
||||||
u1Byte path, pathbound = PATH_NUM;
|
u1Byte path, pathbound = PATH_NUM;
|
||||||
@ -1216,12 +1226,12 @@ VOID
|
|||||||
rRx_TO_Rx, rStandby,
|
rRx_TO_Rx, rStandby,
|
||||||
rSleep, rPMPD_ANAEN };
|
rSleep, rPMPD_ANAEN };
|
||||||
|
|
||||||
u4Byte BB_backup[DP_BB_REG_NUM];
|
u4Byte BB_backup[DP_BB_REG_NUM];
|
||||||
u4Byte BB_REG[DP_BB_REG_NUM] = {
|
u4Byte BB_REG[DP_BB_REG_NUM] = {
|
||||||
rOFDM0_TRxPathEnable, rFPGA0_RFMOD,
|
rOFDM0_TRxPathEnable, rFPGA0_RFMOD,
|
||||||
rOFDM0_TRMuxPar, rFPGA0_XCD_RFInterfaceSW,
|
rOFDM0_TRMuxPar, rFPGA0_XCD_RFInterfaceSW,
|
||||||
rFPGA0_XAB_RFInterfaceSW, rFPGA0_XA_RFInterfaceOE,
|
rFPGA0_XAB_RFInterfaceSW, rFPGA0_XA_RFInterfaceOE,
|
||||||
rFPGA0_XB_RFInterfaceOE};
|
rFPGA0_XB_RFInterfaceOE};
|
||||||
u4Byte BB_settings[DP_BB_REG_NUM] = {
|
u4Byte BB_settings[DP_BB_REG_NUM] = {
|
||||||
0x00a05430, 0x02040000, 0x000800e4, 0x22208000,
|
0x00a05430, 0x02040000, 0x000800e4, 0x22208000,
|
||||||
0x0, 0x0, 0x0};
|
0x0, 0x0, 0x0};
|
||||||
|
@ -1201,29 +1201,39 @@ VOID
|
|||||||
IN BOOLEAN is2T
|
IN BOOLEAN is2T
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
#if (RT_PLATFORM == PLATFORM_WINDOWS)
|
||||||
|
#if !(DM_ODM_SUPPORT_TYPE & ODM_AP)
|
||||||
|
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
|
||||||
|
#if (DM_ODM_SUPPORT_TYPE == ODM_CE)
|
||||||
|
PDM_ODM_T pDM_Odm = &pHalData->odmpriv;
|
||||||
|
#endif
|
||||||
|
#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
|
||||||
|
PDM_ODM_T pDM_Odm = &pHalData->DM_OutSrc;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
u32 tmpReg, tmpReg2, index, i;
|
u32 tmpReg, tmpReg2, index, i;
|
||||||
u8 path, pathbound = PATH_NUM;
|
u8 path, pathbound = PATH_NUM;
|
||||||
u32 AFE_backup[IQK_ADDA_REG_NUM];
|
u32 AFE_backup[IQK_ADDA_REG_NUM];
|
||||||
u32 AFE_REG[IQK_ADDA_REG_NUM] = {
|
u32 AFE_REG[IQK_ADDA_REG_NUM] = {
|
||||||
rFPGA0_XCD_SwitchControl, rBlue_Tooth,
|
rFPGA0_XCD_SwitchControl, rBlue_Tooth,
|
||||||
rRx_Wait_CCA, rTx_CCK_RFON,
|
rRx_Wait_CCA, rTx_CCK_RFON,
|
||||||
rTx_CCK_BBON, rTx_OFDM_RFON,
|
rTx_CCK_BBON, rTx_OFDM_RFON,
|
||||||
rTx_OFDM_BBON, rTx_To_Rx,
|
rTx_OFDM_BBON, rTx_To_Rx,
|
||||||
rTx_To_Tx, rRx_CCK,
|
rTx_To_Tx, rRx_CCK,
|
||||||
rRx_OFDM, rRx_Wait_RIFS,
|
rRx_OFDM, rRx_Wait_RIFS,
|
||||||
rRx_TO_Rx, rStandby,
|
rRx_TO_Rx, rStandby,
|
||||||
rSleep, rPMPD_ANAEN };
|
rSleep, rPMPD_ANAEN };
|
||||||
|
|
||||||
u32 BB_backup[DP_BB_REG_NUM];
|
u32 BB_backup[DP_BB_REG_NUM];
|
||||||
u32 BB_REG[DP_BB_REG_NUM] = {
|
u32 BB_REG[DP_BB_REG_NUM] = {
|
||||||
rOFDM0_TRxPathEnable, rFPGA0_RFMOD,
|
rOFDM0_TRxPathEnable, rFPGA0_RFMOD,
|
||||||
rOFDM0_TRMuxPar, rFPGA0_XCD_RFInterfaceSW,
|
rOFDM0_TRMuxPar, rFPGA0_XCD_RFInterfaceSW,
|
||||||
rFPGA0_XAB_RFInterfaceSW, rFPGA0_XA_RFInterfaceOE,
|
rFPGA0_XAB_RFInterfaceSW, rFPGA0_XA_RFInterfaceOE,
|
||||||
rFPGA0_XB_RFInterfaceOE};
|
rFPGA0_XB_RFInterfaceOE};
|
||||||
u32 BB_settings[DP_BB_REG_NUM] = {
|
u32 BB_settings[DP_BB_REG_NUM] = {
|
||||||
0x00a05430, 0x02040000, 0x000800e4, 0x22208000,
|
0x00a05430, 0x02040000, 0x000800e4, 0x22208000,
|
||||||
0x0, 0x0, 0x0};
|
0x0, 0x0, 0x0};
|
||||||
|
|
||||||
u32 RF_backup[DP_PATH_NUM][DP_RF_REG_NUM];
|
u32 RF_backup[DP_PATH_NUM][DP_RF_REG_NUM];
|
||||||
u32 RF_REG[DP_RF_REG_NUM] = {
|
u32 RF_REG[DP_RF_REG_NUM] = {
|
||||||
|
@ -1585,9 +1585,9 @@ HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_INIT_HAL_DM);
|
|||||||
// Reset USB mode switch setting
|
// Reset USB mode switch setting
|
||||||
rtw_write8(Adapter, REG_SDIO_CTRL_8814A, 0x0);
|
rtw_write8(Adapter, REG_SDIO_CTRL_8814A, 0x0);
|
||||||
rtw_write8(Adapter, REG_ACLK_MON, 0x0);
|
rtw_write8(Adapter, REG_ACLK_MON, 0x0);
|
||||||
|
|
||||||
//RT_TRACE(COMP_INIT, DBG_TRACE, ("InitializeAdapter8188EUsb() <====\n"));
|
//RT_TRACE(COMP_INIT, DBG_TRACE, ("InitializeAdapter8188EUsb() <====\n"));
|
||||||
|
|
||||||
HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_IQK);
|
HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_IQK);
|
||||||
// 2010/08/26 MH Merge from 8192CE.
|
// 2010/08/26 MH Merge from 8192CE.
|
||||||
if(pwrctrlpriv->rf_pwrstate == rf_on)
|
if(pwrctrlpriv->rf_pwrstate == rf_on)
|
||||||
@ -2048,19 +2048,19 @@ InitAdapterVariablesByPROM_8814AU(
|
|||||||
hal_ReadTxPowerInfo8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
hal_ReadTxPowerInfo8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
||||||
hal_ReadBoardType8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
hal_ReadBoardType8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
||||||
hal_Read_TRX_antenna_8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
hal_Read_TRX_antenna_8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Read Bluetooth co-exist and initialize
|
// Read Bluetooth co-exist and initialize
|
||||||
//
|
//
|
||||||
hal_EfuseParseBTCoexistInfo8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
hal_EfuseParseBTCoexistInfo8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
||||||
|
|
||||||
hal_ReadChannelPlan8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
hal_ReadChannelPlan8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
||||||
hal_EfuseParseXtal_8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
hal_EfuseParseXtal_8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
||||||
hal_ReadThermalMeter_8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
hal_ReadThermalMeter_8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
||||||
hal_ReadRemoteWakeup_8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
hal_ReadRemoteWakeup_8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
||||||
hal_ReadAntennaDiversity8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
hal_ReadAntennaDiversity8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
||||||
hal_ReadRFEType_8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
hal_ReadRFEType_8814A(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
||||||
|
|
||||||
ReadLEDSetting_8814AU(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
ReadLEDSetting_8814AU(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
||||||
|
|
||||||
hal_ReadUsbModeSwitch_8814AU(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
hal_ReadUsbModeSwitch_8814AU(Adapter, pHalData->efuse_eeprom_data, pHalData->bautoload_fail_flag);
|
||||||
@ -2074,7 +2074,7 @@ InitAdapterVariablesByPROM_8814AU(
|
|||||||
static void hal_ReadPROMContent_8814A(
|
static void hal_ReadPROMContent_8814A(
|
||||||
IN PADAPTER Adapter
|
IN PADAPTER Adapter
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(Adapter);
|
PHAL_DATA_TYPE pHalData = GET_HAL_DATA(Adapter);
|
||||||
u8 eeValue;
|
u8 eeValue;
|
||||||
|
|
||||||
@ -2097,7 +2097,7 @@ ReadAdapterInfo8814AU(
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
Hal_InitEfuseVars_8814A(Adapter);
|
Hal_InitEfuseVars_8814A(Adapter);
|
||||||
|
|
||||||
/* Read all content in Efuse/EEPROM. */
|
/* Read all content in Efuse/EEPROM. */
|
||||||
hal_ReadPROMContent_8814A(Adapter);
|
hal_ReadPROMContent_8814A(Adapter);
|
||||||
|
|
||||||
@ -2118,17 +2118,17 @@ void UpdateInterruptMask8814AU(PADAPTER padapter,u8 bHIMR0 ,u32 AddMSR, u32 Remo
|
|||||||
himr = &(pHalData->IntrMask[0]);
|
himr = &(pHalData->IntrMask[0]);
|
||||||
else
|
else
|
||||||
himr = &(pHalData->IntrMask[1]);
|
himr = &(pHalData->IntrMask[1]);
|
||||||
|
|
||||||
if (AddMSR)
|
if (AddMSR)
|
||||||
*himr |= AddMSR;
|
*himr |= AddMSR;
|
||||||
|
|
||||||
if (RemoveMSR)
|
if (RemoveMSR)
|
||||||
*himr &= (~RemoveMSR);
|
*himr &= (~RemoveMSR);
|
||||||
|
|
||||||
if(bHIMR0)
|
if(bHIMR0)
|
||||||
rtw_write32(padapter, REG_HIMR0_8814A, *himr);
|
rtw_write32(padapter, REG_HIMR0_8814A, *himr);
|
||||||
else
|
else
|
||||||
rtw_write32(padapter, REG_HIMR1_8814A, *himr);
|
rtw_write32(padapter, REG_HIMR1_8814A, *himr);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2223,7 +2223,7 @@ u8 SetHwReg8814AU(PADAPTER Adapter, u8 variable, u8* val)
|
|||||||
|
|
||||||
void GetHwReg8814AU(PADAPTER Adapter, u8 variable, u8* val)
|
void GetHwReg8814AU(PADAPTER Adapter, u8 variable, u8* val)
|
||||||
{
|
{
|
||||||
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
|
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(Adapter);
|
||||||
|
|
||||||
switch(variable)
|
switch(variable)
|
||||||
{
|
{
|
||||||
@ -2340,7 +2340,7 @@ static void rtl8814au_init_default_value(_adapter * padapter)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static u8 rtl8814au_ps_func(PADAPTER Adapter,HAL_INTF_PS_FUNC efunc_id, u8 *val)
|
static u8 rtl8814au_ps_func(PADAPTER Adapter,HAL_INTF_PS_FUNC efunc_id, u8 *val)
|
||||||
{
|
{
|
||||||
u8 bResult = _TRUE;
|
u8 bResult = _TRUE;
|
||||||
switch(efunc_id){
|
switch(efunc_id){
|
||||||
|
|
||||||
@ -2365,7 +2365,7 @@ void rtl8814au_set_hal_ops(_adapter * padapter)
|
|||||||
|
|
||||||
pHalFunc->hal_power_on = _InitPowerOn_8814AU;
|
pHalFunc->hal_power_on = _InitPowerOn_8814AU;
|
||||||
pHalFunc->hal_power_off = hal_carddisable_8814;
|
pHalFunc->hal_power_off = hal_carddisable_8814;
|
||||||
|
|
||||||
pHalFunc->hal_init = &rtl8814au_hal_init;
|
pHalFunc->hal_init = &rtl8814au_hal_init;
|
||||||
pHalFunc->hal_deinit = &rtl8814au_hal_deinit;
|
pHalFunc->hal_deinit = &rtl8814au_hal_deinit;
|
||||||
|
|
||||||
@ -2384,11 +2384,11 @@ void rtl8814au_set_hal_ops(_adapter * padapter)
|
|||||||
// pHalFunc->InitSwLeds = NULL;
|
// pHalFunc->InitSwLeds = NULL;
|
||||||
// pHalFunc->DeInitSwLeds = NULL;
|
// pHalFunc->DeInitSwLeds = NULL;
|
||||||
#endif//CONFIG_RTW_LED
|
#endif//CONFIG_RTW_LED
|
||||||
|
|
||||||
pHalFunc->init_default_value = &rtl8814au_init_default_value;
|
pHalFunc->init_default_value = &rtl8814au_init_default_value;
|
||||||
pHalFunc->intf_chip_configure = &rtl8814au_interface_configure;
|
pHalFunc->intf_chip_configure = &rtl8814au_interface_configure;
|
||||||
pHalFunc->read_adapter_info = &ReadAdapterInfo8814AU;
|
pHalFunc->read_adapter_info = &ReadAdapterInfo8814AU;
|
||||||
|
|
||||||
pHalFunc->set_hw_reg_handler = &SetHwReg8814AU;
|
pHalFunc->set_hw_reg_handler = &SetHwReg8814AU;
|
||||||
pHalFunc->GetHwRegHandler = &GetHwReg8814AU;
|
pHalFunc->GetHwRegHandler = &GetHwReg8814AU;
|
||||||
pHalFunc->get_hal_def_var_handler = &GetHalDefVar8814AUsb;
|
pHalFunc->get_hal_def_var_handler = &GetHalDefVar8814AUsb;
|
||||||
|
@ -15,4 +15,11 @@
|
|||||||
#ifndef __SDIO_OSINTF_H__
|
#ifndef __SDIO_OSINTF_H__
|
||||||
#define __SDIO_OSINTF_H__
|
#define __SDIO_OSINTF_H__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef PLATFORM_OS_CE
|
||||||
|
extern NDIS_STATUS ce_sd_get_dev_hdl(PADAPTER padapter);
|
||||||
|
SD_API_STATUS ce_sd_int_callback(SD_DEVICE_HANDLE hDevice, PADAPTER padapter);
|
||||||
|
extern void sd_setup_irs(PADAPTER padapter);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -18,6 +18,9 @@
|
|||||||
#if defined(CONFIG_USB_HCI)
|
#if defined(CONFIG_USB_HCI)
|
||||||
|
|
||||||
#ifndef MAX_RECVBUF_SZ
|
#ifndef MAX_RECVBUF_SZ
|
||||||
|
#ifdef PLATFORM_OS_CE
|
||||||
|
#define MAX_RECVBUF_SZ (8192+1024) /* 8K+1k */
|
||||||
|
#else
|
||||||
#ifndef CONFIG_MINIMAL_MEMORY_USAGE
|
#ifndef CONFIG_MINIMAL_MEMORY_USAGE
|
||||||
#ifdef CONFIG_PREALLOC_RX_SKB_BUFFER
|
#ifdef CONFIG_PREALLOC_RX_SKB_BUFFER
|
||||||
#define MAX_RECVBUF_SZ (rtw_rtkm_get_buff_size()) /*depend rtkm*/
|
#define MAX_RECVBUF_SZ (rtw_rtkm_get_buff_size()) /*depend rtkm*/
|
||||||
@ -36,6 +39,7 @@
|
|||||||
#else
|
#else
|
||||||
#define MAX_RECVBUF_SZ (4000) /* about 4K */
|
#define MAX_RECVBUF_SZ (4000) /* about 4K */
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#endif /* !MAX_RECVBUF_SZ */
|
#endif /* !MAX_RECVBUF_SZ */
|
||||||
|
|
||||||
#elif defined(CONFIG_PCI_HCI)
|
#elif defined(CONFIG_PCI_HCI)
|
||||||
|
@ -18,6 +18,9 @@
|
|||||||
#if defined(CONFIG_USB_HCI)
|
#if defined(CONFIG_USB_HCI)
|
||||||
|
|
||||||
#ifndef MAX_RECVBUF_SZ
|
#ifndef MAX_RECVBUF_SZ
|
||||||
|
#ifdef PLATFORM_OS_CE
|
||||||
|
#define MAX_RECVBUF_SZ (8192+1024) /* 8K+1k */
|
||||||
|
#else
|
||||||
#ifndef CONFIG_MINIMAL_MEMORY_USAGE
|
#ifndef CONFIG_MINIMAL_MEMORY_USAGE
|
||||||
#ifdef CONFIG_PLATFORM_MSTAR
|
#ifdef CONFIG_PLATFORM_MSTAR
|
||||||
#define MAX_RECVBUF_SZ (8192) /* 8K */
|
#define MAX_RECVBUF_SZ (8192) /* 8K */
|
||||||
@ -32,6 +35,7 @@
|
|||||||
#else
|
#else
|
||||||
#define MAX_RECVBUF_SZ (4000) /* about 4K */
|
#define MAX_RECVBUF_SZ (4000) /* about 4K */
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#endif /* !MAX_RECVBUF_SZ */
|
#endif /* !MAX_RECVBUF_SZ */
|
||||||
|
|
||||||
#elif defined(CONFIG_PCI_HCI)
|
#elif defined(CONFIG_PCI_HCI)
|
||||||
|
@ -26,7 +26,11 @@
|
|||||||
#define MAX_RSPSZ 512
|
#define MAX_RSPSZ 512
|
||||||
#define MAX_EVTSZ 1024
|
#define MAX_EVTSZ 1024
|
||||||
|
|
||||||
#define CMDBUFF_ALIGN_SZ 512
|
#ifdef PLATFORM_OS_CE
|
||||||
|
#define CMDBUFF_ALIGN_SZ 4
|
||||||
|
#else
|
||||||
|
#define CMDBUFF_ALIGN_SZ 512
|
||||||
|
#endif
|
||||||
|
|
||||||
struct cmd_obj {
|
struct cmd_obj {
|
||||||
_adapter *padapter;
|
_adapter *padapter;
|
||||||
@ -110,6 +114,9 @@ struct evt_priv {
|
|||||||
#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
|
#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
|
||||||
u8 *c2h_mem;
|
u8 *c2h_mem;
|
||||||
u8 *allocated_c2h_mem;
|
u8 *allocated_c2h_mem;
|
||||||
|
#ifdef PLATFORM_OS_XP
|
||||||
|
PMDL pc2h_mdl;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -28,6 +28,10 @@ enum {
|
|||||||
|
|
||||||
#define DRIVER_PREFIX "RTW: "
|
#define DRIVER_PREFIX "RTW: "
|
||||||
|
|
||||||
|
#ifdef PLATFORM_OS_CE
|
||||||
|
extern void rtl871x_cedbg(const char *fmt, ...);
|
||||||
|
#endif
|
||||||
|
|
||||||
#define RTW_PRINT(x, ...) do {} while (0)
|
#define RTW_PRINT(x, ...) do {} while (0)
|
||||||
#define RTW_ERR(x, ...) do {} while (0)
|
#define RTW_ERR(x, ...) do {} while (0)
|
||||||
#define RTW_WARN(x,...) do {} while (0)
|
#define RTW_WARN(x,...) do {} while (0)
|
||||||
|
@ -19,6 +19,19 @@
|
|||||||
#define RTW_RX_MSDU_ACT_INDICATE BIT0
|
#define RTW_RX_MSDU_ACT_INDICATE BIT0
|
||||||
#define RTW_RX_MSDU_ACT_FORWARD BIT1
|
#define RTW_RX_MSDU_ACT_FORWARD BIT1
|
||||||
|
|
||||||
|
#ifdef PLATFORM_OS_XP
|
||||||
|
#ifdef CONFIG_SDIO_HCI
|
||||||
|
#define NR_RECVBUFF 1024/* 512 */ /* 128 */
|
||||||
|
#else
|
||||||
|
#define NR_RECVBUFF (16)
|
||||||
|
#endif
|
||||||
|
#elif defined(PLATFORM_OS_CE)
|
||||||
|
#ifdef CONFIG_SDIO_HCI
|
||||||
|
#define NR_RECVBUFF (128)
|
||||||
|
#else
|
||||||
|
#define NR_RECVBUFF (4)
|
||||||
|
#endif
|
||||||
|
#else /* PLATFORM_LINUX /PLATFORM_BSD */
|
||||||
|
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
|
|
||||||
@ -42,6 +55,7 @@
|
|||||||
#ifdef CONFIG_RTW_NAPI
|
#ifdef CONFIG_RTW_NAPI
|
||||||
#define RTL_NAPI_WEIGHT (32)
|
#define RTL_NAPI_WEIGHT (32)
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_RTL8821C) && defined(CONFIG_SDIO_HCI) && defined(CONFIG_RECV_THREAD_MODE)
|
#if defined(CONFIG_RTL8821C) && defined(CONFIG_SDIO_HCI) && defined(CONFIG_RECV_THREAD_MODE)
|
||||||
#ifdef NR_RECVBUFF
|
#ifdef NR_RECVBUFF
|
||||||
@ -340,6 +354,17 @@ struct recv_priv {
|
|||||||
|
|
||||||
_adapter *adapter;
|
_adapter *adapter;
|
||||||
|
|
||||||
|
#ifdef PLATFORM_WINDOWS
|
||||||
|
_nic_hdl RxPktPoolHdl;
|
||||||
|
_nic_hdl RxBufPoolHdl;
|
||||||
|
|
||||||
|
#ifdef PLATFORM_OS_XP
|
||||||
|
PMDL pbytecnt_mdl;
|
||||||
|
#endif
|
||||||
|
uint counter; /* record the number that up-layer will return to drv; only when counter==0 can we release recv_priv */
|
||||||
|
NDIS_EVENT recv_resource_evt ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
u32 is_any_non_be_pkts;
|
u32 is_any_non_be_pkts;
|
||||||
|
|
||||||
@ -508,11 +533,20 @@ struct recv_buf {
|
|||||||
|
|
||||||
#ifdef CONFIG_USB_HCI
|
#ifdef CONFIG_USB_HCI
|
||||||
|
|
||||||
#if defined(PLATFORM_LINUX) || defined(PLATFORM_FREEBSD)
|
#if defined(PLATFORM_OS_XP) || defined(PLATFORM_LINUX) || defined(PLATFORM_FREEBSD)
|
||||||
PURB purb;
|
PURB purb;
|
||||||
dma_addr_t dma_transfer_addr; /* (in) dma addr for transfer_buffer */
|
dma_addr_t dma_transfer_addr; /* (in) dma addr for transfer_buffer */
|
||||||
u32 alloc_sz;
|
u32 alloc_sz;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef PLATFORM_OS_XP
|
||||||
|
PIRP pirp;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef PLATFORM_OS_CE
|
||||||
|
USB_TRANSFER usb_transfer_read_port;
|
||||||
|
#endif
|
||||||
|
|
||||||
u8 irp_pending;
|
u8 irp_pending;
|
||||||
int transfer_len;
|
int transfer_len;
|
||||||
|
|
||||||
|
@ -60,6 +60,10 @@
|
|||||||
#endif
|
#endif
|
||||||
#define NR_XMITBUFF (128)
|
#define NR_XMITBUFF (128)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef PLATFORM_OS_CE
|
||||||
|
#define XMITBUF_ALIGN_SZ 4
|
||||||
|
#else
|
||||||
#ifdef CONFIG_PCI_HCI
|
#ifdef CONFIG_PCI_HCI
|
||||||
#define XMITBUF_ALIGN_SZ 4
|
#define XMITBUF_ALIGN_SZ 4
|
||||||
#else
|
#else
|
||||||
@ -68,6 +72,7 @@
|
|||||||
#else
|
#else
|
||||||
#define XMITBUF_ALIGN_SZ 512
|
#define XMITBUF_ALIGN_SZ 512
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* xmit extension buff defination */
|
/* xmit extension buff defination */
|
||||||
|
@ -15,4 +15,11 @@
|
|||||||
#ifndef __SDIO_OSINTF_H__
|
#ifndef __SDIO_OSINTF_H__
|
||||||
#define __SDIO_OSINTF_H__
|
#define __SDIO_OSINTF_H__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef PLATFORM_OS_CE
|
||||||
|
extern NDIS_STATUS ce_sd_get_dev_hdl(PADAPTER padapter);
|
||||||
|
SD_API_STATUS ce_sd_int_callback(SD_DEVICE_HANDLE hDevice, PADAPTER padapter);
|
||||||
|
extern void sd_setup_irs(PADAPTER padapter);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1135,6 +1135,11 @@ void _rtw_init_sema(_sema *sema, int init_val)
|
|||||||
sema_init(sema, init_val, "rtw_drv");
|
sema_init(sema, init_val, "rtw_drv");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef PLATFORM_OS_CE
|
||||||
|
if (*sema == NULL)
|
||||||
|
*sema = CreateSemaphore(NULL, init_val, SEMA_UPBND, NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _rtw_free_sema(_sema *sema)
|
void _rtw_free_sema(_sema *sema)
|
||||||
@ -1142,6 +1147,9 @@ void _rtw_free_sema(_sema *sema)
|
|||||||
#ifdef PLATFORM_FREEBSD
|
#ifdef PLATFORM_FREEBSD
|
||||||
sema_destroy(sema);
|
sema_destroy(sema);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef PLATFORM_OS_CE
|
||||||
|
CloseHandle(*sema);
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1156,6 +1164,10 @@ void _rtw_up_sema(_sema *sema)
|
|||||||
#ifdef PLATFORM_FREEBSD
|
#ifdef PLATFORM_FREEBSD
|
||||||
sema_post(sema);
|
sema_post(sema);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef PLATFORM_OS_CE
|
||||||
|
ReleaseSemaphore(*sema, 1, NULL);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 _rtw_down_sema(_sema *sema)
|
u32 _rtw_down_sema(_sema *sema)
|
||||||
@ -1173,6 +1185,13 @@ u32 _rtw_down_sema(_sema *sema)
|
|||||||
sema_wait(sema);
|
sema_wait(sema);
|
||||||
return _SUCCESS;
|
return _SUCCESS;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef PLATFORM_OS_CE
|
||||||
|
if (WAIT_OBJECT_0 == WaitForSingleObject(*sema, INFINITE))
|
||||||
|
return _SUCCESS;
|
||||||
|
else
|
||||||
|
return _FAIL;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0)
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 17, 0)
|
||||||
@ -1192,6 +1211,10 @@ inline void kthread_thread_exit(_completion *comp)
|
|||||||
#ifdef PLATFORM_FREEBSD
|
#ifdef PLATFORM_FREEBSD
|
||||||
printf("%s", "RTKTHREAD_exit");
|
printf("%s", "RTKTHREAD_exit");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef PLATFORM_OS_CE
|
||||||
|
ExitThread(STATUS_SUCCESS);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void _rtw_init_completion(_completion *comp)
|
inline void _rtw_init_completion(_completion *comp)
|
||||||
@ -1227,6 +1250,10 @@ void _rtw_mutex_init(_mutex *pmutex)
|
|||||||
#ifdef PLATFORM_FREEBSD
|
#ifdef PLATFORM_FREEBSD
|
||||||
mtx_init(pmutex, "", NULL, MTX_DEF | MTX_RECURSE);
|
mtx_init(pmutex, "", NULL, MTX_DEF | MTX_RECURSE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef PLATFORM_OS_CE
|
||||||
|
*pmutex = CreateMutex(NULL, _FALSE, NULL);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void _rtw_mutex_free(_mutex *pmutex);
|
void _rtw_mutex_free(_mutex *pmutex);
|
||||||
@ -1243,6 +1270,10 @@ void _rtw_mutex_free(_mutex *pmutex)
|
|||||||
sema_destroy(pmutex);
|
sema_destroy(pmutex);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef PLATFORM_OS_CE
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user