| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- #include "btc/mp_precomp.h"
- #include <hal_btcoex_wifionly.h>
- struct wifi_only_cfg GLBtCoexistWifiOnly;
- void halwifionly_write1byte(PVOID pwifionlyContext, u32 RegAddr, u8 Data)
- {
- struct wifi_only_cfg *pwifionlycfg = (struct wifi_only_cfg *)pwifionlyContext;
- PADAPTER Adapter = pwifionlycfg->Adapter;
- rtw_write8(Adapter, RegAddr, Data);
- }
- void halwifionly_write2byte(PVOID pwifionlyContext, u32 RegAddr, u16 Data)
- {
- struct wifi_only_cfg *pwifionlycfg = (struct wifi_only_cfg *)pwifionlyContext;
- PADAPTER Adapter = pwifionlycfg->Adapter;
- rtw_write16(Adapter, RegAddr, Data);
- }
- void halwifionly_write4byte(PVOID pwifionlyContext, u32 RegAddr, u32 Data)
- {
- struct wifi_only_cfg *pwifionlycfg = (struct wifi_only_cfg *)pwifionlyContext;
- PADAPTER Adapter = pwifionlycfg->Adapter;
- rtw_write32(Adapter, RegAddr, Data);
- }
- u8 halwifionly_read1byte(PVOID pwifionlyContext, u32 RegAddr)
- {
- struct wifi_only_cfg *pwifionlycfg = (struct wifi_only_cfg *)pwifionlyContext;
- PADAPTER Adapter = pwifionlycfg->Adapter;
- return rtw_read8(Adapter, RegAddr);
- }
- u16 halwifionly_read2byte(PVOID pwifionlyContext, u32 RegAddr)
- {
- struct wifi_only_cfg *pwifionlycfg = (struct wifi_only_cfg *)pwifionlyContext;
- PADAPTER Adapter = pwifionlycfg->Adapter;
- return rtw_read16(Adapter, RegAddr);
- }
- u32 halwifionly_read4byte(PVOID pwifionlyContext, u32 RegAddr)
- {
- struct wifi_only_cfg *pwifionlycfg = (struct wifi_only_cfg *)pwifionlyContext;
- PADAPTER Adapter = pwifionlycfg->Adapter;
- return rtw_read32(Adapter, RegAddr);
- }
- void halwifionly_bitmaskwrite1byte(PVOID pwifionlyContext, u32 regAddr, u8 bitMask, u8 data)
- {
- u8 originalValue, bitShift = 0;
- u8 i;
- struct wifi_only_cfg *pwifionlycfg = (struct wifi_only_cfg *)pwifionlyContext;
- PADAPTER Adapter = pwifionlycfg->Adapter;
- if (bitMask != 0xff) {
- originalValue = rtw_read8(Adapter, regAddr);
- for (i = 0; i <= 7; i++) {
- if ((bitMask >> i) & 0x1)
- break;
- }
- bitShift = i;
- data = ((originalValue) & (~bitMask)) | (((data << bitShift)) & bitMask);
- }
- rtw_write8(Adapter, regAddr, data);
- }
- void halwifionly_phy_set_rf_reg(PVOID pwifionlyContext, u8 eRFPath, u32 RegAddr, u32 BitMask, u32 Data)
- {
- struct wifi_only_cfg *pwifionlycfg = (struct wifi_only_cfg *)pwifionlyContext;
- PADAPTER Adapter = pwifionlycfg->Adapter;
- phy_set_rf_reg(Adapter, eRFPath, RegAddr, BitMask, Data);
- }
- void halwifionly_phy_set_bb_reg(PVOID pwifionlyContext, u32 RegAddr, u32 BitMask, u32 Data)
- {
- struct wifi_only_cfg *pwifionlycfg = (struct wifi_only_cfg *)pwifionlyContext;
- PADAPTER Adapter = pwifionlycfg->Adapter;
- phy_set_bb_reg(Adapter, RegAddr, BitMask, Data);
- }
- void hal_btcoex_wifionly_switchband_notify(PADAPTER padapter)
- {
- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
- u8 is_5g = _FALSE;
- if (pHalData->current_band_type == BAND_ON_5G)
- is_5g = _TRUE;
- if (IS_HARDWARE_TYPE_8822B(padapter))
- ex_hal8822b_wifi_only_switchbandnotify(&GLBtCoexistWifiOnly, is_5g);
- else if (IS_HARDWARE_TYPE_8821C(padapter))
- ex_hal8821c_wifi_only_switchbandnotify(&GLBtCoexistWifiOnly, is_5g);
- }
- void hal_btcoex_wifionly_scan_notify(PADAPTER padapter)
- {
- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
- u8 is_5g = _FALSE;
- if (pHalData->current_band_type == BAND_ON_5G)
- is_5g = _TRUE;
- if (IS_HARDWARE_TYPE_8822B(padapter))
- ex_hal8822b_wifi_only_scannotify(&GLBtCoexistWifiOnly, is_5g);
- else if (IS_HARDWARE_TYPE_8821C(padapter))
- ex_hal8821c_wifi_only_scannotify(&GLBtCoexistWifiOnly, is_5g);
- }
- void hal_btcoex_wifionly_hw_config(PADAPTER padapter)
- {
- struct wifi_only_cfg *pwifionlycfg = &GLBtCoexistWifiOnly;
- if (IS_HARDWARE_TYPE_8723B(padapter))
- ex_hal8723b_wifi_only_hw_config(pwifionlycfg);
- else if (IS_HARDWARE_TYPE_8822B(padapter))
- ex_hal8822b_wifi_only_hw_config(pwifionlycfg);
- else if (IS_HARDWARE_TYPE_8821C(padapter))
- ex_hal8821c_wifi_only_hw_config(pwifionlycfg);
- }
- void hal_btcoex_wifionly_initlizevariables(PADAPTER padapter)
- {
- struct wifi_only_cfg *pwifionlycfg = &GLBtCoexistWifiOnly;
- struct wifi_only_haldata *pwifionly_haldata = &pwifionlycfg->haldata_info;
- HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
- _rtw_memset(&GLBtCoexistWifiOnly, 0, sizeof(GLBtCoexistWifiOnly));
- pwifionlycfg->Adapter = padapter;
- #ifdef CONFIG_PCI_HCI
- pwifionlycfg->chip_interface = WIFIONLY_INTF_PCI;
- #elif defined(CONFIG_USB_HCI)
- pwifionlycfg->chip_interface = WIFIONLY_INTF_USB;
- #elif defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
- pwifionlycfg->chip_interface = WIFIONLY_INTF_SDIO;
- #else
- pwifionlycfg->chip_interface = WIFIONLY_INTF_UNKNOWN;
- #endif
- pwifionly_haldata->customer_id = CUSTOMER_NORMAL;
- pwifionly_haldata->efuse_pg_antnum = pHalData->EEPROMBluetoothAntNum;
- pwifionly_haldata->efuse_pg_antpath = pHalData->ant_path;
- pwifionly_haldata->rfe_type = pHalData->rfe_type;
- pwifionly_haldata->ant_div_cfg = pHalData->AntDivCfg;
- }
|