1
0
mirror of https://github.com/aircrack-ng/rtl8812au.git synced 2024-11-22 13:24:36 +00:00

Revert "Some cleanup of unused chips"

This reverts commit b3227c731e.
This commit is contained in:
kimocoder 2023-06-06 17:50:45 +02:00
parent dc8dcb4fa2
commit ca797e114b
15 changed files with 478 additions and 30 deletions

View File

@ -4330,6 +4330,28 @@ s32 rtw_hal_set_FwMediaStatusRpt_cmd(_adapter *adapter, bool opmode, bool miraca
if (ret != _SUCCESS)
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)
/* TODO: this should move to IOT issue area */
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_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)
{
u32 val32 = 0;
@ -5819,6 +5856,10 @@ static void rtw_hal_ap_wow_enable(_adapter *padapter)
issue_beacon(padapter, 0);
rtw_msleep_os(2);
#if defined(CONFIG_RTL8188E)
if (IS_HARDWARE_TYPE_8188E(padapter))
rtw_hal_disable_tx_report(padapter);
#endif
/* RX DMA stop */
res = rtw_hal_pause_rx_dma(padapter);
if (res == _FAIL)
@ -5879,6 +5920,11 @@ static void rtw_hal_ap_wow_disable(_adapter *padapter)
}
#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_fw_dl(padapter, _FALSE);
@ -9558,6 +9604,10 @@ static void rtw_hal_wow_enable(_adapter *adapter)
(u8 *)&media_status_rpt);
/* 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);
if (res == _FAIL)
@ -9746,6 +9796,11 @@ static void rtw_hal_wow_disable(_adapter *adapter)
#endif
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) &&
(pwrctl->wowlan_wake_reason != RX_DEAUTH) &&
(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);
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
case RTL8812:
if (interface_type == RTW_USB)
@ -12567,6 +12677,16 @@ int hal_efuse_macaddr_offset(_adapter *adapter)
addr_offset = EEPROM_MAC_ADDR_8821AE;
break;
#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
case RTL8814A:
if (interface_type == RTW_USB)
@ -12576,6 +12696,46 @@ int hal_efuse_macaddr_offset(_adapter *adapter)
break;
#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) {
@ -12793,6 +12953,32 @@ void rtw_bb_rf_gain_offset(_adapter *padapter)
} else
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 */
if (kfree_data->flag & KFREE_FLAG_ON)
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;
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;
curr_tx_sgi = ((ra_info->curr_tx_rate) & 0x80) >> 7;
#endif
} else {
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;
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;
rate_id = ra_info->curr_tx_rate & 0x7f;
#endif
} else {
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;
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)
case RTL8812:
/* 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*/
phy_set_bb_reg(adapter, REG_MAC_PHY_CTRL, 0x07FF8000, (crystal_cap | (crystal_cap << 6)));
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
default:
rtw_warn_on(1);
@ -13665,6 +13890,36 @@ int hal_spec_init(_adapter *adapter)
interface_type = rtw_get_intf_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
case RTL8812:
init_hal_spec_8812a(adapter);
@ -13675,11 +13930,36 @@ int hal_spec_init(_adapter *adapter)
init_hal_spec_8821a(adapter);
break;
#endif
#ifdef CONFIG_RTL8192E
case RTL8192E:
init_hal_spec_8192e(adapter);
break;
#endif
#ifdef CONFIG_RTL8814A
case RTL8814A:
init_hal_spec_8814a(adapter);
break;
#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:
RTW_ERR("%s: unknown chip_type:%u\n"

View File

@ -20,9 +20,20 @@
const u32 _chip_type_to_odm_ic_type[] = {
0,
ODM_RTL8188E,
ODM_RTL8192E,
ODM_RTL8812,
ODM_RTL8821,
ODM_RTL8723B,
ODM_RTL8814A,
ODM_RTL8703B,
ODM_RTL8188F,
ODM_RTL8188F,
ODM_RTL8822B,
ODM_RTL8723D,
ODM_RTL8821C,
ODM_RTL8710B,
ODM_RTL8192F,
0,
};
@ -1402,6 +1413,7 @@ bool rtw_hal_rfkill_poll(_adapter *adapter, u8 *valid)
u8 rtw_hal_ops_check(_adapter *padapter)
{
u8 ret = _SUCCESS;
#if 1
/*** initialize section ***/
if (NULL == padapter->hal_func.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");
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 (NULL == padapter->hal_func.fill_fake_txdesc) {

View File

@ -21,12 +21,39 @@
#ifdef RTW_HALMAC
#include <hal_data.h> /* struct HAL_DATA_TYPE, RF register definition and etc. */
#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)
#include <rtl8814a_hal.h>
#endif
#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A)
#include <rtl8812a_hal.h>
#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 */

View File

@ -1202,6 +1202,16 @@ VOID
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;
u1Byte path, pathbound = PATH_NUM;

View File

@ -1201,6 +1201,16 @@ VOID
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;
u8 path, pathbound = PATH_NUM;

View File

@ -15,4 +15,11 @@
#ifndef __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

View File

@ -18,6 +18,9 @@
#if defined(CONFIG_USB_HCI)
#ifndef MAX_RECVBUF_SZ
#ifdef PLATFORM_OS_CE
#define MAX_RECVBUF_SZ (8192+1024) /* 8K+1k */
#else
#ifndef CONFIG_MINIMAL_MEMORY_USAGE
#ifdef CONFIG_PREALLOC_RX_SKB_BUFFER
#define MAX_RECVBUF_SZ (rtw_rtkm_get_buff_size()) /*depend rtkm*/
@ -36,6 +39,7 @@
#else
#define MAX_RECVBUF_SZ (4000) /* about 4K */
#endif
#endif
#endif /* !MAX_RECVBUF_SZ */
#elif defined(CONFIG_PCI_HCI)

View File

@ -18,6 +18,9 @@
#if defined(CONFIG_USB_HCI)
#ifndef MAX_RECVBUF_SZ
#ifdef PLATFORM_OS_CE
#define MAX_RECVBUF_SZ (8192+1024) /* 8K+1k */
#else
#ifndef CONFIG_MINIMAL_MEMORY_USAGE
#ifdef CONFIG_PLATFORM_MSTAR
#define MAX_RECVBUF_SZ (8192) /* 8K */
@ -32,6 +35,7 @@
#else
#define MAX_RECVBUF_SZ (4000) /* about 4K */
#endif
#endif
#endif /* !MAX_RECVBUF_SZ */
#elif defined(CONFIG_PCI_HCI)

View File

@ -26,7 +26,11 @@
#define MAX_RSPSZ 512
#define MAX_EVTSZ 1024
#ifdef PLATFORM_OS_CE
#define CMDBUFF_ALIGN_SZ 4
#else
#define CMDBUFF_ALIGN_SZ 512
#endif
struct cmd_obj {
_adapter *padapter;
@ -110,6 +114,9 @@ struct evt_priv {
#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
u8 *c2h_mem;
u8 *allocated_c2h_mem;
#ifdef PLATFORM_OS_XP
PMDL pc2h_mdl;
#endif
#endif
};

View File

@ -28,6 +28,10 @@ enum {
#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_ERR(x, ...) do {} while (0)
#define RTW_WARN(x,...) do {} while (0)

View File

@ -19,6 +19,19 @@
#define RTW_RX_MSDU_ACT_INDICATE BIT0
#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>
@ -42,6 +55,7 @@
#ifdef CONFIG_RTW_NAPI
#define RTL_NAPI_WEIGHT (32)
#endif
#endif
#if defined(CONFIG_RTL8821C) && defined(CONFIG_SDIO_HCI) && defined(CONFIG_RECV_THREAD_MODE)
#ifdef NR_RECVBUFF
@ -340,6 +354,17 @@ struct recv_priv {
_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;
@ -508,11 +533,20 @@ struct recv_buf {
#ifdef CONFIG_USB_HCI
#if defined(PLATFORM_LINUX) || defined(PLATFORM_FREEBSD)
#if defined(PLATFORM_OS_XP) || defined(PLATFORM_LINUX) || defined(PLATFORM_FREEBSD)
PURB purb;
dma_addr_t dma_transfer_addr; /* (in) dma addr for transfer_buffer */
u32 alloc_sz;
#endif
#ifdef PLATFORM_OS_XP
PIRP pirp;
#endif
#ifdef PLATFORM_OS_CE
USB_TRANSFER usb_transfer_read_port;
#endif
u8 irp_pending;
int transfer_len;

View File

@ -60,6 +60,10 @@
#endif
#define NR_XMITBUFF (128)
#endif
#ifdef PLATFORM_OS_CE
#define XMITBUF_ALIGN_SZ 4
#else
#ifdef CONFIG_PCI_HCI
#define XMITBUF_ALIGN_SZ 4
#else
@ -69,6 +73,7 @@
#define XMITBUF_ALIGN_SZ 512
#endif
#endif
#endif
/* xmit extension buff defination */
#define MAX_XMIT_EXTBUF_SZ (1536)

View File

@ -15,4 +15,11 @@
#ifndef __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

View File

@ -1135,6 +1135,11 @@ void _rtw_init_sema(_sema *sema, int init_val)
sema_init(sema, init_val, "rtw_drv");
#endif
#ifdef PLATFORM_OS_CE
if (*sema == NULL)
*sema = CreateSemaphore(NULL, init_val, SEMA_UPBND, NULL);
#endif
}
void _rtw_free_sema(_sema *sema)
@ -1142,6 +1147,9 @@ void _rtw_free_sema(_sema *sema)
#ifdef PLATFORM_FREEBSD
sema_destroy(sema);
#endif
#ifdef PLATFORM_OS_CE
CloseHandle(*sema);
#endif
}
@ -1156,6 +1164,10 @@ void _rtw_up_sema(_sema *sema)
#ifdef PLATFORM_FREEBSD
sema_post(sema);
#endif
#ifdef PLATFORM_OS_CE
ReleaseSemaphore(*sema, 1, NULL);
#endif
}
u32 _rtw_down_sema(_sema *sema)
@ -1173,6 +1185,13 @@ u32 _rtw_down_sema(_sema *sema)
sema_wait(sema);
return _SUCCESS;
#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)
@ -1192,6 +1211,10 @@ inline void kthread_thread_exit(_completion *comp)
#ifdef PLATFORM_FREEBSD
printf("%s", "RTKTHREAD_exit");
#endif
#ifdef PLATFORM_OS_CE
ExitThread(STATUS_SUCCESS);
#endif
}
inline void _rtw_init_completion(_completion *comp)
@ -1227,6 +1250,10 @@ void _rtw_mutex_init(_mutex *pmutex)
#ifdef PLATFORM_FREEBSD
mtx_init(pmutex, "", NULL, MTX_DEF | MTX_RECURSE);
#endif
#ifdef PLATFORM_OS_CE
*pmutex = CreateMutex(NULL, _FALSE, NULL);
#endif
}
void _rtw_mutex_free(_mutex *pmutex);
@ -1243,6 +1270,10 @@ void _rtw_mutex_free(_mutex *pmutex)
sema_destroy(pmutex);
#endif
#endif
#ifdef PLATFORM_OS_CE
#endif
}